Runs
Start a matching run
NOT idempotent: every accepted call starts a new run. Do not retry automatically
on a timeout or 5xx. At most 3 must requirements.
Start a matching run
curl --request POST \
--url https://vort-partner-api.vercel.app/sandbox/v1/runs \
--header 'Content-Type: application/json' \
--header 'x-partner-key: <api-key>' \
--header 'x-vort-org: <api-key>' \
--data '
{
"job_external_id": "job-4410",
"acting_user_external_id": "u-88121",
"target_count": 30,
"requirements": [
{
"text": "5+ years of backend development in Go or Java",
"kind": "must"
},
{
"text": "Production experience with Kafka",
"kind": "must"
},
{
"text": "Payments or fintech domain",
"kind": "nice"
}
]
}
'const options = {
method: 'POST',
headers: {
'x-partner-key': '<api-key>',
'x-vort-org': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
job_external_id: 'job-4410',
acting_user_external_id: 'u-88121',
target_count: 30,
requirements: [
{text: '5+ years of backend development in Go or Java', kind: 'must'},
{text: 'Production experience with Kafka', kind: 'must'},
{text: 'Payments or fintech domain', kind: 'nice'}
]
})
};
fetch('https://vort-partner-api.vercel.app/sandbox/v1/runs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://vort-partner-api.vercel.app/sandbox/v1/runs"
payload = {
"job_external_id": "job-4410",
"acting_user_external_id": "u-88121",
"target_count": 30,
"requirements": [
{
"text": "5+ years of backend development in Go or Java",
"kind": "must"
},
{
"text": "Production experience with Kafka",
"kind": "must"
},
{
"text": "Payments or fintech domain",
"kind": "nice"
}
]
}
headers = {
"x-partner-key": "<api-key>",
"x-vort-org": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://vort-partner-api.vercel.app/sandbox/v1/runs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'job_external_id' => 'job-4410',
'acting_user_external_id' => 'u-88121',
'target_count' => 30,
'requirements' => [
[
'text' => '5+ years of backend development in Go or Java',
'kind' => 'must'
],
[
'text' => 'Production experience with Kafka',
'kind' => 'must'
],
[
'text' => 'Payments or fintech domain',
'kind' => 'nice'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-partner-key: <api-key>",
"x-vort-org: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"run_id": "9f2b6c1e-3d4a-4e8f-b1c7-0a5d2e9f6b33",
"status": "running",
"warnings": [
{
"index": 0,
"code": "years_band_ceiling",
"message_he": "\"5+ שנים\" לא מגביל מלמעלה.",
"message_en": "\"5+ years\" sets no upper limit.",
"suggestion_he": null,
"suggestion_en": null
}
]
}{
"error": "invalid_org_token",
"message": "The organization token is not valid."
}{
"error": "organization_disabled",
"message": "This organization's Vort connection is disabled."
}{
"error": "invalid_partner_key",
"message": "<string>"
}{
"error": "requirements_rejected",
"message": "One or more requirements cannot be used as written.",
"rejected": [
{
"index": 3,
"code": "too_many_musts",
"message_he": "אפשר לסמן עד 3 דרישות חובה.",
"message_en": "You can mark up to 3 requirements as must.",
"suggestion_he": "סמנו את הדרישה הזאת כ\"יתרון\".",
"suggestion_en": "Mark this requirement as nice-to-have."
}
],
"warnings": []
}{
"error": "rate_limited",
"message": "Too many requests."
}{
"error": "rate_limit_unavailable",
"message": "Rate limiting is temporarily unavailable. Retry shortly."
}Authorizations
Partner API key: vpk_live_ + 48 lowercase hex. Server-side only.
Customer org token: vot_ + 48 lowercase hex, from /activations/redeem. Server-side only.
Headers
Language of notices and messages. Defaults to the partner default.
Available options:
he, en Body
application/json
Required range:
x >= 1Response
Run started.
Allowed value:
"running"Hide child attributes
Hide child attributes
0-based position in the submitted requirements array.
Required range:
x >= 0New codes may be added.
Example:
"short_term_may_be_dropped"
⌘I
Start a matching run
curl --request POST \
--url https://vort-partner-api.vercel.app/sandbox/v1/runs \
--header 'Content-Type: application/json' \
--header 'x-partner-key: <api-key>' \
--header 'x-vort-org: <api-key>' \
--data '
{
"job_external_id": "job-4410",
"acting_user_external_id": "u-88121",
"target_count": 30,
"requirements": [
{
"text": "5+ years of backend development in Go or Java",
"kind": "must"
},
{
"text": "Production experience with Kafka",
"kind": "must"
},
{
"text": "Payments or fintech domain",
"kind": "nice"
}
]
}
'const options = {
method: 'POST',
headers: {
'x-partner-key': '<api-key>',
'x-vort-org': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
job_external_id: 'job-4410',
acting_user_external_id: 'u-88121',
target_count: 30,
requirements: [
{text: '5+ years of backend development in Go or Java', kind: 'must'},
{text: 'Production experience with Kafka', kind: 'must'},
{text: 'Payments or fintech domain', kind: 'nice'}
]
})
};
fetch('https://vort-partner-api.vercel.app/sandbox/v1/runs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://vort-partner-api.vercel.app/sandbox/v1/runs"
payload = {
"job_external_id": "job-4410",
"acting_user_external_id": "u-88121",
"target_count": 30,
"requirements": [
{
"text": "5+ years of backend development in Go or Java",
"kind": "must"
},
{
"text": "Production experience with Kafka",
"kind": "must"
},
{
"text": "Payments or fintech domain",
"kind": "nice"
}
]
}
headers = {
"x-partner-key": "<api-key>",
"x-vort-org": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://vort-partner-api.vercel.app/sandbox/v1/runs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'job_external_id' => 'job-4410',
'acting_user_external_id' => 'u-88121',
'target_count' => 30,
'requirements' => [
[
'text' => '5+ years of backend development in Go or Java',
'kind' => 'must'
],
[
'text' => 'Production experience with Kafka',
'kind' => 'must'
],
[
'text' => 'Payments or fintech domain',
'kind' => 'nice'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-partner-key: <api-key>",
"x-vort-org: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"run_id": "9f2b6c1e-3d4a-4e8f-b1c7-0a5d2e9f6b33",
"status": "running",
"warnings": [
{
"index": 0,
"code": "years_band_ceiling",
"message_he": "\"5+ שנים\" לא מגביל מלמעלה.",
"message_en": "\"5+ years\" sets no upper limit.",
"suggestion_he": null,
"suggestion_en": null
}
]
}{
"error": "invalid_org_token",
"message": "The organization token is not valid."
}{
"error": "organization_disabled",
"message": "This organization's Vort connection is disabled."
}{
"error": "invalid_partner_key",
"message": "<string>"
}{
"error": "requirements_rejected",
"message": "One or more requirements cannot be used as written.",
"rejected": [
{
"index": 3,
"code": "too_many_musts",
"message_he": "אפשר לסמן עד 3 דרישות חובה.",
"message_en": "You can mark up to 3 requirements as must.",
"suggestion_he": "סמנו את הדרישה הזאת כ\"יתרון\".",
"suggestion_en": "Mark this requirement as nice-to-have."
}
],
"warnings": []
}{
"error": "rate_limited",
"message": "Too many requests."
}{
"error": "rate_limit_unavailable",
"message": "Rate limiting is temporarily unavailable. Retry shortly."
}