Skip to content
Documentation
pozyskajpacjentaDocs

API referenceContent

Get a page and its site

GET/api/v1/content

Since
1.0.0
Auth
Bearer key
operationId
getContent

The page at a path together with the site it belongs to: everything a frontend needs to render that page. page.kind tells a page built from blocks from the eight entity pages. Responses are private to the key: Cache-Control: private, max-age=60, so cache them on your side for up to a minute.

Request

Send the clinic's key in Authorization: Bearer (see API keys).

Query parameters

  • pathstring

    Path of the page on the clinic's site.

curl "https://app.pozyskajpacjenta.pl/api/v1/content?path=/" \
  -H "Authorization: Bearer $PP_API_KEY"
import { PozyskajPacjentaClient } from "@pozyskajpacjenta/sdk";

const client = new PozyskajPacjentaClient({
  apiKey: process.env.PP_API_KEY ?? "",
  baseUrl: "https://app.pozyskajpacjenta.pl",
});

const { site, page } = await client.getContent("/rezerwacja");
<?php
$response = wp_remote_get(
    'https://app.pozyskajpacjenta.pl/api/v1/content?path=/',
    array(
        'headers' => array( 'Authorization' => 'Bearer ' . getenv( 'PP_API_KEY' ) ),
        'timeout' => 10,
    )
);
if ( is_wp_error( $response ) ) {
    error_log( $response->get_error_message() );
    return;
}
$status = wp_remote_retrieve_response_code( $response );
$data   = json_decode( wp_remote_retrieve_body( $response ), true );

Response

200The site and the page.

  • siteSiterequired

    The clinic's site.

    Fields (6)
    • namestringrequired

      Name of the clinic as shown on the site.

    • primaryDomainstring | null

      The site's main domain; null before a domain is connected.

    • menuMenuItem[]required

      The main menu, in order.

      Fields of each item (2)
      • labelstringrequired

        Text of the menu item.

      • pathstringrequired

        Path on the clinic's site, e.g. /zabiegi.

    • themeThemeTokensrequired

      Theme tokens of the site.

    • profileSiteProfile | nullrequiredsince 1.4.0

      The clinic profile; null until the clinic fills it in.

      Fields (18)
      • legalNamestring

        Registered name of the entity that runs the clinic.

      • phonestring

        Phone number for display, e.g. +48 22 100 20 30. For a tel: link keep the digits and the +.

      • emailstring (email)

        The clinic's contact e-mail.

      • addressSiteAddress

        The clinic's address.

        Fields (5)
        • streetstringrequired

          Street and number.

        • postalCodestringrequired

          Postal code, 00-000.

        • citystringrequired

          City.

        • districtstring

          District, e.g. Mokotów.

        • accessNotestring

          How to get in: entrance, floor, parking, lift.

      • geoobject

        Map point of the clinic.

        Fields (2)
        • latnumberrequired

          Latitude.

        • lngnumberrequired

          Longitude.

      • openingHoursOpeningHours

        Opening hours per weekday.

        Fields (7)
        • monOpeningInterval[]

          Monday's intervals.

          Fields of each item (2)
          • opensstringrequired

            Opening time, HH:MM.

          • closesstringrequired

            Closing time, HH:MM, later than opens.

        • tueOpeningInterval[]

          Tuesday's intervals.

          Fields as in OpeningInterval above.

        • wedOpeningInterval[]

          Wednesday's intervals.

          Fields as in OpeningInterval above.

        • thuOpeningInterval[]

          Thursday's intervals.

          Fields as in OpeningInterval above.

        • friOpeningInterval[]

          Friday's intervals.

          Fields as in OpeningInterval above.

        • satOpeningInterval[]

          Saturday's intervals.

          Fields as in OpeningInterval above.

        • sunOpeningInterval[]

          Sunday's intervals.

          Fields as in OpeningInterval above.

      • openingHoursNotestring

        Note shown next to the hours, e.g. until when the phone is answered.

      • nfzobject

        Contract with the National Health Fund (NFZ).

        Fields (2)
        • contractbooleanrequired

          true when the clinic has an NFZ contract.

        • notestring

          Note about the NFZ contract, e.g. which services it covers.

      • paymentsobject

        Accepted payment methods.

        Fields (2)
        • methodsstring[]required

          Payment methods as the clinic names them, e.g. gotówka, karta, BLIK.

        • notestring

          Note about payments, e.g. instalments.

      • socialsobject[]

        Links to the clinic's profiles elsewhere.

        Fields of each item (2)
        • networkstringrequired

          The network.

          One of facebookinstagramyoutubetiktoklinkedinxgoogleznanylekarzother

        • urlstringrequired

          Profile address (https://).

      • logoMediaRef | null

        Logo; null when the file was removed from the media library.

        Fields (8)
        • urlstringrequired

          Absolute address of the file.

        • focalXinteger | null

          Horizontal focal point in percent (0 to 100) to keep when cropping, e.g. as object-position.

        • focalYinteger | null

          Vertical focal point in percent (0 to 100).

        • altstring | null

          Alternative text; null when the clinic left it empty.

        • widthintegersince 1.4.0

          Width of the original in px (library files, when known), for width/height attributes without layout shift.

        • heightintegersince 1.4.0

          Height of the original in px.

        • aiGeneratedbooleansince 1.4.0

          The image was generated by AI: label it next to the image (e.g. in a caption).

        • captionstringsince 1.4.0

          Caption to show under the image.

      • logoInverseMediaRef | null

        Logo for dark backgrounds.

        Fields as in MediaRef above.

      • faviconMediaRef | null

        Favicon file.

        Fields as in MediaRef above.

      • defaultOgImageMediaRef | null

        og:image for pages that have none of their own.

        Fields as in MediaRef above.

      • registryobject

        Registry numbers. Show only the ones that are set.

        Fields (4)
        • rpwdlstring

          Number in the register of medical entities (RPWDL).

        • nipstring

          Tax identification number (NIP).

        • regonstring

          Statistical number (REGON).

        • krsstring

          Court register number (KRS).

      • privacyobjectsince 1.7.0

        Data for the privacy policy and the information clause. The controller is legalName with the address and the registry numbers. Full policy text: GET /privacy.

        Fields (4)
        • contactEmailstring (email)since 1.7.0

          E-mail for personal-data requests; the clinic's email when unset.

        • registeredOfficestringsince 1.7.0

          The controller's registered office, when it differs from the clinic address.

        • dpoNamestringsince 1.7.0

          Data protection officer, when one is appointed.

        • dpoEmailstring (email)since 1.7.0

          The data protection officer's e-mail.

      • reviewsPolicystring

        How the clinic collects and checks the reviews it shows on its site.

      • demoNoticestring

        A notice for every page (e.g. a demo site). Show it when present.

    • noindexbooleansince 1.5.0

      true: the site stays out of search engines (a demo, or before launch). Add meta robots noindex to every page (ideally also the header X-Robots-Tag: noindex) and publish no sitemap. Keep robots.txt open (Allow: /, no Sitemap line): a crawler has to fetch the pages to see the noindex and drop URLs it indexed before.

  • pageContentPagerequired

    The page at path.

    kind: "page"A page built from blocks in the clinic's page editor.
    • kindstringrequired

      Always page.

      One of page

    • pathstringrequired

      Path of the page on the clinic's site.

    • titlestringrequired

      Page title (the h1 and the <title>).

    • seoTitlestring | null

      Title for <title> when it differs from title; null otherwise.

    • seoDescriptionstring | null

      Meta description; null when empty.

    • blocksBlock[]required

      The page's content blocks, in order.

      Fields of each item (3)
      • idstringrequired

        Block id, stable within the page.

      • typestringrequired

        Block type with its version, e.g. hero.v1, faq.v1.

      • propsobjectrequired

        The block's fields; their shape depends on type.

    kind: "services"The treatments index (/zabiegi).
    • kindstringrequired

      Always services.

      One of services

    • pathstringrequired

      Path of the page on the clinic's site.

    • titlestringrequired

      Page title (the h1 and the <title>).

    • breadcrumbsCrumb[]required

      Breadcrumb trail from the home page to this page.

      Fields of each item (2)
      • labelstringrequired

        Text of the step.

      • hrefstring | null

        Path of the step; null for the current page.

    • ctaCtarequired

      The page's one call to action.

      Fields (2)
      • labelstringrequired

        Button text.

      • hrefstringrequired

        Link target: tel:… or a path on the clinic's site.

    • eyebrowstring

      Short label above the title.

    • leadstring | null

      Paragraph under the title; null when the clinic left it empty.

    • servicesServiceSummary[]required

      Published treatments, in the clinic's order.

      Fields of each item (9)
      • idstringrequired

        Treatment id.

      • slugstringrequired

        Slug from the treatment's address.

      • pathstringrequired

        Path on the clinic's site, e.g. /zabiegi/implanty.

      • namestringrequired

        Treatment name.

      • categorystring | null

        Category the clinic groups the treatment under; null when none.

      • shortDescstring | null

        One-sentence description for lists; null when empty.

      • priceFromLabelstring | null

        Price label, e.g. od 290 zł; null when the clinic shows no price.

      • durationLabelstring | null

        Duration label, e.g. zabieg 60 min; null when empty.

      • bookingServiceIdstring | nullrequiredsince 1.3.0

        Id of the active booking service this treatment is booked as: an entry of GET /booking/catalog and the service parameter of /booking/slots. null when the treatment is not linked to booking or the linked service is inactive.

    kind: "service"A treatment page (/zabiegi/{slug}).
    • kindstringrequired

      Always service.

      One of service

    • pathstringrequired

      Path of the page on the clinic's site.

    • titlestringrequired

      Page title (the h1 and the <title>).

    • breadcrumbsCrumb[]required

      Breadcrumb trail from the home page to this page.

      Fields as in Crumb above.

    • ctaCtarequired

      The page's one call to action.

      Fields as in Cta above.

    • serviceServiceDetailrequired

      The treatment.

      Fields (14)
      • idstringrequired

        Treatment id.

      • slugstringrequired

        Slug from the treatment's address.

      • pathstringrequired

        Path on the clinic's site, e.g. /zabiegi/implanty.

      • namestringrequired

        Treatment name.

      • categorystring | null

        Category the clinic groups the treatment under; null when none.

      • shortDescstring | null

        One-sentence description for lists; null when empty.

      • priceFromLabelstring | null

        Price label, e.g. od 290 zł; null when the clinic shows no price.

      • durationLabelstring | null

        Duration label, e.g. zabieg 60 min; null when empty.

      • bookingServiceIdstring | nullrequiredsince 1.3.0

        Id of the active booking service this treatment is booked as: an entry of GET /booking/catalog and the service parameter of /booking/slots. null when the treatment is not linked to booking or the linked service is inactive.

      • heroMediaRef | null

        Main image of the treatment page; null when none.

        Fields as in MediaRef above.

      • bodyBlocksBlock[]required

        Content blocks of the treatment page.

        Fields as in Block above.

      • faqobject[]required

        Questions and answers about the treatment.

        Fields of each item (2)
        • questionstringrequired

          The question.

        • answerstringrequired

          The answer, plain text.

      • relatedRelatedService[]required

        Other published treatments the clinic links from this one.

        Fields of each item (5)
        • idstringrequired

          Treatment id.

        • slugstringrequired

          Treatment slug.

        • pathstringrequired

          Path of the treatment page.

        • namestringrequired

          Treatment name.

        • priceFromLabelstring | null

          Price label, e.g. od 290 zł; null when the clinic shows no price.

      • updatedAtstring (date-time)required

        Last change, ISO 8601.

    kind: "team"The team page (/zespol).
    • kindstringrequired

      Always team.

      One of team

    • pathstringrequired

      Path of the page on the clinic's site.

    • titlestringrequired

      Page title (the h1 and the <title>).

    • breadcrumbsCrumb[]required

      Breadcrumb trail from the home page to this page.

      Fields as in Crumb above.

    • ctaCtarequired

      The page's one call to action.

      Fields as in Cta above.

    • eyebrowstring

      Short label above the title.

    • leadstring | null

      Paragraph under the title; null when the clinic left it empty.

    • doctorsDoctorSummary[]required

      Published team members, in the clinic's order.

      Fields of each item (8)
      • idstringrequired

        Team member id.

      • slugstringrequired

        Slug from the profile's address.

      • pathstringrequired

        Path of the profile page.

      • namestringrequired

        Full name.

      • titlestring | null

        Professional title, e.g. lek. dent.; null when none.

      • specializationsstring[]required

        Specialisations, in the clinic's order.

      • photoMediaRef | null

        Portrait; null when none.

        Fields as in MediaRef above.

      • bookingResourceIdstring | nullrequiredsince 1.3.0

        Id of the active booking specialist for this profile: an entry of GET /booking/catalog and the resource parameter of /booking/slots. null when the profile is not linked to booking or the specialist is inactive.

    kind: "doctor"A team member's profile page (/zespol/{slug}).
    • kindstringrequired

      Always doctor.

      One of doctor

    • pathstringrequired

      Path of the page on the clinic's site.

    • titlestringrequired

      Page title (the h1 and the <title>).

    • breadcrumbsCrumb[]required

      Breadcrumb trail from the home page to this page.

      Fields as in Crumb above.

    • ctaCtarequired

      The page's one call to action.

      Fields as in Cta above.

    • doctorDoctorDetailrequired

      The team member.

      Fields (10)
      • idstringrequired

        Team member id.

      • slugstringrequired

        Slug from the profile's address.

      • pathstringrequired

        Path of the profile page.

      • namestringrequired

        Full name.

      • titlestring | null

        Professional title, e.g. lek. dent.; null when none.

      • specializationsstring[]required

        Specialisations, in the clinic's order.

      • photoMediaRef | null

        Portrait; null when none.

        Fields as in MediaRef above.

      • bookingResourceIdstring | nullrequiredsince 1.3.0

        Id of the active booking specialist for this profile: an entry of GET /booking/catalog and the resource parameter of /booking/slots. null when the profile is not linked to booking or the specialist is inactive.

      • biostring | null

        Biography, plain text with blank lines between paragraphs; null when empty.

      • updatedAtstring (date-time)required

        Last change, ISO 8601.

    • servicesRelatedService[]required

      Up to 6 of the clinic's treatments shown on the profile.

      Fields as in RelatedService above.

    kind: "case-studies"The case studies index (/realizacje).
    • kindstringrequired

      Always case-studies.

      One of case-studies

    • pathstringrequired

      Path of the page on the clinic's site.

    • titlestringrequired

      Page title (the h1 and the <title>).

    • breadcrumbsCrumb[]required

      Breadcrumb trail from the home page to this page.

      Fields as in Crumb above.

    • ctaCtarequired

      The page's one call to action.

      Fields as in Cta above.

    • eyebrowstring

      Short label above the title.

    • leadstring | null

      Paragraph under the title; null when the clinic left it empty.

    • caseStudiesCaseStudySummary[]required

      Published case studies, newest first.

      Fields of each item (7)
      • idstringrequired

        Case study id.

      • slugstringrequired

        Slug from the case study's address.

      • pathstringrequired

        Path of the case study page.

      • titlestringrequired

        Title.

      • summarystring | null

        Short summary; null when empty.

      • imageMediaRef | null

        List image; null when none.

        Fields as in MediaRef above.

      • publishedAtstring (date-time) | null

        Publication date, ISO 8601; null when unknown.

    kind: "case-study"A case study page (/realizacje/{slug}).
    • kindstringrequired

      Always case-study.

      One of case-study

    • pathstringrequired

      Path of the page on the clinic's site.

    • titlestringrequired

      Page title (the h1 and the <title>).

    • breadcrumbsCrumb[]required

      Breadcrumb trail from the home page to this page.

      Fields as in Crumb above.

    • ctaCtarequired

      The page's one call to action.

      Fields as in Cta above.

    • caseStudyCaseStudyDetailrequired

      The case study.

      Fields (11)
      • idstringrequired

        Case study id.

      • slugstringrequired

        Slug from the case study's address.

      • pathstringrequired

        Path of the case study page.

      • titlestringrequired

        Title.

      • summarystring | null

        Short summary; null when empty.

      • beforeMediaRef | null

        Image before the treatment; null when none.

        Fields as in MediaRef above.

      • afterMediaRef | null

        Image after the treatment; null when none.

        Fields as in MediaRef above.

      • bodyBlocksBlock[]required

        Content blocks of the case study.

        Fields as in Block above.

      • servicesRelatedService[]required

        Treatments linked to the case study (published ones only).

        Fields as in RelatedService above.

      • publishedAtstring (date-time) | null

        Publication date, ISO 8601; null when unknown.

      • updatedAtstring (date-time)required

        Last change, ISO 8601.

    kind: "posts"The posts index (/aktualnosci).
    • kindstringrequired

      Always posts.

      One of posts

    • pathstringrequired

      Path of the page on the clinic's site.

    • titlestringrequired

      Page title (the h1 and the <title>).

    • breadcrumbsCrumb[]required

      Breadcrumb trail from the home page to this page.

      Fields as in Crumb above.

    • ctaCtarequired

      The page's one call to action.

      Fields as in Cta above.

    • eyebrowstring

      Short label above the title.

    • postsPostSummary[]required

      Published posts, newest first.

      Fields of each item (7)
      • idstringrequired

        Post id.

      • slugstringrequired

        Slug from the post's address.

      • pathstringrequired

        Path of the post page.

      • titlestringrequired

        Title.

      • excerptstring | null

        Excerpt for lists; null when empty.

      • coverMediaRef | null

        Cover image; null when none.

        Fields as in MediaRef above.

      • publishedAtstring (date-time) | null

        Publication date, ISO 8601; null when unknown.

    kind: "post"A post page (/aktualnosci/{slug}).
    • kindstringrequired

      Always post.

      One of post

    • pathstringrequired

      Path of the page on the clinic's site.

    • titlestringrequired

      Page title (the h1 and the <title>).

    • breadcrumbsCrumb[]required

      Breadcrumb trail from the home page to this page.

      Fields as in Crumb above.

    • ctaCtarequired

      The page's one call to action.

      Fields as in Cta above.

    • postPostDetailrequired

      The post.

      Fields (12)
      • idstringrequired

        Post id.

      • slugstringrequired

        Slug from the post's address.

      • pathstringrequired

        Path of the post page.

      • titlestringrequired

        Title.

      • excerptstring | null

        Excerpt for lists; null when empty.

      • coverMediaRef | null

        Cover image; null when none.

        Fields as in MediaRef above.

      • publishedAtstring (date-time) | null

        Publication date, ISO 8601; null when unknown.

      • bodyBlocksBlock[]required

        Content blocks of the post.

        Fields as in Block above.

      • seoTitlestring | null

        Title for <title> when it differs from title; null otherwise.

      • seoDescriptionstring | null

        Meta description; null when empty.

      • ogImageMediaRef | null

        og:image of the post; null when none.

        Fields as in MediaRef above.

      • updatedAtstring (date-time)required

        Last change, ISO 8601.

A page built from blocks (kind: page)

{
  "site": {
    "name": "Klinika Wzorcowa",
    "primaryDomain": "wzorcowa.pozyskajpacjenta.pl",
    "menu": [
      {
        "label": "Strona główna",
        "path": "/"
      },
      {
        "label": "Zabiegi",
        "path": "/zabiegi"
      },
      {
        "label": "Zespół",
        "path": "/zespol"
      },
      {
        "label": "Rezerwacja",
        "path": "/rezerwacja"
      }
    ],
    "theme": {
      "version": 1,
      "colors": {
        "background": "#faf7f1",
        "foreground": "#211d18",
        "surface": "#fffdf9",
        "surface2": "#f3ede1",
        "muted": "#f1eadb",
        "mutedForeground": "#655c4e",
        "primary": "#7a5c2e",
        "primaryForeground": "#fffdf9",
        "accent": "#2c2a25",
        "accentForeground": "#f5efe2",
        "border": "#e3dac7"
      },
      "colorsDark": {
        "background": "#171310",
        "foreground": "#f2ecdf",
        "surface": "#201b15",
        "surface2": "#2a241b",
        "muted": "#242017",
        "mutedForeground": "#b5aa93",
        "primary": "#d3ab63",
        "primaryForeground": "#231b0e",
        "accent": "#ece0c6",
        "accentForeground": "#1c1712",
        "border": "#3a3326"
      },
      "radius": "0.375rem",
      "radiusPill": "9999px",
      "fontSans": "\"Inter\", \"Inter Fallback\", system-ui, sans-serif",
      "fontHeading": "\"Fraunces\", \"Fraunces Fallback\", Georgia, serif",
      "type": {
        "baseMinPx": 16,
        "baseMaxPx": 17.5,
        "ratioMin": 1.18,
        "ratioMax": 1.3,
        "headingWeight": 560,
        "bodyWeight": 400,
        "headingLineHeight": 1.04,
        "bodyLineHeight": 1.62,
        "headingTracking": -0.012
      },
      "rhythm": {
        "sectionYMinRem": 5,
        "sectionYMaxRem": 10,
        "container": "76rem"
      },
      "elevation": {
        "shadowColor": "#2a2114",
        "strength": 0.16
      },
      "motion": {
        "durationFastMs": 180,
        "durationBaseMs": 340,
        "durationSlowMs": 750,
        "easeOut": "cubic-bezier(0.22, 1, 0.36, 1)",
        "easeSpring": "cubic-bezier(0.32, 1.2, 0.6, 1)"
      },
      "imagery": {
        "overlayColor": "#1a1208",
        "overlayOpacity": 0.5,
        "imageRadius": "0.375rem"
      }
    },
    "profile": {
      "legalName": "Klinika Wzorcowa sp. z o.o.",
      "phone": "+48 22 100 20 30",
      "email": "recepcja@klinika-wzorcowa.example",
      "address": {
        "street": "ul. Przykładowa 12",
        "postalCode": "00-950",
        "city": "Warszawa",
        "district": "Mokotów",
        "accessNote": "Wejście od podwórza, parter, winda."
      },
      "geo": {
        "lat": 52.1935,
        "lng": 21.0346
      },
      "openingHours": {
        "mon": [
          {
            "opens": "08:00",
            "closes": "20:00"
          }
        ],
        "tue": [
          {
            "opens": "08:00",
            "closes": "20:00"
          }
        ],
        "wed": [
          {
            "opens": "08:00",
            "closes": "20:00"
          }
        ],
        "thu": [
          {
            "opens": "08:00",
            "closes": "20:00"
          }
        ],
        "fri": [
          {
            "opens": "08:00",
            "closes": "16:00"
          }
        ],
        "sat": [
          {
            "opens": "09:00",
            "closes": "14:00"
          }
        ]
      },
      "openingHoursNote": "Rejestracja telefoniczna do 19:00.",
      "nfz": {
        "contract": false
      },
      "payments": {
        "methods": [
          "gotówka",
          "karta",
          "BLIK"
        ]
      }
    },
    "noindex": false
  },
  "page": {
    "kind": "page",
    "path": "/rezerwacja",
    "title": "Rezerwacja wizyty",
    "seoTitle": null,
    "seoDescription": "Zarezerwuj wizytę w Klinice Wzorcowej online: wybierz zabieg, lekarza i wolny termin.",
    "blocks": [
      {
        "id": "fw-nav",
        "type": "nav.v1",
        "props": {
          "variant": "with-cta",
          "brandName": "Klinika Wzorcowa",
          "links": [],
          "ctaLabel": "Umów wizytę",
          "ctaHref": "/rezerwacja"
        }
      },
      {
        "id": "fw-rez-hero",
        "type": "hero.v1",
        "props": {
          "variant": "centered",
          "eyebrow": "Rezerwacja online",
          "heading": "Wybierz termin, który Ci pasuje",
          "subheading": "Kalendarz pokazuje wyłącznie realnie wolne terminy. Potwierdzenie i link do zmiany rezerwacji dostaniesz e-mailem od razu."
        }
      }
    ]
  }
}

An entity page (kind: services)

{
  "site": {
    "name": "Klinika Wzorcowa",
    "primaryDomain": "wzorcowa.pozyskajpacjenta.pl",
    "menu": [
      {
        "label": "Strona główna",
        "path": "/"
      },
      {
        "label": "Zabiegi",
        "path": "/zabiegi"
      },
      {
        "label": "Zespół",
        "path": "/zespol"
      },
      {
        "label": "Rezerwacja",
        "path": "/rezerwacja"
      }
    ],
    "theme": {
      "version": 1,
      "colors": {
        "background": "#faf7f1",
        "foreground": "#211d18",
        "surface": "#fffdf9",
        "surface2": "#f3ede1",
        "muted": "#f1eadb",
        "mutedForeground": "#655c4e",
        "primary": "#7a5c2e",
        "primaryForeground": "#fffdf9",
        "accent": "#2c2a25",
        "accentForeground": "#f5efe2",
        "border": "#e3dac7"
      },
      "colorsDark": {
        "background": "#171310",
        "foreground": "#f2ecdf",
        "surface": "#201b15",
        "surface2": "#2a241b",
        "muted": "#242017",
        "mutedForeground": "#b5aa93",
        "primary": "#d3ab63",
        "primaryForeground": "#231b0e",
        "accent": "#ece0c6",
        "accentForeground": "#1c1712",
        "border": "#3a3326"
      },
      "radius": "0.375rem",
      "radiusPill": "9999px",
      "fontSans": "\"Inter\", \"Inter Fallback\", system-ui, sans-serif",
      "fontHeading": "\"Fraunces\", \"Fraunces Fallback\", Georgia, serif",
      "type": {
        "baseMinPx": 16,
        "baseMaxPx": 17.5,
        "ratioMin": 1.18,
        "ratioMax": 1.3,
        "headingWeight": 560,
        "bodyWeight": 400,
        "headingLineHeight": 1.04,
        "bodyLineHeight": 1.62,
        "headingTracking": -0.012
      },
      "rhythm": {
        "sectionYMinRem": 5,
        "sectionYMaxRem": 10,
        "container": "76rem"
      },
      "elevation": {
        "shadowColor": "#2a2114",
        "strength": 0.16
      },
      "motion": {
        "durationFastMs": 180,
        "durationBaseMs": 340,
        "durationSlowMs": 750,
        "easeOut": "cubic-bezier(0.22, 1, 0.36, 1)",
        "easeSpring": "cubic-bezier(0.32, 1.2, 0.6, 1)"
      },
      "imagery": {
        "overlayColor": "#1a1208",
        "overlayOpacity": 0.5,
        "imageRadius": "0.375rem"
      }
    },
    "profile": {
      "legalName": "Klinika Wzorcowa sp. z o.o.",
      "phone": "+48 22 100 20 30",
      "email": "recepcja@klinika-wzorcowa.example",
      "address": {
        "street": "ul. Przykładowa 12",
        "postalCode": "00-950",
        "city": "Warszawa",
        "district": "Mokotów",
        "accessNote": "Wejście od podwórza, parter, winda."
      },
      "geo": {
        "lat": 52.1935,
        "lng": 21.0346
      },
      "openingHours": {
        "mon": [
          {
            "opens": "08:00",
            "closes": "20:00"
          }
        ],
        "tue": [
          {
            "opens": "08:00",
            "closes": "20:00"
          }
        ],
        "wed": [
          {
            "opens": "08:00",
            "closes": "20:00"
          }
        ],
        "thu": [
          {
            "opens": "08:00",
            "closes": "20:00"
          }
        ],
        "fri": [
          {
            "opens": "08:00",
            "closes": "16:00"
          }
        ],
        "sat": [
          {
            "opens": "09:00",
            "closes": "14:00"
          }
        ]
      },
      "openingHoursNote": "Rejestracja telefoniczna do 19:00.",
      "nfz": {
        "contract": false
      },
      "payments": {
        "methods": [
          "gotówka",
          "karta",
          "BLIK"
        ]
      }
    },
    "noindex": false
  },
  "page": {
    "kind": "services",
    "path": "/zabiegi",
    "title": "Zabiegi i usługi",
    "eyebrow": "Zabiegi",
    "lead": "Pełen zakres leczenia w naszej klinice, poznaj przebieg, ceny i odpowiedzi na najczęstsze pytania.",
    "breadcrumbs": [
      {
        "label": "Strona główna",
        "href": "/"
      },
      {
        "label": "Zabiegi"
      }
    ],
    "cta": {
      "label": "Zadzwoń i umów wizytę",
      "href": "tel:+48221002030"
    },
    "services": [
      {
        "id": "svc_konsultacja",
        "slug": "konsultacja-stomatologiczna",
        "name": "Konsultacja stomatologiczna",
        "category": "Diagnostyka",
        "shortDesc": "Przegląd jamy ustnej, diagnoza i plan leczenia z wyceną na piśmie, punkt startowy każdego leczenia.",
        "priceFromLabel": "200 zł",
        "durationLabel": "wizyta 30 min",
        "bookingServiceId": "bsvc_konsultacja",
        "path": "/zabiegi/konsultacja-stomatologiczna"
      },
      {
        "id": "svc_impl",
        "slug": "konsultacja-implantologiczna",
        "name": "Konsultacja implantologiczna z tomografią 3D",
        "category": "Implantologia",
        "shortDesc": "Tomografia CBCT, ocena warunków kostnych i kompletny plan odbudowy implantologicznej na jednej wizycie.",
        "priceFromLabel": "350 zł",
        "durationLabel": "wizyta 45 min",
        "bookingServiceId": "bsvc_impl",
        "path": "/zabiegi/konsultacja-implantologiczna"
      }
    ]
  }
}

Errors

StatusWhen
401No Authorization header
401Unknown or rotated key
404No published page at this path
404The clinic's site is not published
429Over 120 requests in this minute

Branch on the status and code, never on the Polish error text. All statuses in Errors.

401 · No Authorization header
{
  "error": "missing Authorization: Bearer <klucz z panelu Ustawienia>"
}
401 · Unknown or rotated key
{
  "error": "invalid key"
}
404 · No published page at this path
{
  "error": "page not found"
}
404 · The clinic's site is not published
{
  "error": "site not published"
}
429 · Over 120 requests in this minute
{
  "error": "przekroczono limit 120 zapytań/min"
}

Rate limit

  • 120 requests per minute per key, shared by every endpoint.
  • Every response to a valid key carries RateLimit-Remaining and RateLimit-Reset; see Rate limits.

SDK method

client.getContent(path?: string): Promise<SiteContent>

The TypeScript tab above uses it. Install and errors: TypeScript SDK.