# Vort Partner API > Integration guide and API reference for ATS vendors who build Vort candidate matching into their product. - [Introduction](https://docs.vort-sourcing.com/introduction.md): What the Vort Partner API does, how the pieces fit, and the rules every integration follows. - [Quickstart](https://docs.vort-sourcing.com/quickstart.md): Take one customer from activation code to a reported decision against the sandbox. - [Authentication and connecting a customer](https://docs.vort-sourcing.com/authentication.md): The two server-side secrets, how a customer connects their Vort account to your product, and how recruiters are identified. - [Integration flow](https://docs.vort-sourcing.com/integration-flow.md): The eight steps every integration follows, with the rules for requirements, runs, reveals and decisions. - [UI specification](https://docs.vort-sourcing.com/ui-specification.md): The screens you build in your product, what they contain, where things go, and which texts come from Vort. - [Notices](https://docs.vort-sourcing.com/notices.md): The notice catalogue, the generic-rendering rule, and how to report what the recruiter was shown. - [Webhooks](https://docs.vort-sourcing.com/webhooks.md): Events Vort posts to your server when a run finishes or fails and when a contact is revealed, and how to verify them. - [Errors, rate limits and retries](https://docs.vort-sourcing.com/errors.md): How the API reports failures, how much you may call it, and which calls are safe to repeat. - [Sandbox](https://docs.vort-sourcing.com/sandbox.md): Build, test and certify against the same API as production, with synthetic contacts, no credit spend, and every state on demand. - [Certification fixtures](https://docs.vort-sourcing.com/certification-fixtures.md): Synthetic cert-* jobs that return fixed, deterministic payloads for building and certifying your screens. - [Certification checklist](https://docs.vort-sourcing.com/certification.md): The 22-item go-live checklist. Production keys are issued only after every item passes in the sandbox. - [API reference](https://docs.vort-sourcing.com/api-reference/introduction.md): Every endpoint and webhook of the Vort Partner API v1, generated from the OpenAPI 3.1 document. - [Redeem a one-time activation code for an org token](https://docs.vort-sourcing.com/api-reference/activation/redeem.md): Single-use. A second redeem of the same code returns 409 `code_already_redeemed`; the org token is not returned again. Not safe to retry blindly after a timeout. - [Register a recruiter of the organization](https://docs.vort-sourcing.com/api-reference/users/register.md): Upsert on `external_id` within the organization. Safe to retry. The recruiter is registered as an API-only identity of this organization: `email` is stored as the recruiter's contact / display e-mail only. It is not a login, and no Vort account is created or linked under it. Recruiters registered th… - [Create or update a job](https://docs.vort-sourcing.com/api-reference/jobs/upsert.md): Upsert on `external_id` within the organization; a repeat returns the same `job_id` with `created: false, updated: true`, after updating title, description_text and location_text. Runs already started keep their description. Safe to retry. - [Start a matching run](https://docs.vort-sourcing.com/api-reference/runs/start.md): NOT idempotent: every accepted call starts a new run. Do not retry automatically on a timeout or 5xx. At most 3 `must` requirements. - [Run status, progress, notices and candidates](https://docs.vort-sourcing.com/api-reference/runs/get.md) - [Reveal a candidate's contact details (charges credits)](https://docs.vort-sourcing.com/api-reference/candidates/reveal.md): Show `reveal_price_credits` from the latest GET /runs/{run_id} before calling. A candidate already revealed for this organization is not charged again (`credits_charged: 0`). - [Report recruiter decisions and the notices shown](https://docs.vort-sourcing.com/api-reference/decisions/report.md): Mandatory under the partnership. Each (run_id, candidate_id, decision) is stored once; repeats are counted in `duplicates`. Safe to retry. Treat a 422 as "nothing stored" and resend the corrected batch. - [SANDBOX ONLY: queue a test webhook (optionally with a bad signature)](https://docs.vort-sourcing.com/api-reference/sandbox/test-webhook.md): Queues one delivery with a fixture payload (`job_external_id: cert-webhook`, a fresh `run_id` that does not exist on GET /runs) to the webhook URL registered for the partner. With `valid_signature: false` the delivery is signed with a deliberately wrong secret, sent once and never retried; your endp… - [run_completed](https://docs.vort-sourcing.com/api-reference/webhooks/run-completed.md): A run reached status completed. - [run_failed](https://docs.vort-sourcing.com/api-reference/webhooks/run-failed.md): A run reached status failed. - [candidate_revealed](https://docs.vort-sourcing.com/api-reference/webhooks/candidate-revealed.md): A candidate's contact was revealed in a run (one event per revealed candidate). - [Changelog](https://docs.vort-sourcing.com/changelog.md): Changes to the Vort Partner API, newest first. ## OpenAPI Specs - [openapi](/api-reference/openapi.yaml)