মূল কথা
রেফারেন্সে এন্ডপয়েন্ট আর ফিল্ডের বর্ণনা ইংরেজিতে, কারণ সেগুলো সরাসরি OpenAPI ফাইল থেকে আসে।
বেস URL https://app.seekiq.io/api/v1। আপনার কী Authorization: Bearer হিসেবে পাঠান। সব এরর একই কাঠামোয় আসে: একটি code, একটি message আর একটি request id। তালিকার এন্ডপয়েন্ট limit আর cursor নেয় এবং next_cursor আর has_more ফেরত দেয়।
Jobs
Jobs and their workflow stages
List jobs
GET/jobs
jobs:readপ্যারামিটার
closed also returns paused and archived jobs, which read as closed.
draftopenclosed- limitintegerকোয়েরি
- cursorstringকোয়েরি
Opaque cursor from next_cursor. Expires after 24h (400 bad_request, reason cursor_expired); a cursor from another list answers 400 bad_request, reason invalid_cursor.
রেসপন্স
- 200{ data: Job[], next_cursor: string | null, has_more: boolean }
A page of jobs
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl "https://app.seekiq.io/api/v1/jobs" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Create a job
POST/jobs
jobs:writeপ্যারামিটার
- Idempotency-Keystring (uuid)হেডার
POST only, scoped to the API key. Replays the stored response for 24h with Idempotent-Replayed true. The same key with a different method, path or body returns 409 idempotency_key_reused; a key whose first request is still running returns 409 conflict; a value that is not a UUID returns 400 bad_request.
রিকোয়েস্ট বডি
- titlestringআবশ্যিক
- levelJobLevel
internjuniormidseniorleadmanager - departmentstring | null
- locationstring | null
- jdobject
- workflow_template_idstring | null
- deadline_atstring (date-time) | null
রেসপন্স
উদাহরণ
curl -X POST "https://app.seekiq.io/api/v1/jobs" \
-H "Authorization: Bearer $SEEKIQ_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"title": "Customer support lead"
}'Get a job
GET/jobs/{job_id}
jobs:readপ্যারামিটার
- job_idIdপাথআবশ্যিক
রেসপন্স
উদাহরণ
curl "https://app.seekiq.io/api/v1/jobs/job_01JB5C1N" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Update a job
PATCH/jobs/{job_id}
jobs:writeSetting status to open reopens a job published before; a job never published answers 422 unprocessable (publish it in the job wizard first). It answers 409 conflict with error.reason job_limit when the workspace already has as many open jobs as its plan allows (the trial: 3; Starter: 5; Growth and Enterprise: no limit). Close a job to free a slot. Setting status to draft on a published job answers 409 invalid_transition.
প্যারামিটার
- job_idIdপাথআবশ্যিক
রিকোয়েস্ট বডি
- statusJobStatus
draftopenclosed - titlestring
- levelJobLevel
internjuniormidseniorleadmanager - departmentstring | null
- locationstring | null
- jdobject
- workflow_template_idstring | null
- deadline_atstring (date-time) | null
রেসপন্স
উদাহরণ
curl -X PATCH "https://app.seekiq.io/api/v1/jobs/job_01JB5C1N" \
-H "Authorization: Bearer $SEEKIQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "draft",
"title": "Customer support lead",
"level": "intern"
}'List the workflow stages of a job (resolved template + job override)
GET/jobs/{job_id}/stages
jobs:readপ্যারামিটার
- job_idIdপাথআবশ্যিক
রেসপন্স
- 200{ workflow_version: integer, data: Stage[] }
Ordered stages
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl "https://app.seekiq.io/api/v1/jobs/job_01JB5C1N/stages" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Applications
Applications and stage moves
List applications
GET/applications
applications:readপ্যারামিটার
- job_idIdকোয়েরি
- stage_idIdকোয়েরি
- updated_sincestring (date-time)কোয়েরি
- limitintegerকোয়েরি
- cursorstringকোয়েরি
Opaque cursor from next_cursor. Expires after 24h (400 bad_request, reason cursor_expired); a cursor from another list answers 400 bad_request, reason invalid_cursor.
রেসপন্স
- 200{ data: Application[], next_cursor: string | null, has_more: boolean }
A page of applications
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl "https://app.seekiq.io/api/v1/applications" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Create an application
POST/applications
applications:writeconsent is required. AI screening waits for consent if consent.ai_screening is not true. The candidate needs a phone or an email (400 validation_failed otherwise) and is matched to an existing candidate by either. An unknown job_id answers 400 validation_failed, a job that is not open answers 422 unprocessable and a candidate who already applied to the job answers 409 conflict. cv_url and cv_upload_id are recorded in the audit log but the CV is not fetched or read yet, so cv_match stays null for applications created here.
প্যারামিটার
- Idempotency-Keystring (uuid)হেডার
POST only, scoped to the API key. Replays the stored response for 24h with Idempotent-Replayed true. The same key with a different method, path or body returns 409 idempotency_key_reused; a key whose first request is still running returns 409 conflict; a value that is not a UUID returns 400 bad_request.
রিকোয়েস্ট বডি
- job_idIdআবশ্যিক
- cv_urlstring (uri) | null
Recorded in the audit log; the CV is not fetched or read yet.
- cv_upload_idstring | null
Recorded in the audit log; the CV is not fetched or read yet.
- sourceApplicationSource
Defaults to api.
careers_siteembedapiemail_inboxreferralsourcedjob_board - answersobject[]
Answers to the job's apply form, checked against each question (an unknown question or a value that does not fit is a validation_failed). A multi choice answer is option ids separated by commas; yes or no is yes or no. File questions cannot be answered here.
রেসপন্স
- 201Application
Created
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl -X POST "https://app.seekiq.io/api/v1/applications" \
-H "Authorization: Bearer $SEEKIQ_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"job_id": "job_01JB7X4M2Q8Z",
"candidate": {
"name": "Nadia Rahman"
},
"consent": {
"ai_screening": true,
"text_version": "ai-screening-2026-10",
"captured_at": "2026-10-26T09:30:00Z"
}
}'Get an application
GET/applications/{application_id}
applications:readপ্যারামিটার
- application_idIdপাথআবশ্যিক
রেসপন্স
- 200Application
The application
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl "https://app.seekiq.io/api/v1/applications/app_01JB7X4M2Q8Z" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Move an application to another stage
POST/applications/{application_id}/move
applications:writeCannot move to a rejected or archived state (that is a decision). Moving into the offer stage requires an approved, sent or signed offer (reason offer_not_approved). Hired is never a move: a person confirms the hire in the app once the candidate has signed (reason hire_is_a_decision). A stage that is not in the job's workflow, the stage the application is already in, or an application a person rejected also answer 409 invalid_transition.
প্যারামিটার
- application_idIdপাথআবশ্যিক
- Idempotency-Keystring (uuid)হেডার
POST only, scoped to the API key. Replays the stored response for 24h with Idempotent-Replayed true. The same key with a different method, path or body returns 409 idempotency_key_reused; a key whose first request is still running returns 409 conflict; a value that is not a UUID returns 400 bad_request.
রিকোয়েস্ট বডি
- to_stage_idIdআবশ্যিক
- reasonstring | null
রেসপন্স
- 200Application
Moved
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl -X POST "https://app.seekiq.io/api/v1/applications/app_01JB7X4M2Q8Z/move" \
-H "Authorization: Bearer $SEEKIQ_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"to_stage_id": "stg_01JB7X4M2Q8Z"
}'Candidates
One candidate record across all jobs
List or look up candidates
GET/candidates
candidates:readপ্যারামিটার
- emailstring (email)কোয়েরি
- tagstringকোয়েরি
- limitintegerকোয়েরি
- cursorstringকোয়েরি
Opaque cursor from next_cursor. Expires after 24h (400 bad_request, reason cursor_expired); a cursor from another list answers 400 bad_request, reason invalid_cursor.
রেসপন্স
- 200{ data: Candidate[], next_cursor: string | null, has_more: boolean }
A page of candidates
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl "https://app.seekiq.io/api/v1/candidates" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Create a candidate
POST/candidates
candidates:writeA phone and an email are both optional here. A candidate with the same phone or email answers 409 conflict. Without language the candidate's language is bn.
প্যারামিটার
- Idempotency-Keystring (uuid)হেডার
POST only, scoped to the API key. Replays the stored response for 24h with Idempotent-Replayed true. The same key with a different method, path or body returns 409 idempotency_key_reused; a key whose first request is still running returns 409 conflict; a value that is not a UUID returns 400 bad_request.
রিকোয়েস্ট বডি
- namestringআবশ্যিক
- phonePhone
- emailstring (email) | null
- photo_urlstring (uri) | null
URL of a photo the candidate chose to provide (up to 2000 characters). Stored, not returned on the Candidate. Never used in scoring.
- languageCandidateLanguage
enbnhiurartlesidms - tagsstring[]
রেসপন্স
উদাহরণ
curl -X POST "https://app.seekiq.io/api/v1/candidates" \
-H "Authorization: Bearer $SEEKIQ_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"name": "Nadia Rahman"
}'Get a candidate
GET/candidates/{candidate_id}
candidates:readপ্যারামিটার
- candidate_idIdপাথআবশ্যিক
রেসপন্স
উদাহরণ
curl "https://app.seekiq.io/api/v1/candidates/cand_01JB6D2P" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Update a candidate
PATCH/candidates/{candidate_id}
candidates:writeA phone or email another candidate already has answers 409 conflict.
প্যারামিটার
- candidate_idIdপাথআবশ্যিক
রিকোয়েস্ট বডি
- namestring
- phonePhone
- emailstring (email) | null
- photo_urlstring (uri) | null
URL of a photo the candidate chose to provide (up to 2000 characters). Stored, not returned on the Candidate. Never used in scoring.
- languageCandidateLanguage
enbnhiurartlesidms - tagsstring[]
রেসপন্স
উদাহরণ
curl -X PATCH "https://app.seekiq.io/api/v1/candidates/cand_01JB6D2P" \
-H "Authorization: Bearer $SEEKIQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Nadia Rahman",
"phone": "+8801712345678",
"email": "nadia@example.com"
}'Interviews
AI and human interviews
List interviews
GET/interviews
interviews:readScreening interviews and scheduled human interviews. A spoken walkthrough of a candidate's coding challenge or take-home is part of its assessment and is not listed here.
প্যারামিটার
- application_idIdকোয়েরি
- kindstringকোয়েরি
aihuman - limitintegerকোয়েরি
- cursorstringকোয়েরি
Opaque cursor from next_cursor. Expires after 24h (400 bad_request, reason cursor_expired); a cursor from another list answers 400 bad_request, reason invalid_cursor.
রেসপন্স
- 200{ data: Interview[], next_cursor: string | null, has_more: boolean }
A page of interviews
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl "https://app.seekiq.io/api/v1/interviews" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Get an interview
GET/interviews/{interview_id}
interviews:readপ্যারামিটার
- interview_idIdপাথআবশ্যিক
রেসপন্স
উদাহরণ
curl "https://app.seekiq.io/api/v1/interviews/int_01JB9F4S" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Scorecards
AI scorecard and human feedback, read only, never merged
Get the AI scorecard and human feedback (read only, never merged)
GET/applications/{application_id}/scorecard
scorecards:readপ্যারামিটার
- application_idIdপাথআবশ্যিক
রেসপন্স
উদাহরণ
curl "https://app.seekiq.io/api/v1/applications/app_01JB7X4M2Q8Z/scorecard" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Decisions
Human decisions (user-attributed keys only)
List decisions on an application
GET/applications/{application_id}/decisions
applications:readপ্যারামিটার
- application_idIdপাথআবশ্যিক
রেসপন্স
- 200{ data: Decision[] }
Decisions, newest first
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl "https://app.seekiq.io/api/v1/applications/app_01JB7X4M2Q8Z/decisions" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Record a human decision (user-attributed key only)
POST/applications/{application_id}/decisions
decisions:writeইউজার-অ্যাট্রিবিউটেড কী লাগেHuman-in-the-loop rule: a named person approves every advance, hold or reject. A service key cannot hold decisions:write, so it gets 403 insufficient_scope; any other key that is not user-attributed gets 403 human_actor_required. The acting member must be able to decide on the job (403 forbidden otherwise). Audited with actor, key prefix and scorecard version. 409 conflict when the application is already rejected and a reject is sent, or with reason review_pending when an advance meets a score whose two passes disagree. More than 20 rejections in an hour from one key answer 429 rate_limited.
প্যারামিটার
- application_idIdপাথআবশ্যিক
- Idempotency-Keystring (uuid)হেডার
POST only, scoped to the API key. Replays the stored response for 24h with Idempotent-Replayed true. The same key with a different method, path or body returns 409 idempotency_key_reused; a key whose first request is still running returns 409 conflict; a value that is not a UUID returns 400 bad_request.
রিকোয়েস্ট বডি
advanceholdreject- reasonstringআবশ্যিক
- rejection_reason_codestring | null
For a rejection: one of the job's Archived stage rejection reasons (the workspace's list), required when that list is set (else 422 reason_code). A rejection moves the application to the Archived stage through the workflow, as the app's decision gate does: stage history, the stage's entry automations and application.stage_changed. An advance moves to the next stage the same way. Undo puts it back.
- messageobjectআবশ্যিক
রেসপন্স
উদাহরণ
curl -X POST "https://app.seekiq.io/api/v1/applications/app_01JB7X4M2Q8Z/decisions" \
-H "Authorization: Bearer $SEEKIQ_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"outcome": "advance",
"reason": "Strong on customer empathy",
"message": {
"template_id": "otpl_01JB7X4M2Q8Z",
"language": "en"
}
}'Undo a decision inside its undo window (user-attributed key only)
DELETE/decisions/{decision_id}
decisions:writeইউজার-অ্যাট্রিবিউটেড কী লাগেUntil the decision's undo_until (five minutes after it was made) and while its candidate message has not gone out, undoes the decision: the queued message is cancelled, the candidate goes back to the stage they were in, the decision leaves the list and the undo is audited under the member the key acts for. A decision.undone event follows (and application.stage_changed when the stage moved back). Messages from POST /applications/{application_id}/decisions wait out the undo window before they are sent. What the move's entry automations created (self-schedule invites, entry messages, reviewer requests nobody started) is reversed too; anything created by hand stays. 409 with error.reason undo_window_closed, message_sent, schedule_booked, stage_moved or already_undone when it can no longer be undone; 403 forbidden (reason role) when the member cannot decide on the job.
প্যারামিটার
- decision_idIdপাথআবশ্যিক
রেসপন্স
- 204
Undone; the message was cancelled
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl -X DELETE "https://app.seekiq.io/api/v1/decisions/dec_01JB8E3R" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Offers
Offer drafts and approval
List offers
GET/offers
offers:readপ্যারামিটার
- application_idIdকোয়েরি
draftpending_approvalapprovedsentsigneddeclinedexpiredwithdrawn- limitintegerকোয়েরি
- cursorstringকোয়েরি
Opaque cursor from next_cursor. Expires after 24h (400 bad_request, reason cursor_expired); a cursor from another list answers 400 bad_request, reason invalid_cursor.
রেসপন্স
- 200{ data: Offer[], next_cursor: string | null, has_more: boolean }
A page of offers
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl "https://app.seekiq.io/api/v1/offers" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Create an offer draft from a letter template
POST/offers
offers:writeAn unknown application answers 404 not_found; an unknown template_id or an expires_on before today answers 400 validation_failed. An application with a live offer answers 409 conflict (reason already_has_offer). A letter with fields SeekIQ does not know answers 422 unprocessable (reason merge_unknown). A user-attributed key answers 403 forbidden when its member cannot work on offers for the job.
প্যারামিটার
- Idempotency-Keystring (uuid)হেডার
POST only, scoped to the API key. Replays the stored response for 24h with Idempotent-Replayed true. The same key with a different method, path or body returns 409 idempotency_key_reused; a key whose first request is still running returns 409 conflict; a value that is not a UUID returns 400 bad_request.
রিকোয়েস্ট বডি
- application_idIdআবশ্যিক
- template_idstring | null
An offer letter template (otpl_), as returned on an Offer. Omit to use the workspace default letter, or the starter letter when the workspace has no default.
- languageLanguage
Letter language. Defaults to the candidate's language.
enbn
রেসপন্স
উদাহরণ
curl -X POST "https://app.seekiq.io/api/v1/offers" \
-H "Authorization: Bearer $SEEKIQ_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"application_id": "app_01JB7X4M2Q8Z",
"terms": {
"salary": {
"amount": 1,
"currency": "BDT"
},
"expires_on": "2026-11-30",
"title": "Customer support lead",
"period": "hour",
"start_date": "2026-11-30"
}
}'Get an offer
GET/offers/{offer_id}
offers:readপ্যারামিটার
- offer_idIdপাথআবশ্যিক
রেসপন্স
উদাহরণ
curl "https://app.seekiq.io/api/v1/offers/off_01JBAG5T" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Start the approval chain (approving and sending happen in the app)
POST/offers/{offer_id}/submit
offers:writeOnly a draft can be submitted (409 invalid_transition, reason wrong_status). A letter missing a value or holding an unknown field answers 422 unprocessable (reason merge_missing or merge_unknown); an invalid workspace approval chain answers 422 (reason chain_invalid).
প্যারামিটার
- offer_idIdপাথআবশ্যিক
- Idempotency-Keystring (uuid)হেডার
POST only, scoped to the API key. Replays the stored response for 24h with Idempotent-Replayed true. The same key with a different method, path or body returns 409 idempotency_key_reused; a key whose first request is still running returns 409 conflict; a value that is not a UUID returns 400 bad_request.
রেসপন্স
উদাহরণ
curl -X POST "https://app.seekiq.io/api/v1/offers/off_01JBAG5T/submit" \
-H "Authorization: Bearer $SEEKIQ_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"Talent pools
Talent pools and membership
List talent pools
GET/pools
pools:readপ্যারামিটার
- limitintegerকোয়েরি
- cursorstringকোয়েরি
Opaque cursor from next_cursor. Expires after 24h (400 bad_request, reason cursor_expired); a cursor from another list answers 400 bad_request, reason invalid_cursor.
রেসপন্স
- 200{ data: TalentPool[], next_cursor: string | null, has_more: boolean }
A page of pools
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl "https://app.seekiq.io/api/v1/pools" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Create a talent pool
POST/pools
pools:writeপ্যারামিটার
- Idempotency-Keystring (uuid)হেডার
POST only, scoped to the API key. Replays the stored response for 24h with Idempotent-Replayed true. The same key with a different method, path or body returns 409 idempotency_key_reused; a key whose first request is still running returns 409 conflict; a value that is not a UUID returns 400 bad_request.
রিকোয়েস্ট বডি
- namestringআবশ্যিক
- descriptionstring | null
রেসপন্স
- 201TalentPool
Created
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl -X POST "https://app.seekiq.io/api/v1/pools" \
-H "Authorization: Bearer $SEEKIQ_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"name": "Nadia Rahman"
}'List pool members
GET/pools/{pool_id}/members
pools:readপ্যারামিটার
- pool_idIdপাথআবশ্যিক
- limitintegerকোয়েরি
- cursorstringকোয়েরি
Opaque cursor from next_cursor. Expires after 24h (400 bad_request, reason cursor_expired); a cursor from another list answers 400 bad_request, reason invalid_cursor.
রেসপন্স
- 200{ data: PoolMember[], next_cursor: string | null, has_more: boolean }
A page of members
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl "https://app.seekiq.io/api/v1/pools/pool_01JBBH6V/members" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Add a candidate to a pool
POST/pools/{pool_id}/members
pools:writeAn unknown candidate answers 400 validation_failed; a candidate already in the pool answers 409 conflict.
প্যারামিটার
- pool_idIdপাথআবশ্যিক
- Idempotency-Keystring (uuid)হেডার
POST only, scoped to the API key. Replays the stored response for 24h with Idempotent-Replayed true. The same key with a different method, path or body returns 409 idempotency_key_reused; a key whose first request is still running returns 409 conflict; a value that is not a UUID returns 400 bad_request.
রিকোয়েস্ট বডি
- candidate_idIdআবশ্যিক
রেসপন্স
- 201PoolMember
Added
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl -X POST "https://app.seekiq.io/api/v1/pools/pool_01JBBH6V/members" \
-H "Authorization: Bearer $SEEKIQ_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"candidate_id": "cand_01JB7X4M2Q8Z"
}'Remove a candidate from a pool
DELETE/pools/{pool_id}/members/{candidate_id}
pools:writeপ্যারামিটার
- pool_idIdপাথআবশ্যিক
- candidate_idIdপাথআবশ্যিক
রেসপন্স
- 204
Removed
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl -X DELETE "https://app.seekiq.io/api/v1/pools/pool_01JBBH6V/members/cand_01JB6D2P" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Webhooks
Webhook endpoints and the delivery log
List webhook endpoints
GET/webhooks
webhooks:manageরেসপন্স
- 200{ data: WebhookEndpoint[] }
Endpoints
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl "https://app.seekiq.io/api/v1/webhooks" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Create a webhook endpoint (secret returned once)
POST/webhooks
webhooks:manageA URL that is not public https answers 400 validation_failed on url. The secret is whsec_ plus 32 characters. 503 unavailable when webhooks are not configured on the server.
প্যারামিটার
- Idempotency-Keystring (uuid)হেডার
POST only, scoped to the API key. Replays the stored response for 24h with Idempotent-Replayed true. The same key with a different method, path or body returns 409 idempotency_key_reused; a key whose first request is still running returns 409 conflict; a value that is not a UUID returns 400 bad_request.
রিকোয়েস্ট বডি
- urlstring (uri)আবশ্যিক
A public https URL. The host is resolved on save and before every delivery; any private, loopback, link local, metadata or reserved address is refused (README section 6).
- descriptionstring | null
- activeboolean
রেসপন্স
- 201{ id: Id, url: string (uri), events: EventType[], description: string | null, active: boolean, disabled_reason: string | null, created_at: string (date-time), secret: string }
Created
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl -X POST "https://app.seekiq.io/api/v1/webhooks" \
-H "Authorization: Bearer $SEEKIQ_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/hooks/seekiq",
"events": [
"ping"
]
}'Get a webhook endpoint
GET/webhooks/{webhook_id}
webhooks:manageপ্যারামিটার
- webhook_idIdপাথআবশ্যিক
রেসপন্স
Endpoint
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl "https://app.seekiq.io/api/v1/webhooks/whk_01JBCJ7W" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Update a webhook endpoint
PATCH/webhooks/{webhook_id}
webhooks:manageপ্যারামিটার
- webhook_idIdপাথআবশ্যিক
রিকোয়েস্ট বডি
- urlstring (uri)
A public https URL. The host is resolved on save and before every delivery; any private, loopback, link local, metadata or reserved address is refused (README section 6).
- eventsEventType[]
- descriptionstring | null
- activeboolean
রেসপন্স
Updated
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl -X PATCH "https://app.seekiq.io/api/v1/webhooks/whk_01JBCJ7W" \
-H "Authorization: Bearer $SEEKIQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/hooks/seekiq",
"events": [
"ping"
],
"description": "Support team in Dhaka"
}'Delete a webhook endpoint
DELETE/webhooks/{webhook_id}
webhooks:manageপ্যারামিটার
- webhook_idIdপাথআবশ্যিক
রেসপন্স
- 204
Deleted
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl -X DELETE "https://app.seekiq.io/api/v1/webhooks/whk_01JBCJ7W" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Rotate the signing secret (old secret also signs for 24h)
POST/webhooks/{webhook_id}/rotate-secret
webhooks:manageপ্যারামিটার
- webhook_idIdপাথআবশ্যিক
- Idempotency-Keystring (uuid)হেডার
POST only, scoped to the API key. Replays the stored response for 24h with Idempotent-Replayed true. The same key with a different method, path or body returns 409 idempotency_key_reused; a key whose first request is still running returns 409 conflict; a value that is not a UUID returns 400 bad_request.
রেসপন্স
- 200{ secret: string, previous_expires_at: string (date-time) }
New secret
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl -X POST "https://app.seekiq.io/api/v1/webhooks/whk_01JBCJ7W/rotate-secret" \
-H "Authorization: Bearer $SEEKIQ_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"Send a ping event
POST/webhooks/{webhook_id}/test
webhooks:manageপ্যারামিটার
- webhook_idIdপাথআবশ্যিক
- Idempotency-Keystring (uuid)হেডার
POST only, scoped to the API key. Replays the stored response for 24h with Idempotent-Replayed true. The same key with a different method, path or body returns 409 idempotency_key_reused; a key whose first request is still running returns 409 conflict; a value that is not a UUID returns 400 bad_request.
রেসপন্স
Queued
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl -X POST "https://app.seekiq.io/api/v1/webhooks/whk_01JBCJ7W/test" \
-H "Authorization: Bearer $SEEKIQ_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"Delivery log
GET/webhooks/{webhook_id}/deliveries
webhooks:manageপ্যারামিটার
- webhook_idIdপাথআবশ্যিক
- statusstringকোয়েরি
succeededfailedpending - limitintegerকোয়েরি
- cursorstringকোয়েরি
Opaque cursor from next_cursor. Expires after 24h (400 bad_request, reason cursor_expired); a cursor from another list answers 400 bad_request, reason invalid_cursor.
রেসপন্স
- 200{ data: WebhookDelivery[], next_cursor: string | null, has_more: boolean }
A page of deliveries
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl "https://app.seekiq.io/api/v1/webhooks/whk_01JBCJ7W/deliveries" \
-H "Authorization: Bearer $SEEKIQ_API_KEY"Redeliver an event (same event id)
POST/webhooks/{webhook_id}/deliveries/{delivery_id}/redeliver
webhooks:manageAny delivery of the event on this endpoint can be redelivered. The redelivery is one new attempt (attempt 1, a new delivery id) and is not retried automatically.
প্যারামিটার
- webhook_idIdপাথআবশ্যিক
- delivery_idIdপাথআবশ্যিক
- Idempotency-Keystring (uuid)হেডার
POST only, scoped to the API key. Replays the stored response for 24h with Idempotent-Replayed true. The same key with a different method, path or body returns 409 idempotency_key_reused; a key whose first request is still running returns 409 conflict; a value that is not a UUID returns 400 bad_request.
রেসপন্স
Queued
- এররError
Error envelope (400, 401, 403, 404, 409, 413, 422, 429, 5xx)
উদাহরণ
curl -X POST "https://app.seekiq.io/api/v1/webhooks/whk_01JBCJ7W/deliveries/dlv_01JBDK8X/redeliver" \
-H "Authorization: Bearer $SEEKIQ_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"স্কিমা
এন্ডপয়েন্টগুলো যে গঠনে ডেটা পাঠায় ও নেয়। এন্ডপয়েন্টে কোনো টাইপ থাকলে তা এখানে লিংক করা।
Id
Opaque prefixed id (job_, app_, cand_, int_, off_, otpl_, pool_, dec_, whk_, dlv_, evt_, usr_, stg_, org_, key_, doc_, dreq_). Do not parse.
Phone
E.164
Language
English or Bangla, the two values v1 reports today for an interview or offer letter language. More values may be added; accept unknown values.
enbnCandidateLanguage
The candidate's language, for their emails, SMS and candidate pages. Job titles and other text a workspace writes in English and Bangla appear in Bangla for bn and in English for the other languages.
enbnhiurartlesidmsMoney
- amountintegerআবশ্যিক
Minor units
- currencystringআবশ্যিক
Error
- errorobjectআবশ্যিক
Page
- dataany[]আবশ্যিক
- next_cursorstring | nullআবশ্যিক
- has_morebooleanআবশ্যিক
Actor
- typestringআবশ্যিক
userautomationapi_key - idIdআবশ্যিক
- namestring | null
Evidence
- sourcestringআবশ্যিক
cvtranscript - quotestringআবশ্যিক
- answer_idstring | null
- start_msinteger | null
- end_msinteger | null
- cv_lineinteger | null
CvMatch
How well the CV evidences the job's competencies, in the IQ shape. percent is the 0 to 100 CV match the pipeline shows. value is the same number on the 1 to 5 scale every score uses: the percent mapped back onto the competency scale (0 is 1, 100 is 5) and rounded half up, so 0 to 12 is 1, 13 to 37 is 2, 38 to 62 is 3, 63 to 87 is 4 and 88 to 100 is 5; label is that level's name. evidence holds the CV quotes behind it. sufficiency is none when no competency has evidence, sufficient when every one has full evidence and thin otherwise. Null until the CV is read and matched. It sits beside the interview score and is never merged into it.
- valueintegerআবশ্যিক
- labelstringআবশ্যিক
- percentintegerআবশ্যিক
- sufficiencystringআবশ্যিক
sufficientthinnone - modelstringআবশ্যিক
- prompt_versionstringআবশ্যিক
AiValue
IQ shape. No bare numbers.
- valueinteger | nullআবশ্যিক
Null with sufficiency none (no citation, no score).
- labelstringআবশ্যিক
- sufficiencystringআবশ্যিক
sufficientthinnone - modelstringআবশ্যিক
- prompt_versionstringআবশ্যিক
JobStatus
draftopenclosedJob
- idIdআবশ্যিক
- titlestringআবশ্যিক
- slugstring
- levelJobLevel
internjuniormidseniorleadmanager - integritystring
Integrity checks for the job's interviews and tests. light: no camera, browser signals only; standard (the default): an optional selfie; strict: a selfie and a head-turn check before the interview, photos every 20 seconds and tests in full screen. Set in the app. Checks raise flags for a person to review and never change a score or reject anyone.
lightstandardstrict draftopenclosed- departmentstring | null
- locationstring | null
- jdobject
- careers_urlstring (uri) | null
- deadline_atstring (date-time) | null
The application deadline. A deadline set in the app is a day in the workspace time zone (stored as 23:59 local) and closes as that day ends; one sent here closes at that instant.
- accepting_applicationsboolean
Additive, 2026-10-29. True while the job takes new applications: open, and its deadline has not passed (or the job keeps taking applications after it). When the deadline closes a job, the job stays open for review, interviews and decisions already in flight, the careers pages say "Applications closed" and POST /applications refuses with 422. A later deadline_at reopens it.
- applications_closed_atstring (date-time) | null
Additive, 2026-10-29. When the deadline closed the job to new applications; null while it takes them.
- timezonestring
- created_atstring (date-time)আবশ্যিক
- updated_atstring (date-time)আবশ্যিক
JobLevel
Seniority. Sets interview question difficulty, the scoring anchors, answer time and how deep follow-ups go. When a job is created without one it comes from the title ("Senior ..." is senior); anything without a level word is mid.
internjuniormidseniorleadmanagerJobFields
- titlestring
- levelJobLevel
internjuniormidseniorleadmanager - departmentstring | null
- locationstring | null
- jdobject
- workflow_template_idstring | null
- deadline_atstring (date-time) | null
JobCreate
- titlestringআবশ্যিক
- levelJobLevel
internjuniormidseniorleadmanager - departmentstring | null
- locationstring | null
- jdobject
- workflow_template_idstring | null
- deadline_atstring (date-time) | null
JobUpdate
StageType
appliedai_screenphoneassessmentpanelofferhiredarchivedStage
- idIdআবশ্যিক
appliedai_screenphoneassessmentpanelofferhiredarchived- namestringআবশ্যিক
- orderintegerআবশ্যিক
- sla_hoursinteger | null
Consent
- ai_screeningbooleanআবশ্যিক
- nurtureboolean
- text_versionstringআবশ্যিক
- captured_atstring (date-time)আবশ্যিক
With a Z or an offset.
- captured_bystring
CandidateFields
- namestring
- phonePhone
- emailstring (email) | null
- photo_urlstring (uri) | null
URL of a photo the candidate chose to provide (up to 2000 characters). Stored, not returned on the Candidate. Never used in scoring.
- languageCandidateLanguage
enbnhiurartlesidms - tagsstring[]
CandidateInput
- namestringআবশ্যিক
- phonePhone
- emailstring (email) | null
- photo_urlstring (uri) | null
URL of a photo the candidate chose to provide (up to 2000 characters). Stored, not returned on the Candidate. Never used in scoring.
- languageCandidateLanguage
enbnhiurartlesidms - tagsstring[]
CandidateUpdate
- namestring
- phonePhone
- emailstring (email) | null
- photo_urlstring (uri) | null
URL of a photo the candidate chose to provide (up to 2000 characters). Stored, not returned on the Candidate. Never used in scoring.
- languageCandidateLanguage
enbnhiurartlesidms - tagsstring[]
Candidate
- idIdআবশ্যিক
- namestringআবশ্যিক
- phonePhone | null
- emailstring (email) | null
- languageCandidateLanguage
enbnhiurartlesidms - tagsstring[]
- consentobject
- application_idsId[]
- created_atstring (date-time)আবশ্যিক
- updated_atstring (date-time)
ApplicationSource
Older applications that came in through a channel no longer offered are reported as sourced.
careers_siteembedapiemail_inboxreferralsourcedjob_boardApplication
- idIdআবশ্যিক
- job_idIdআবশ্যিক
- candidate_idIdআবশ্যিক
- statusstringআবশ্যিক
activeon_holdrejectedhiredwithdrawn careers_siteembedapiemail_inboxreferralsourcedjob_board- cv_matchCvMatch | null
- awaiting_consentboolean
- answersApplicationAnswer[]
Apply form answers in form order. Files are listed by name; their storage is never exposed.
- screeningScreening
- created_atstring (date-time)আবশ্যিক
- updated_atstring (date-time)আবশ্যিক
ApplicationAnswer
- question_idstringআবশ্যিক
The form question id, or cover_letter, linkedin or portfolio for those standard questions.
- labelobject | nullআবশ্যিক
The question in both languages; null for a standard question or one no longer on the form.
- typestringআবশ্যিক
- valueanyআবশ্যিক
Text, a number, yes or no, option ids. Files come as name, mime, size and kind.
Screening
IQ checks the recruiter's plain screening rules against the answers and the CV. A verdict only flags and sorts. It never rejects anyone on its own; only a job's autopilot rule that a person switched on may use it.
- statusstring | nullআবশ্যিক
Null when the form has no screening rules. capped means the workspace used its monthly IQ fair use.
pendingdonecappedunavailable - misses_must_havebooleanআবশ্যিক
A must-have rule was judged not met; the application sorts lower.
- resultsobject[]আবশ্যিক
ApplicationCreate
- job_idIdআবশ্যিক
- cv_urlstring (uri) | null
Recorded in the audit log; the CV is not fetched or read yet.
- cv_upload_idstring | null
Recorded in the audit log; the CV is not fetched or read yet.
- sourceApplicationSource
Defaults to api.
careers_siteembedapiemail_inboxreferralsourcedjob_board - answersobject[]
Answers to the job's apply form, checked against each question (an unknown question or a value that does not fit is a validation_failed). A multi choice answer is option ids separated by commas; yes or no is yes or no. File questions cannot be answered here.
Interview
- idIdআবশ্যিক
- application_idIdআবশ্যিক
- kindstringআবশ্যিক
aihuman - stage_idstring | null
- statusstringআবশ্যিক
invitedscheduledin_progresscompletedabandonedcancelledno_show - languageLanguage
enbn - scheduled_atstring (date-time) | null
- completed_atstring (date-time) | null
- interviewersActor[]
- conferencing_urlstring (uri) | null
HumanFeedback
- stage_idIdআবশ্যিক
- submitted_atstring (date-time)আবশ্যিক
- recommendationstringআবশ্যিক
strong_yesyesnostrong_no - ratingsobject[]আবশ্যিক
Scorecard
AI and human sections are separate and never merged into one number.
- application_idIdআবশ্যিক
- aiobject | nullআবশ্যিক
Only submitted feedback is returned.
Attempt
- answer_idstringআবশ্যিক
- input_modestringআবশ্যিক
voicetext - transcript_statusstringআবশ্যিক
pendingdonefailedskipped - scoredbooleanআবশ্যিক
Both scoring passes are stored.
- valueinteger | nullআবশ্যিক
This attempt alone.
- labelstringআবশ্যিক
- passesinteger | null[]আবশ্যিক
- agreementstring | nullআবশ্যিক
agreedisagree
AttemptPair
- redo_idstringআবশ্যিক
- competencystringআবশ্যিক
- question_indexintegerআবশ্যিক
- statestringআবশ্যিক
requestedreceivedexpiredrevoked - countedstringআবশ্যিক
originalredo - counted_atstring (date-time) | nullআবশ্যিক
- received_atstring (date-time) | nullআবশ্যিক
Null until the new answer is received.
DecisionOutcome
advanceholdrejectDecisionCreate
advanceholdreject- reasonstringআবশ্যিক
- rejection_reason_codestring | null
For a rejection: one of the job's Archived stage rejection reasons (the workspace's list), required when that list is set (else 422 reason_code). A rejection moves the application to the Archived stage through the workflow, as the app's decision gate does: stage history, the stage's entry automations and application.stage_changed. An advance moves to the next stage the same way. Undo puts it back.
- messageobjectআবশ্যিক
Decision
- idIdআবশ্যিক
- application_idIdআবশ্যিক
advanceholdreject- reasonstringআবশ্যিক
- via_key_prefixstring | null
- scorecard_versioninteger | null
- message_statusstring
queuedsentnot_sent - created_atstring (date-time)আবশ্যিক
- undo_untilstring (date-time)
Until then DELETE /decisions/{decision_id} can undo it, while the message has not gone out.
OfferStatus
draftpending_approvalapprovedsentsigneddeclinedexpiredwithdrawnPayPeriod
hourmonthyearOfferTerms
- titlestringআবশ্যিক
Gross pay per period, in minor units (45000 BDT a month is 4500000).
hourmonthyear- start_datestring (date)আবশ্যিক
- expires_onstring (date)আবশ্যিক
The last day the candidate can sign, in the workspace timezone.
- locationstring | null
- employment_typestring | null
- bonusstring | null
- benefitsstring | null
- reports_tostring | null
OfferCreate
- application_idIdআবশ্যিক
- template_idstring | null
An offer letter template (otpl_), as returned on an Offer. Omit to use the workspace default letter, or the starter letter when the workspace has no default.
- languageLanguage
Letter language. Defaults to the candidate's language.
enbn
OfferApproval
- step_idstringআবশ্যিক
- approver_rolestring | nullআবশ্যিক
Set when anyone holding the role can approve the step.
ownerrecruiterhiring_manager The named approver, or who approved or rejected the step. Null while a role step is open.
- decisionstring | nullআবশ্যিক
approvedrejected - atstring (date-time) | nullআবশ্যিক
Offer
- idIdআবশ্যিক
- application_idIdআবশ্যিক
- candidate_idIdআবশ্যিক
- job_idIdআবশ্যিক
- template_idstring | nullআবশ্যিক
draftpending_approvalapprovedsentsigneddeclinedexpiredwithdrawnenbnThe steps of the newest approval chain, in order. Empty until the offer is submitted.
- pdf_urlstring (uri) | nullআবশ্যিক
Signed URL of the letter PDF (the signed copy once signed), expires in 60 seconds: download it right away, or read the offer again for a fresh one. Null before the offer is sent.
- sent_atstring (date-time) | nullআবশ্যিক
- signed_atstring (date-time) | nullআবশ্যিক
- declined_atstring (date-time) | nullআবশ্যিক
- decline_reasonstring | nullআবশ্যিক
compensationother_offerrole_fitlocationtimingpersonalother - created_atstring (date-time)আবশ্যিক
- updated_atstring (date-time)আবশ্যিক
TalentPool
- idIdআবশ্যিক
- namestringআবশ্যিক
- descriptionstring | null
- member_countintegerআবশ্যিক
- created_atstring (date-time)
PoolMember
- candidate_idIdআবশ্যিক
- added_atstring (date-time)আবশ্যিক
- nurture_consentbooleanআবশ্যিক
EventType
pingapplication.createdapplication.stage_changedinterview.completedscorecard.readydecision.madedecision.undoneoffer.sentoffer.signedoffer.declineddocument.sentdocument.signeddocument.declinedcandidate.data_requestWebhookEndpointFields
- urlstring (uri)
A public https URL. The host is resolved on save and before every delivery; any private, loopback, link local, metadata or reserved address is refused (README section 6).
- eventsEventType[]
- descriptionstring | null
- activeboolean
WebhookEndpointInput
- urlstring (uri)আবশ্যিক
A public https URL. The host is resolved on save and before every delivery; any private, loopback, link local, metadata or reserved address is refused (README section 6).
- descriptionstring | null
- activeboolean
WebhookEndpointUpdate
- urlstring (uri)
A public https URL. The host is resolved on save and before every delivery; any private, loopback, link local, metadata or reserved address is refused (README section 6).
- eventsEventType[]
- descriptionstring | null
- activeboolean
WebhookEndpoint
- idIdআবশ্যিক
- urlstring (uri)আবশ্যিক
- descriptionstring | null
- activebooleanআবশ্যিক
- disabled_reasonstring | null
- created_atstring (date-time)আবশ্যিক
WebhookDelivery
- idIdআবশ্যিক
- event_idIdআবশ্যিক
pingapplication.createdapplication.stage_changedinterview.completedscorecard.readydecision.madedecision.undoneoffer.sentoffer.signedoffer.declineddocument.sentdocument.signeddocument.declinedcandidate.data_request- attemptintegerআবশ্যিক
- statusstringআবশ্যিক
pendingsucceededfailed - response_statusinteger | null
- latency_msinteger | null
- response_excerptstring | null
- next_retry_atstring (date-time) | null
- created_atstring (date-time)
EventEnvelope
- idIdআবশ্যিক
pingapplication.createdapplication.stage_changedinterview.completedscorecard.readydecision.madedecision.undoneoffer.sentoffer.signedoffer.declineddocument.sentdocument.signeddocument.declinedcandidate.data_request- api_version"v1"আবশ্যিক
- created_atstring (date-time)আবশ্যিক
- org_idIdআবশ্যিক
- dataobjectআবশ্যিক
PingData
- messagestringআবশ্যিক
ApplicationCreatedData
- application_idIdআবশ্যিক
- job_idIdআবশ্যিক
- candidate_idIdআবশ্যিক
careers_siteembedapiemail_inboxreferralsourcedjob_board- originstring | nullআবশ্যিক
Host origin for embed applications
The apply form answers, as on the Application.
StageChangedData
- application_idIdআবশ্যিক
- job_idIdআবশ্যিক
- reasonstring | nullআবশ্যিক
InterviewCompletedData
- interview_idIdআবশ্যিক
- application_idIdআবশ্যিক
- kindstringআবশ্যিক
Always ai today; human interviews are scheduled meetings with feedback, not sessions.
aihuman - completed_atstring (date-time)আবশ্যিক
ScorecardReadyData
- application_idIdআবশ্যিক
- scorecard_versionintegerআবশ্যিক
- open_flagsintegerআবশ্যিক
DecisionMadeData
- decision_idIdআবশ্যিক
- application_idIdআবশ্যিক
advanceholdreject
DecisionUndoneData
- decision_idIdআবশ্যিক
- application_idIdআবশ্যিক
advanceholdreject
OfferEventData
- offer_idIdআবশ্যিক
- application_idIdআবশ্যিক
- candidate_idIdআবশ্যিক
draftpending_approvalapprovedsentsigneddeclinedexpiredwithdrawn- document_sha256string | null
sha256 of the offer letter PDF as sent (offer.sent and offer.signed)
- signed_sha256string
sha256 of the signed copy (offer.signed)
- expires_onstring (date)
Last day the offer can be signed (offer.sent)
- reasonstring
The candidate's decline reason code (offer.declined)
DocumentEventData
- document_idIdআবশ্যিক
- kindstringআবশ্যিক
offeremployment_agreementndacontractor_agreementpolicyother - titlestringআবশ্যিক
- statusstringআবশ্যিক
sentcompleteddeclinedvoidedexpired - candidate_idId | nullআবশ্যিক
- application_idId | nullআবশ্যিক
- offer_idId | nullআবশ্যিক
- original_sha256string | nullআবশ্যিক
sha256 of the PDF as sent
- party_rolestring
The party that signed or declined (document.signed and document.declined)
candidatecompanywitness - completeboolean
True once every party has signed (document.signed)
- signed_sha256string
sha256 of the copy this signature produced, each copy with its own fingerprint (document.signed)
- final_sha256string | null
sha256 of the final copy with every signature and the certificate once complete, else null (document.signed)
DataRequestData
- request_idIdআবশ্যিক
- candidate_idIdআবশ্যিক
- kindstringআবশ্যিক
accessdeletehuman_reviewhuman_interview - due_atstring (date-time)আবশ্যিক