# Business profile

One endpoint returns the public side of the merchant's business profile: how the business is named and reached, where it is registered, which social profiles it links, and which languages its content is written in. Use it for a storefront footer, a contact page or a language switcher. The merchant edits these values in the dashboard under **Settings** → **Business**.

The endpoint takes a tenant API key carrying the `tenant:read` scope, sent as `Authorization: Bearer {api_key}`. It does not depend on any module. A key without the scope gets `403 {"message": "Invalid ability provided."}`. The shared tenant rate limit of 120 requests per minute applies.

## GET /v1/api/business

Returns the public allow-list of the business profile. Banking, signer, sender and terms fields are never part of it. The call does not create a profile: a store that has not filled in its profile yet answers `200` with every text field `null`, `social_links` as `[]`, and the default language.

### Request

```bash title="Request"
curl https://api.borkol.com/v1/api/business \
  -H "Authorization: Bearer {api_key}"
```

### Response

```json title="Response"
{
  "data": {
    "trade_name": "Sunrise Bakery",
    "legal_name": "Sunrise Bakery BV",
    "email": "hello@bakery.example",
    "phone": "+31 20 123 4567",
    "website": "https://bakery.example",
    "street": "Kerkstraat",
    "house_number": "12",
    "postal_code": "2011 AB",
    "city": "Haarlem",
    "country": "NL",
    "registration_number": "12345678",
    "vat_id": "NL123456789B01",
    "social_links": [
      { "platform": "instagram", "url": "https://www.instagram.com/sunrisebakery", "label": null },
      { "platform": "other", "url": "https://bakery.example/blog", "label": "Blog" }
    ],
    "locale": "nl",
    "content_locales": ["nl", "en"]
  }
}
```

### Fields

| Field | Type | Description |
| --- | --- | --- |
| `trade_name` | string or null | Name the business trades under. |
| `legal_name` | string or null | Registered legal name. |
| `email` | string or null | Public contact email. |
| `phone` | string or null | Public contact phone number. |
| `website` | string or null | The business's own website. |
| `street` | string or null | Street of the business address. |
| `house_number` | string or null | House number. |
| `postal_code` | string or null | Postal code. |
| `city` | string or null | City. |
| `country` | string or null | Two-letter country code, uppercase, for example `NL`. |
| `registration_number` | string or null | Chamber of commerce or company registration number. |
| `vat_id` | string or null | VAT number, uppercase. |
| `social_links` | array | The social profiles the merchant links, in the order they set. Empty array when none. Each item is described below. |
| `locale` | string | The store's default language, a language tag such as `nl`. |
| `content_locales` | array of strings | The languages the store's content is written in. Always contains `locale`. Same list as the languages that localized [Objects](/api/objects/index#localized-values) values are cut down to. |

### Social link items

| Field | Type | Description |
| --- | --- | --- |
| `platform` | string | One of `instagram`, `facebook`, `x`, `linkedin`, `youtube`, `tiktok`, `pinterest`, `threads`, `bluesky`, `snapchat`, `whatsapp`, `telegram`, `github`, `behance`, `dribbble`, `vimeo`, `reddit`, `discord`, `mastodon`, `twitch`, `spotify`, `medium`, `other`. |
| `url` | string | An `https://` address. For every platform except `mastodon` and `other` the host belongs to that platform. |
| `label` | string or null | Display text. Always present for `other`, optional (often `null`) for the rest. |

The platform list can grow. Treat a `platform` you do not know as a plain link and show it with its `label` or `url`.

### Errors

| Status | When |
| --- | --- |
| `401` | Missing or invalid API key. |
| `403` | The key does not carry the `tenant:read` scope. |
| `429` | Rate limit reached. See [Errors and rate limits](/api/getting-started/errors-and-rate-limits). |
