# Kini API Docs ## Guides - [Welcome to Kini API](https://docs.getkini.com/home.md): No description found - [AI Quickstart](https://docs.getkini.com/guides/ai-quickstart.md): Connect AI assistants and MCP clients to Kini documentation. - [Getting Started](https://docs.getkini.com/guides/getting-started.md): Welcome to the Kini API! This guide will help you integrate quickly and start leveraging our features for managing jobs, candidates, and applications. - [Authentication](https://docs.getkini.com/guides/authentication.md): The Kini API uses Bearer API Key authentication to ensure secure and simplified access to all API resources. - [Pagination](https://docs.getkini.com/guides/pagination.md): Efficient handling of large datasets is essential for scalable API integrations. The Kini API supports a pagination system to manage large volumes of data efficiently across multiple endpoints. - [Filtering](https://docs.getkini.com/guides/filtering.md): Efficient data retrieval often requires filtering the dataset to match specific criteria. The Kini API supports filtering across multiple endpoints. - [Error Handling](https://docs.getkini.com/guides/error-handling.md): The Kini API is designed to provide clear and actionable error messages to help you diagnose and resolve issues quickly. - [Rate Limits](https://docs.getkini.com/guides/rate-limits.md): Learn about rate limits for the Kini API. - [Job Sync](https://docs.getkini.com/guides/job-sync.md): How jobs get into Kini — pushed through the API, pulled from the company's ATS, or crawled from the company's career page — and how to keep them up to date. - [Application Flow](https://docs.getkini.com/guides/application-flow.md): The end-to-end flow for submitting candidates through the Kini API: fetch jobs and their application questions, collect answers in your application form, submit the application, and track its delivery to the company's ATS. - [Duplicate Applications](https://docs.getkini.com/guides/duplicate-applications.md): How the Kini API treats repeated submissions, and how to design your integration so retries and re-submissions do not create duplicate applications. - [Data Retention & Anonymization](https://docs.getkini.com/guides/data-retention.md): Kini automatically anonymizes application data after 180 days. This page explains which fields are affected, how anonymized responses look, and how anonymization interacts with filtering. ## Integrations - [QuickApply Integrations](https://docs.getkini.com/integrations/quickapply/index.md): Overview of QuickApply API integrations with job boards - [Indeed](https://docs.getkini.com/integrations/quickapply/indeed.md): Instructions for integrating QuickApply with Indeed - [Meta Lead Forms](https://docs.getkini.com/integrations/quickapply/meta-lead-forms.md): Forward Meta (Facebook) Lead Ads submissions to your ATS via the Kini QuickApply webhook URL. - [Perspective Funnels](https://docs.getkini.com/integrations/quickapply/perspective.md): Instructions for configuring Perspective so that candidate applications are successfully sent to Kini and then forwarded to your Applicant Tracking System (ATS) in real time. - [Bundesagentur für Arbeit (BA)](https://docs.getkini.com/integrations/campaigns/ba.md): Post jobs to the BA Jobbörse via Kini — onboarding requirements for end customers and required job fields for partners ## Webhooks - [Webhooks Overview](https://docs.getkini.com/webhooks/overview.md): Overview of the webhooks Kini offers for real-time updates on application and job events. - [Application Sync Status Update](https://docs.getkini.com/webhooks/application-sync-status-update.md): Sent when an application has finished synchronizing to the company's ATS. Whenever an application's sync status changes, Kini POSTs a payload to the URL you configure. - [Job Update Webhook](https://docs.getkini.com/webhooks/job-update.md): Payload schema and behavior for the Job Update webhook, fired on job create, update, and archive events. - [Job Booking Status Update](https://docs.getkini.com/webhooks/job-booking-status-update.md): Sent when the status of a job booking changes. Whenever a job booking is booked, published, or otherwise updated, Kini POSTs a payload to the URL you configure. ## API Reference - [Applications](https://docs.getkini.com/api/applications/index.md): Submit, list, and retrieve job applications received through the Kini API. - [List Applications](https://docs.getkini.com/api/get-applications.md): Read several Application details identified by their unique Company ID. Note: applications older than 180 days are returned anonymized — personal data (candidate, attachments, notes, social links, screening questions, custom fields) is omitted from the response. - [Create Application](https://docs.getkini.com/api/post-applications.md): Create a Job Application to a Company using the Company's ID. - [Get Application](https://docs.getkini.com/api/get-applications-id.md): Read a specific Application detail identified by its unique ID. Note: applications older than 180 days are returned anonymized — personal data (candidate, attachments, notes, social links, screening questions, custom fields) is omitted from the response. - [Jobs](https://docs.getkini.com/api/jobs/index.md): List, create, retrieve, and update job postings managed through the Kini API. - [List Jobs](https://docs.getkini.com/api/get-jobs.md): Read several Job details identified by their unique Company ID. - [Create Job](https://docs.getkini.com/api/post-jobs.md): Create a Job posting at a Company using the Company's ID. - [Get Job](https://docs.getkini.com/api/get-jobs-id.md): Read a specific Job detail identified by its unique ID. - [Update Job](https://docs.getkini.com/api/patch-jobs-id.md): Update a specific Job partially by its unique ID. - [Companies](https://docs.getkini.com/api/companies/index.md): Look up, manage, and synchronize the companies accessible with your API credentials. - [List Companies](https://docs.getkini.com/api/get-companies.md): List the companies the authenticated key has access to — every company under the partner for a partner-scoped key, or just its own company for a company-scoped key. Results are paginated (10 per page, 50 maximum) and ordered by `-created_at` unless you pass `ordering`. Each entry carries the same fields as [Get Company](/api/get-companies-id). - [Create Company](https://docs.getkini.com/api/post-companies.md): Create a new Company under a partner and an ATS integration. The authenticated partner becomes the owning partner of the resulting record. - [Get Single Company](https://docs.getkini.com/api/get-companies-id.md): Retrieve a specific Company identified by its unique ID. - [Update Company](https://docs.getkini.com/api/patch-companies-id.md): Update a specific Company partially by its unique ID. Only the fields included in the request body are modified. - [Create Magic Link](https://docs.getkini.com/api/post-companies-id-magic.md): Create or retrieve an active magic link for the Company. If an active link already exists, its URL is returned with status `200`. Otherwise a new link is created and returned with status `201`. - [Trigger Job Sync](https://docs.getkini.com/api/post-companies-id-sync-jobs.md): Trigger a manual job synchronization from the ATS for the given Company. Throttled to one request per minute per company. - [Compose Company Integration](https://docs.getkini.com/api/post-companies-id-compose.md): Configure the Company's integration in a single call: store the integration credentials, switch on the features the partner is entitled to, and optionally update the Company's own master data. Which keys `config` accepts depends on the integration and on the partner's entitlements — unknown keys are rejected with `400`. Use [List Integration Fields](/api/get-integrations-integration-fields) to discover the field list of the integration you are wiring up. Existing configuration for the same company and integration is overwritten, so the call is safe to repeat. - [Deactivate Company](https://docs.getkini.com/api/patch-companies-id-deactivate.md): Mark the Company as deactivated and notify internal channels. The record is retained but excluded from active listings. - [Integrations](https://docs.getkini.com/api/integrations/index.md): Discover the ATS integrations Kini supports and the configuration fields each one needs, so you can build a setup flow that works for every ATS. - [List Integrations](https://docs.getkini.com/api/get-integrations.md): List the ATS integrations Kini offers. Use the `slug` of an entry as the `ats` value when creating or updating a company, and as `integration` in [Compose Company Integration](/api/post-companies-id-compose). Only publicly offered integrations are returned, ordered by name. The response is a plain array — this endpoint is not paginated. Requires a partner-scoped API key. - [List Integration Fields](https://docs.getkini.com/api/get-integrations-integration-fields.md): List the configuration fields of a single integration — everything a company has to supply before the integration can run. Use this to build the setup form dynamically instead of hard-coding each ATS: render one input per field in `order`, send the answers back as `config` in [Compose Company Integration](/api/post-companies-id-compose) keyed by `config_path`, and skip the fields where `is_visible` is `false`. Which fields come back depends on the partner's entitlements, so two partners can see different forms for the same integration. The response is a plain array — this endpoint is not paginated. An unknown integration slug returns an empty array rather than a `404`. Requires a partner-scoped API key. - [Shop](https://docs.getkini.com/api/shop/index.md): Browse bookable talent channels, hand users into the shop with a clickout link, and manage the job bookings that come out of it. - [List Talent Channels](https://docs.getkini.com/api/get-talent_channels.md): List the talent channels the company can book on, each with the products available to it. Prices are the company's own — they already include any partner discount — so use this endpoint to build a shop or price comparison rather than a static catalogue. Channels with no bookable product are left out. Results are ordered by the best product rating on the channel, and products within a channel by price. - [List Job Bookings](https://docs.getkini.com/api/get-job_bookings.md): List the company's job bookings — the reach that has been purchased for its jobs, one record per job and talent channel. Each record carries the job's own fields plus the booking's status, run time, price, and click statistics. - [Unpublish Job Booking](https://docs.getkini.com/api/patch-job_bookings-id-unpublish.md): Take a live job booking offline before its run time is over — for instance when the position has been filled. The booking moves to status `unpublished`; the purchase is not refunded and the booking cannot be published again. - [Create Promote Clickout Link](https://docs.getkini.com/api/post-clickout-promote.md): Create a clickout link that signs the user in and drops them on the promote page of a single job, ready to book reach for it. The job is looked up by its `external_job_id` within the company. Kini refreshes the job from the ATS first, and creates the job if it does not exist yet, so the link also works for a job your system has only just published. - [Create Redirect Clickout Link](https://docs.getkini.com/api/post-clickout-redirect.md): Create a clickout link that signs the user in and drops them on a shop overview page — their job list or their bookings — without going through the promote flow. Requires a partner-scoped API key; company-scoped keys can only use [Create Promote Clickout Link](/api/post-clickout-promote).