Quickstart
Take one customer from activation code to a reported decision with
curl, Node.js, Python or PHP.Integration flow
The eight steps of every integration, from connecting a customer to receiving webhooks.
UI specification
The screens you build, what you may customize, and what is fixed.
API reference
Every endpoint and webhook, generated from the OpenAPI 3.1 document.
Base URLs
Every endpoint is
{BASE_URL}/v1/<path>. In the sandbox, POST /runs is POST https://vort-partner-api.vercel.app/sandbox/v1/runs. Keep the base URL in configuration so it can change without a release, and do not derive it from anything else.
Division of responsibility
The flow in 8 steps
Authentication at a glance
Two secrets, both server-side only: your partner API key (x-partner-key, on every request) and one org token per connected customer (x-vort-org, on every request except POST /activations/redeem).
Languages
Vort’s content is available in Hebrew (he) and English (en). Send x-vort-lang: he|en to choose the language of notices and messages for a request; without it Vort uses your partner default (Hebrew unless agreed otherwise). Requirement validation issues carry both languages (message_he, message_en); show the one matching the recruiter’s UI language. When the language is Hebrew your screens MUST render right-to-left.
Versioning policy
- The version is in the path:
{BASE_URL}/v1/.... - Within
v1, Vort makes additive changes only: new endpoints, new optional request fields, new response fields, new notice codes, new webhook events, new error codes on existing HTTP statuses. These are non-breaking. - Breaking changes (removing or renaming a field, changing a type or meaning) ship only as
/v2, announced in advance, with an overlap period (agreed with partners) during which/v1keeps working.
Because changes within
v1 are additive, your client MUST:- ignore unknown fields in every response and webhook body;
- render a notice with an unknown
codegenerically (see Notices); - ignore webhook events it does not know, still answering
2xx; - handle an unknown
errorcode by its HTTP status.
Environments
You develop and certify against the sandbox: a real deployment on real search results, with synthetic contact details, masked candidate names until the data processing annex is signed, and certification fixtures that return fixed payloads (see Sandbox). Production keys and the production base URL are issued after certification passes. Keep the base URL, the partner key and the org tokens in per-environment configuration.Data handling
Candidate data you receive from the API (names, titles, employers, locations, evidence, and revealed contact details) is personal data. Its processing is governed by the Data Processing Annex to the partnership agreement.Placeholder, to be agreed. The annex will fix: retention periods for candidate data and revealed contact details on your side; propagation of deletion and correction requests (Vort to partner and partner to Vort) and the deadline for each; sub-processors; breach notification; and the lawful basis for contacting candidates under Israeli law. Until the annex is signed, do not copy candidate data outside the customer’s own workspace in your product.
Support
Always include the
run_id when you contact Vort about a run. It is returned by POST /runs, echoed in every run response and every webhook, and it MUST be visible to the recruiter in your UI so that the recruiter can quote it to you and you can quote it to Vort.error code.