Resources
Changelog
Every version of API v1 and of the TypeScript SDK, newest first. Changes that tighten behaviour are marked as a behaviour change.
API v1
1.9.1
- ChangedThe served OpenAPI document gains an operationId per operation (the SDK method names), six tags, English descriptions for every operation, parameter, response and property, recorded examples for every response, and
x-pp-sinceon operations, schemas and newer fields. No endpoint, field or type changed. - Fixed
MediaItem.createdAtis documented: GET /media has sent it since 1.2.0.listMedia - Deprecated
MediaItem.r2Keyis an internal storage key. It stays in the response; build addresses fromurl.listMediauploadMedia
- ChangedThe served OpenAPI document gains an operationId per operation (the SDK method names), six tags, English descriptions for every operation, parameter, response and property, recorded examples for every response, and
1.9.0
- AddedRequest a time: an optional
timeRequest(1 to 3 preferred windows, a treatment and optionally a doctor) on POST /leads, echoed asLeadCreated.timeRequest. An invalid one keeps the lead and adds the warninginvalid_time_request; with?strict=1it is a 400 with that code.createLead
- AddedRequest a time: an optional
1.8.1
- Behaviour change
BookingCatalogService.priceLabelis the booking service's own price first, then the linked treatment'spriceFromLabel. Before, the treatment's price won, so a consultation linked to orthodontics showed the orthodontics price instead of its own.getBookingCatalog
- Behaviour change
1.8.0
- Added
BookingCatalogService.nfz: services under the public health fund (NFZ) are listed for information and booked by phone only.getBookingCatalog - Behaviour changeA service the clinic marks as NFZ answers 400 with the code
nfz_phone_onlyon GET /booking/slots and POST /booking/appointments; nothing is stored.getSlotscreateAppointment
- Added
1.7.0
- AddedGET /privacy: the clinic's privacy policy and the information clause for its forms, with a version to send back.getPrivacy
- AddedOptional
privacyNoticeVersionandmarketingConsenton POST /leads and POST /booking/appointments;SiteProfile.privacy.createLeadcreateAppointmentgetSite
1.6.3
- ChangedEvery booking sends reception a "Nowa wizyta" e-mail with an .ics file; a lead created by a booking no longer sends a second e-mail of its own. The response is unchanged.createAppointment
1.6.2
- Fixed
Site.noindex: keep robots.txt open (Allow: /, no Sitemap line) so crawlers can see the noindex and drop pages they indexed before. The description used to recommendDisallow: /.getSitegetContent
- Fixed
1.6.1
- Behaviour changePOST /media refuses SVG files with 415. SVG files uploaded before are still served, with a sandboxing Content-Security-Policy header.uploadMedia
1.6.0
- AddedPOST /feedback: remarks about the clinic's site or the API for the platform team, with personal data removed before storing and 20 remarks per hour per clinic and source.sendFeedback
1.5.0
- Added
Site.noindex: the clinic keeps its site out of search engines, and your frontend follows.getSitegetContent
- Added
1.4.0
- AddedGET /site and
Site.profile: contact, address, map point, opening hours, NFZ, payments, social links, logos and registry numbers.getSitegetContent - AddedImage variants of library files (
?w=on a fixed width ladder,f=auto, avif or webp) andwidth,height,aiGeneratedandcaptionon MediaRef and MediaItem;captionandaiGeneratedon POST /media.uploadMedialistMedia
- AddedGET /site and
1.3.0
- AddedGET /booking/catalog, and
bookingServiceIdon treatments andbookingResourceIdon team members to link pages to booking.getBookingCataloglistServicesgetServicelistDoctorsgetDoctor - AddedRateLimit-Limit, RateLimit-Remaining and RateLimit-Reset on every response to a valid key;
codeon errors that have one. - AddedPOST /leads answers
warnings: ["missing_contact"]for a lead without a phone or e-mail, and rejects it with?strict=1.createLead - FixedPOST /leads answers 400
invalid_jsonorinvalid_bodyfor a body that is not a JSON object, instead of failing.createLead
- AddedGET /booking/catalog, and
1.2.0
- AddedBooking: free slots, booking an appointment (409 with fresh slots when it was taken) and the appointment list.getSlotscreateAppointmentlistAppointments
- AddedThe media library: upload an image and list the files.uploadMedialistMedia
1.1.0
- AddedTreatments, team members, case studies and posts, each with a list and a detail endpoint; the page of GET /content told apart by
kind; a schema for every response.listServicesgetServicelistDoctorsgetDoctorlistCaseStudiesgetCaseStudylistPostsgetPostgetContent
- AddedTreatments, team members, case studies and posts, each with a list and a detail endpoint; the page of GET /content told apart by
1.0.0
- AddedThe first public API: a page with its site, the published paths and creating a lead, with a secret Bearer key and 120 requests per minute.getContentlistPagescreateLead
SDK
0.8.1
for API 1.9.1- Added
MediaItem.createdAtis typed.
- Added
0.8.0
for API 1.9.0- Added
createLead({ …, timeRequest })andLeadCreated.timeRequest;TIME_OF_DAYandwindowFromPartbuild windows from the parts of the day the clinic's form offers.
- Added
0.7.2
for API 1.8.1- ChangedDocuments the new
priceLabelorder; types unchanged.
- ChangedDocuments the new
0.7.1
for API 1.8.0- Added
BookingCatalogService.nfz;getSlotsandcreateAppointmentthrow ApiError withcode: "nfz_phone_only"for an NFZ service.
- Added
0.7.0
for API 1.7.0- Added
getPrivacy();privacyNoticeVersionandmarketingConsentoncreateLeadandcreateAppointment;SiteProfile.privacy.
- Added
0.6.0
for API 1.6.0- Added
sendFeedback().
- Added
0.5.1
for API 1.5.0- Added
Site.noindex.
- Added
0.5.0
for API 1.4.0- Added
getSite()andSite.profile; media fields;uploadMedia(file, { caption, aiGenerated });mediaVariantUrl,mediaSrcSet,phoneHref,WEEKDAYSandSCHEMA_ORG_DAYS.
- Added
0.4.1
for API 1.3.0- FixedThe tarball installs on its own (types inlined, no dependency outside the public registry).
- Added
createLead(lead, { strict })andLeadCreated.warnings.
0.4.0
for API 1.3.0- Behaviour change
baseUrlis required: there is no default, so a test frontend never talks to production by accident. - AddedNon-2xx answers throw
ApiError(SlotTakenErrorfor a taken slot, with freshslots); booking and media methods; ESM and CommonJS builds.
- Behaviour change
0.3.0
for API 1.3.0- Added
getBookingCatalog(),bookingServiceIdandbookingResourceId.
- Added
0.2.0
for API 1.1.0- AddedThe eight entity methods;
SiteContent.pageis theContentPageunion.
- AddedThe eight entity methods;
0.1.0
for API 1.0.0- Added
getContent,listPagesandcreateLead.
- Added