Skip to main content
PUT
cURL

Authorizations

x-api-key
string
header
required

Your key id, VFN_TEST_… or VFN_LIVE_…. Sent on every request.

x-secret-key
string
header
required

Your secret, VFN_SK_…. Not a real header, and never sent to the API. It is only a form field for Try it, which uses it to sign your request in your browser. In your own code you sign each request with the secret and send x-api-key, x-timestamp and x-signature (see Authentication).

Headers

Idempotency-Key
string

Optional. A retry with the same key returns the first answer (kept 24 h). Leave empty in Try it: a new one is made for every call.

Maximum string length: 255

Path Parameters

mandate_id
string
required

Record's mandate id (JM_...): the mandate_id returned when you create the mandate

Pattern: ^JM_[A-Z0-9]{10,40}$

Body

application/json
workflow_id
string
required

One of your workflows

Pattern: ^WF_[A-Z]{2}_[A-Z0-9]{10,40}$
title
string
required
Required string length: 1 - 200
company_name
string
required
Required string length: 1 - 200
skills
object[]
required

5 to 10 recommended; fewer than 5 is a warning

Required array length: 1 - 50 elements
location_type
enum<string>

Where the job is: "india" (default; give location) or "abroad" (give countries). Same as the playground's Abroad option

Available options:
india,
abroad
location
object

A place in India (find it with GET /locations). Leave it out for an abroad job

countries
string[]

Only with location_type "abroad": 1 to 10 ISO 3166-1 alpha-2 codes such as SG (list them with GET /countries). India is not selectable

Maximum array length: 20
Pattern: ^[A-Za-z]{2}$
experience
object

Whole years, 0 to 50

openings
integer
Required range: 1 <= x <= 100000
salary
object
description
string

Up to 1,500 characters (the question generator's limit)

Maximum string length: 1500
shift
string

Use a value from GET /shifts so the playground shows it as a choice; any other text is kept as sent

Maximum string length: 100
employment_type
string

Use a value from GET /employment-types so the playground shows it as a choice; any other text is kept as sent

Maximum string length: 100
owner
object

The recruiter in your ATS; defaults to x-on-behalf-of

methods
enum<string>[]

Any non-empty mix; candidates always go enrichment → skills → interest. Omit to use the workflow's default.

Required array length: 1 - 3 elements
Available options:
data_enrichment,
skill_verification,
interest_collection
enrichment_questions
object[]

0 to 5 enrichment questions (up to 10 when data_enrichment is the only method)

Maximum array length: 50
interest_collection
object

Response

Accepted (200 when nothing changed)

success
boolean
message
string
data
object