ShopShop

Shop

Browse bookable talent channels, hand users into the shop with a clickout link, and manage the job bookings that come out of it.

The Shop endpoints cover the reach side of Kini: what a company can book, how you get its users into the shop, and what happens to a booking once it is live. To publish a job ad through the API, follow Publish a Job Ad.

All requests require authentication. Company-scoped requests need the Company-Id header — see Authentication.

Available endpoints

  • POST /clickout/promote/ — create a clickout link that signs the user in on the promote page of a single job. The job is refreshed from the ATS first, and created if Kini does not know it yet.
  • POST /clickout/redirect/ — create a clickout link straight to the company's job list or bookings, skipping the promote flow. Requires a partner-scoped API key.
  • GET /products/ lists the products the company can book, with id, provider_product, and the company-specific price.
  • GET /talent_channels/ lists those same products grouped under their job board, for a screen that shows one card per channel.
  • GET /billing_details/ lists the company's active billing details.
  • POST /billing_details/ creates a billing detail for the company.
  • POST /job_bookings/ creates a transaction that books one or more jobs onto products.
  • GET /job_bookings/ lists the company's job bookings, filterable by status, including run time, price, and click statistics.
  • PATCH /job_bookings/{id}/unpublish/ — take a live job booking offline before its run time is over.

Common use cases

  • Turn a job in your own UI into a tracked click that lands the recruiter on Kini's promote page for exactly that job.
  • Show a company its bookable channels and its own prices without rebuilding the catalogue on your side.
  • Report on booked reach — spend, run time, and clicks — inside your product.
  • Pull a booking off the job board as soon as the position is filled.

Before you start

  • Clickout links are scoped to a company, single-purpose, and valid for one hour. Generate a fresh one per user request instead of caching one for reuse.
  • Prices returned by GET /products/ and GET /talent_channels/ are the company's own and already include any partner discount. Do not treat them as a public price list.
  • Channel and product descriptions in GET /talent_channels/ and GET /products/ follow the request language. See Languages. The product in GET /job_bookings/ carries no descriptions.
  • Unpublishing is not a refund and cannot be undone; the booking cannot be published again afterwards.
  • The company must be set up for the shop before any of these calls succeed. Use Compose Company Integration to complete that setup.

A clickout creates the shop user on first use and adds them to the company. If the email address already belongs to a different organisation, the call fails with 403 rather than moving the user.