Two secrets
- Vort stores only SHA-256 hashes of both secrets. A lost org token cannot be recovered: ask Vort for a new activation code and redeem it.
- The acting recruiter is identified by
acting_user_external_idin the request body. It is a field, not a credential. Your server is responsible for making sure the logged-in user in your product is who you say they are. - Key rotation: Vort can rotate your partner key on request. The old key stops working the moment the new one is issued (there is no overlap window), so plan the rotation with Vort and deploy the new key immediately.
- Webhook secret: Vort sends you a webhook signing secret out of band. It is distinct from your API key (see Webhooks).
Request headers
string
required
Your partner API key,
vpk_live_ + 48 lowercase hex. Sent on every request.string
The customer’s org token,
vot_ + 48 lowercase hex, obtained by redeeming an activation code. Required on every request except POST /activations/redeem.string
he or en. Language of notices and messages for this request. Default: your partner default (he unless agreed otherwise).string
application/json on every POST.401 invalid_partner_key; a missing or unknown org token gets 401 invalid_org_token. See Errors.
Connecting a customer
A customer organization is connected once, by one of its admins, with a one-time activation code that Vort issues to that customer.1
The admin pastes the code
The admin pastes the code into your Connect Vort screen (see Screen 1 in the UI specification). The form posts to your server; the browser never talks to Vort.
2
Your server redeems it
Your server calls
POST /activations/redeem with the code and your id for this customer (external_id, unique per partner). Only x-partner-key is sent.3
Store the org token
Vort returns the org token once. Store it server-side, encrypted at rest, keyed by your
external_id. Vort cannot show it again.4
Show the connected state
Your screen shows the connected state with
organization_name, never the token.VORT-XXXX-XXXX using the alphabet ABCDEFGHJKMNPQRSTUVWXYZ23456789 (no 0, O, 1, I, L). Codes are valid 14 days by default. Vort normalizes case, spaces and dashes, so vort xxxx xxxx is accepted. Send what the user typed; you MAY trim it.
Response
Redeem errors
Reconnecting
On401 invalid_org_token from any later call, show the Connect Vort screen again in the disconnected state, with a note that the connection must be renewed. The admin redeems a new code from Vort. On 403 organization_disabled, tell the admin their Vort connection is paused and to contact Vort.
Registering recruiters
Before a recruiter starts a run, register them withPOST /users, using your own id for them:
curl
- The recruiter is registered as an API-only identity of this organization. The
emailis stored as a contact and display e-mail only: it is not a login, no Vort account is created or linked under it, and nothing is e-mailed to the recruiter. Recruiters registered this way cannot sign in to Vort directly. - Later calls name the recruiter with
acting_user_external_id. An unregistered id is rejected with404 user_not_found. POST /usersis an upsert onexternal_idand is safe to retry.
Server checklist
- Partner key in your secrets manager or environment, never in source control.
- Org tokens encrypted at rest, one per connected customer, readable only by the service that calls Vort.
- No key or token in browser responses, browser storage, URLs, logs visible to customers, or error messages.
- Base URL in configuration, one value per environment (sandbox and production).
- When you contact Vort, identify the key by its first 12 characters only (for example
vpk_live_3f9).