BizKitHub
DocsAPI ReferenceBranch/api/v1/branch/detail
getBranchPublic API v1

/api/v1/branch/detail

Returns the full publicly displayable detail of a single active branch identified by slug. Includes address (without internal delivery notes), opening hours (regular + exceptions), public e-mails and phones, branch type, parent branch reference, operating company (name + IČO + DIČ — public business-register information), the full public photo gallery (logo + main photo + rest), the openedDate and establishedDate timestamps, the currently active closure ("výluka") when the branch is temporarily closed right now, the list of associated people (role and display name only), and pointers to the 4 public legal documents (VOP / reklamace / GDPR / provozní řád) under documents.*. Each documents.* entry carries the post's postId + minimal metadata (title, locale, updatedDate); the full markdown body is fetched separately via GET /api/v1/post/post?apiKey=…&id=<postId>&locale=<locale>. Pass locale=… on this endpoint to pick the language of the metadata pointers.

Internal data (internal code, internal description, staff instructions, AI system prompt, internal billing contact, attached calendars / products / locks, monetary write-offs, franchise-fee percentage) is deliberately excluded from this endpoint.

branchgetApiV1BranchDetail

Parameters

3 query

Query parameters

· 3
apiKeystringRequired

Your BizKitHub API key (passed as GET parameter).

Key format: A 32-character string matching: ^(PROD|DEV_|ROOT)[A-Za-z0-9]{28}$
Prefixes: PROD (production key), DEV_ (individual developer), ROOT (system key with no limits). Learn more

ExamplePRODPGrFxpGEtrOZfuWhnoJohUYBXuOE
slugstringRequired

Branch slug.

Exampleprague-central
localestringOptional

Preferred locale for the embedded documents (VOP / GDPR / provozní řád / reklamace). When the requested locale has content it is returned; otherwise the endpoint falls back to any other available translation and each doc entry surfaces isRequestedLocale: false so the client can render a 'translation missing' hint. Omit to accept any locale.

Examplecs

Response schema

1 status code documented

200Success
idstringRequired

Branch slug.

Exampleprague-central
slugstringRequired
Exampleprague-central
namestringRequired
ExamplePrague Central
descriptionstringOptional
urlstringOptional
latitudenumberOptional
Example50.0755
longitudenumberOptional
Example14.4378
branchType"own" | "franchise" | "partner"Required

Branch kind declared by the operator. "own" = the organisation runs the branch directly; "franchise" = a third-party franchisee runs it under the organisation's brand; "partner" = a cooperating but independent business.

parentBranchobjectOptional
slugstringRequired

Slug of the operational parent (regional flagship / HQ).

namestringRequired
branchType"own" | "franchise" | "partner"Optional
operatingCompanyobjectOptional
namestringOptional

Legal name of the entity operating this branch.

companyRegistrationNumberstringOptional

Czech IČO (or local equivalent). Publicly listed in the business register.

taxIdentificationNumberstringOptional

Czech DIČ / EU VAT ID (or local equivalent).

establishedDateDate | string | string | numberOptional

Legal incorporation / business-registry date of the entity operating this branch. Optional.

One of 4:
Variant 1
Date

Legal incorporation / business-registry date of the entity operating this branch. Optional.

Variant 2
stringdate-time
Variant 3
stringdate
Variant 4
number
openedDateDate | string | string | numberRequired

Date the branch actually started serving customers. Use this for "In operation since …" copy.

One of 4:
Variant 1
Date

Date the branch actually started serving customers. Use this for "In operation since …" copy.

Variant 2
stringdate-time
Variant 3
stringdate
Variant 4
number
currentClosureobjectOptional
startDateDate | string | string | numberRequired

When the closure began.

One of 4:
Variant 1
Date

When the closure began.

Variant 2
stringdate-time
Variant 3
stringdate
Variant 4
number
endDateDate | string | string | numberOptional

When the closure ends. Omitted = open-ended ("until further notice").

One of 4:
Variant 1
Date

When the closure ends. Omitted = open-ended ("until further notice").

Variant 2
stringdate-time
Variant 3
stringdate
Variant 4
number
reasonstringRequired

Operator-supplied reason (e.g. "renovation", "flood", "temporarily closed").

mainPhotoUrlstringOptional

URL of the main public photo (also present in photos with isMain=true).

logoUrlstringOptional

URL of the branch logo (also present in photos with isLogo=true).

photosobject[]Required

Full public gallery — every active, non-deleted image on the branch, ordered by position ascending. Each entry carries isMain / isLogo flags so the client can locate the main photo and the logo without a second lookup.

Each array item:
urlstringRequired

Direct URL of the photo.

descriptionstringOptional

Publicly displayable caption.

positionnumberRequired

Gallery sort position (ascending).

isMainbooleanRequired

Whether this is the main branch photo (matches mainPhotoUrl).

isLogobooleanRequired

Whether this image is used as the branch logo (matches logoUrl).

addressobjectOptional
firstNamestringOptional
lastNamestringOptional
companyNamestringOptional
streetAddressstringOptional
citystringOptional
cityPartstringOptional
stateRegionstringOptional
postalCodestringOptional
countrystringOptional

ISO 3166-1 alpha-2 country code.

ExampleCZ
openingHoursobjectRequired
regularobject[]Required
Each array item:
dayOfWeeknumberRequired

0 = Monday … 6 = Sunday.

Range: 06
definitionstringRequired

Time range definition (e.g. "08:00-17:00").

descriptionstringOptional
validFromDate | string | string | numberOptional
One of 4:
Variant 1
Date
Variant 2
stringdate-time
Variant 3
stringdate
Variant 4
number
validToDate | string | string | numberOptional
One of 4:
Variant 1
Date
Variant 2
stringdate-time
Variant 3
stringdate
Variant 4
number
exceptionsobject[]Required
Each array item:
datestringRequired

Exception date (ISO YYYY-MM-DD).

Example2026-12-24
isOpenbooleanRequired
reasonstringOptional
emailsobject[]Required
Each array item:
emailstringRequired
Exampleinfo@example.com
rolestringOptional
phonesobject[]Required
Each array item:
phonestringRequired
Example+420 777123456
rolestringOptional
peopleobject[]Required
Each array item:
rolestringRequired

Branch person role (e.g. owner, manager, custodian).

customLabelstringOptional

Free-text label that overrides the role display.

namestringOptional

Person display name.

documentsobjectRequired

The 4 public legal documents attached to the branch. A slot is omitted (not returned as null) when the branch hasn't authored that document in any locale yet — this keeps the response small and lets the client iterate Object.keys(documents) to find what is available.

termsOfBusinessobjectOptional

Metadata pointer to one published branch document (VOP / GDPR / provozní řád / reklamace).

postIdstringRequired

Public post external id (16-char string) of the document. This endpoint returns metadata only — the full document body (title, markdown content) is fetched separately via GET /api/v1/post/post?apiKey=…&id=<postId>&locale=<locale> where <locale> should match the locale field returned alongside this postId (e.g. cs when this entry reports locale: "cs").

Recipe for an AI agent / integration:

  1. Call GET /api/v1/branch/detail?apiKey=…&slug=<branch>&locale=<preferred> to obtain the documents.<slot>.postId for the required slot (termsOfBusiness / reclaim / gdpr / operatingRules).
  2. Call GET /api/v1/post/post?apiKey=…&id=<postId>&locale=<documents.<slot>.locale> to fetch the full post (title, content in markdown, updatedDate).
  3. Pair with /api/v1/post/history?apiKey=…&id=<postId> for the revision log of that document.

This two-call pattern keeps the branch payload small (docs are big) and lets the client cache the post body independently of the branch metadata.

Example58714l4gSh9jZOLU
titlestringRequired

Document title in the returned locale.

updatedDateDate | string | string | numberRequired

ISO date of the last update to the parent post (per-locale rows have no timestamp).

One of 4:
Variant 1
Date

ISO date of the last update to the parent post (per-locale rows have no timestamp).

Variant 2
stringdate-time
Variant 3
stringdate
Variant 4
number
localestringRequired

Locale code the returned metadata refers to (same locale to pass on to /api/v1/post/post). May differ from the requested locale when the endpoint fell back to an available translation.

Examplecs
isRequestedLocalebooleanRequired

True when locale matches the requested locale exactly; false when the endpoint fell back to another available translation. Consumers can use this to render a "translation missing" hint.

reclaimobjectOptional

Metadata pointer to one published branch document (VOP / GDPR / provozní řád / reklamace).

postIdstringRequired

Public post external id (16-char string) of the document. This endpoint returns metadata only — the full document body (title, markdown content) is fetched separately via GET /api/v1/post/post?apiKey=…&id=<postId>&locale=<locale> where <locale> should match the locale field returned alongside this postId (e.g. cs when this entry reports locale: "cs").

Recipe for an AI agent / integration:

  1. Call GET /api/v1/branch/detail?apiKey=…&slug=<branch>&locale=<preferred> to obtain the documents.<slot>.postId for the required slot (termsOfBusiness / reclaim / gdpr / operatingRules).
  2. Call GET /api/v1/post/post?apiKey=…&id=<postId>&locale=<documents.<slot>.locale> to fetch the full post (title, content in markdown, updatedDate).
  3. Pair with /api/v1/post/history?apiKey=…&id=<postId> for the revision log of that document.

This two-call pattern keeps the branch payload small (docs are big) and lets the client cache the post body independently of the branch metadata.

Example58714l4gSh9jZOLU
titlestringRequired

Document title in the returned locale.

updatedDateDate | string | string | numberRequired

ISO date of the last update to the parent post (per-locale rows have no timestamp).

One of 4:
Variant 1
Date

ISO date of the last update to the parent post (per-locale rows have no timestamp).

Variant 2
stringdate-time
Variant 3
stringdate
Variant 4
number
localestringRequired

Locale code the returned metadata refers to (same locale to pass on to /api/v1/post/post). May differ from the requested locale when the endpoint fell back to an available translation.

Examplecs
isRequestedLocalebooleanRequired

True when locale matches the requested locale exactly; false when the endpoint fell back to another available translation. Consumers can use this to render a "translation missing" hint.

gdprobjectOptional

Metadata pointer to one published branch document (VOP / GDPR / provozní řád / reklamace).

postIdstringRequired

Public post external id (16-char string) of the document. This endpoint returns metadata only — the full document body (title, markdown content) is fetched separately via GET /api/v1/post/post?apiKey=…&id=<postId>&locale=<locale> where <locale> should match the locale field returned alongside this postId (e.g. cs when this entry reports locale: "cs").

Recipe for an AI agent / integration:

  1. Call GET /api/v1/branch/detail?apiKey=…&slug=<branch>&locale=<preferred> to obtain the documents.<slot>.postId for the required slot (termsOfBusiness / reclaim / gdpr / operatingRules).
  2. Call GET /api/v1/post/post?apiKey=…&id=<postId>&locale=<documents.<slot>.locale> to fetch the full post (title, content in markdown, updatedDate).
  3. Pair with /api/v1/post/history?apiKey=…&id=<postId> for the revision log of that document.

This two-call pattern keeps the branch payload small (docs are big) and lets the client cache the post body independently of the branch metadata.

Example58714l4gSh9jZOLU
titlestringRequired

Document title in the returned locale.

updatedDateDate | string | string | numberRequired

ISO date of the last update to the parent post (per-locale rows have no timestamp).

One of 4:
Variant 1
Date

ISO date of the last update to the parent post (per-locale rows have no timestamp).

Variant 2
stringdate-time
Variant 3
stringdate
Variant 4
number
localestringRequired

Locale code the returned metadata refers to (same locale to pass on to /api/v1/post/post). May differ from the requested locale when the endpoint fell back to an available translation.

Examplecs
isRequestedLocalebooleanRequired

True when locale matches the requested locale exactly; false when the endpoint fell back to another available translation. Consumers can use this to render a "translation missing" hint.

operatingRulesobjectOptional

Metadata pointer to one published branch document (VOP / GDPR / provozní řád / reklamace).

postIdstringRequired

Public post external id (16-char string) of the document. This endpoint returns metadata only — the full document body (title, markdown content) is fetched separately via GET /api/v1/post/post?apiKey=…&id=<postId>&locale=<locale> where <locale> should match the locale field returned alongside this postId (e.g. cs when this entry reports locale: "cs").

Recipe for an AI agent / integration:

  1. Call GET /api/v1/branch/detail?apiKey=…&slug=<branch>&locale=<preferred> to obtain the documents.<slot>.postId for the required slot (termsOfBusiness / reclaim / gdpr / operatingRules).
  2. Call GET /api/v1/post/post?apiKey=…&id=<postId>&locale=<documents.<slot>.locale> to fetch the full post (title, content in markdown, updatedDate).
  3. Pair with /api/v1/post/history?apiKey=…&id=<postId> for the revision log of that document.

This two-call pattern keeps the branch payload small (docs are big) and lets the client cache the post body independently of the branch metadata.

Example58714l4gSh9jZOLU
titlestringRequired

Document title in the returned locale.

updatedDateDate | string | string | numberRequired

ISO date of the last update to the parent post (per-locale rows have no timestamp).

One of 4:
Variant 1
Date

ISO date of the last update to the parent post (per-locale rows have no timestamp).

Variant 2
stringdate-time
Variant 3
stringdate
Variant 4
number
localestringRequired

Locale code the returned metadata refers to (same locale to pass on to /api/v1/post/post). May differ from the requested locale when the endpoint fell back to an available translation.

Examplecs
isRequestedLocalebooleanRequired

True when locale matches the requested locale exactly; false when the endpoint fell back to another available translation. Consumers can use this to render a "translation missing" hint.

Response example

application/json
{
  "id": "prague-central",
  "slug": "prague-central",
  "name": "Prague Central",
  "description": "example_description",
  "url": "example_url",
  "latitude": 50.0755,
  "longitude": 14.4378,
  "parentBranch": {
    "slug": "example_slug",
    "name": "example_name"
  },
  "operatingCompany": {
    "name": "example_name",
    "companyRegistrationNumber": "example_companyRegistrationNumber",
    "taxIdentificationNumber": "example_taxIdentificationNumber"
  },
  "currentClosure": {
    "reason": "example_reason"
  },
  "mainPhotoUrl": "example_mainPhotoUrl",
  "logoUrl": "example_logoUrl",
  "photos": [
    {
      "url": "example_url",
      "description": "example_description",
      "position": 0,
      "isMain": false,
      "isLogo": false
    }
  ],
  "address": {
    "firstName": "example_firstName",
    "lastName": "example_lastName",
    "companyName": "example_companyName",
    "streetAddress": "example_streetAddress",
    "city": "example_city",
    "cityPart": "example_cityPart",
    "stateRegion": "example_stateRegion",
    "postalCode": "example_postalCode",
    "country": "CZ"
  },
  "openingHours": {
    "regular": [
      {
        "dayOfWeek": 0,
        "definition": "example_definition",
        "description": "example_description"
      }
    ],
    "exceptions": [
      {
        "date": "2026-12-24",
        "isOpen": false,
        "reason": "example_reason"
      }
    ]
  },
  "emails": [
    {
      "email": "info@example.com",
      "role": "example_role"
    }
  ],
  "phones": [
    {
      "phone": "+420 777123456",
      "role": "example_role"
    }
  ],
  "people": [
    {
      "role": "example_role",
      "customLabel": "example_customLabel",
      "name": "example_name"
    }
  ],
  "documents": {
    "termsOfBusiness": {
      "postId": "58714l4gSh9jZOLU",
      "title": "example_title",
      "locale": "cs",
      "isRequestedLocale": false
    },
    "reclaim": {
      "postId": "58714l4gSh9jZOLU",
      "title": "example_title",
      "locale": "cs",
      "isRequestedLocale": false
    },
    "gdpr": {
      "postId": "58714l4gSh9jZOLU",
      "title": "example_title",
      "locale": "cs",
      "isRequestedLocale": false
    },
    "operatingRules": {
      "postId": "58714l4gSh9jZOLU",
      "title": "example_title",
      "locale": "cs",
      "isRequestedLocale": false
    }
  }
}

Request example

GET /api/v1/branch/detail

get
curl -X GET "https://api.bizkithub.com/api/v1/branch/detail?apiKey=PRODPGrFxpGEtrOZfuWhnoJohUYBXuOE&slug=prague-central&locale=cs" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY"

Need an API key?

All BizKitHub public API endpoints require authentication via API key.

Get API Key