VisaFlow Public API

Generated from the live OpenAPI document.

Version 1.0.0OpenAPI 3.1.0Download openapi.json

Lead capture, lead sync, application status and webhooks. snake_case JSON. Authenticate with `Authorization: Bearer <key>`: public keys (`vf_live_pub_...`) only create leads from allowed origins; secret keys (`vf_live_...`) are for servers and act on the whole workspace within their scopes. Every answer carries `RateLimit-*` headers; errors are `{ error, message, ..., request_id }`.

Servers

  • https://api.visaflow.work

Authentication

Bearer API key in the Authorization header.

Leads

get/v1/leads

List leads ordered by (updated_at, id) (secret key, leads:read)

Parameters

Parameters
NameInTypeDescription
updated_sincequerystring (date-time)Only leads updated at or after this instant
cursorquerystring`next_cursor` of the previous page
limitqueryintegerPage size, 1 to 100

Responses

  • 200A page of leadsLeadList
    • dataarray of LeadRequired
      Show fields
      • idstring (uuid)Required
      • full_namestringRequired
      • phonestring or nullRequiredE.164
      • alt_phonestring or nullRequired
      • emailstring or nullRequired
      • citystring or nullRequired
      • statestring or nullRequired
      • country_intereststring or nullRequiredISO 3166-1 alpha-2
      • visa_typeenum or nullRequiredValues: student, work, pr, visitor, spouse_dependent, business
      • intakestring or nullRequiredYYYY-MM
      • coursestring or nullRequired
      • date_of_birthstring or nullRequiredYYYY-MM-DD
      • highest_qualificationenum or nullRequiredValues: secondary, higher_secondary, diploma, bachelors, masters, doctorate, other
      • score_percentnumber or nullRequired
      • english_testobject or nullRequired
        Show fields
        • typeenumRequiredValues: IELTS, PTE, TOEFL, DUOLINGO
        • overallnumberRequired
        • listeningnumberOptional
        • readingnumberOptional
        • writingnumberOptional
        • speakingnumberOptional
        • test_datestringOptional
      • work_experience_yearsnumber or nullRequired
      • passport_availableboolean or nullRequired
      • previous_refusalsinteger or nullRequired
      • sourceobjectRequired
        Show fields
        • keystringRequired
        • namestringRequired
      • campaignstring or nullRequired
      • utmmap of string or nullRequired
      • landing_page_urlstring or nullRequired
      • branchobjectRequired
        Show fields
        • idstring (uuid)Required
        • codestringRequired
      • ownerobject or nullRequired
        Show fields
        • idstring (uuid)Required
        • namestringRequired
        • emailstringRequired
      • stageobjectRequired
        Show fields
        • keystringRequired
        • namestringRequired
      • temperatureenum or nullRequiredValues: hot, warm, cold
      • scoreintegerRequired
      • next_follow_up_atstring or nullRequiredISO 8601 UTC date-time
      • lost_reasonobject or nullRequired
        Show fields
        • keystringRequired
        • namestringRequired
      • convertedbooleanRequired
      • custom_fieldsmap of anyRequired
      • consentobject or nullRequired
        Show fields
        • atstringRequiredISO 8601 UTC date-time
        • sourcestringRequired
      • created_atstringRequiredISO 8601 UTC date-time
      • updated_atstringRequiredISO 8601 UTC date-time
      • last_activity_atstring or nullRequiredISO 8601 UTC date-time
      • stage_changed_atstring or nullRequiredISO 8601 UTC date-time
    • next_cursorstring or nullRequiredPass as `cursor` for the next page
  • 400Validation failed (`validation_failed` with `fields`) or a business ruleError
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 401`invalid_api_key`: missing, unknown, revoked or expired keyError
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 402`tenant_suspended`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired

post/v1/leads

Create a lead (public or secret key, scope leads:create)

Parameters

Parameters
NameInTypeDescription
Idempotency-KeyheaderstringRepeats within 24 h answer the first result

Request bodyLeadCreate

  • full_namestringRequired
  • phonestring or nullOptional
  • email"" | string or nullOptional
  • alt_phonestring or nullOptional
  • citystring or nullOptional
  • statestring or nullOptional
  • country_intereststring or nullOptional
  • visa_typeenum or nullOptionalValues: student, work, pr, visitor, spouse_dependent, business
  • intakestring or nullOptional
  • coursestring or nullOptional
  • date_of_birthstring or nullOptional
  • highest_qualificationenum or nullOptionalValues: secondary, higher_secondary, diploma, bachelors, masters, doctorate, other
  • score_percentnumber or nullOptional
  • english_testobject or nullOptional
    Show fields
    • typeenumRequiredValues: IELTS, PTE, TOEFL, DUOLINGO
    • overallnumberRequired
    • listeningnumberOptional
    • readingnumberOptional
    • writingnumberOptional
    • speakingnumberOptional
    • test_datestringOptional
  • work_experience_yearsnumber or nullOptional
  • passport_availableboolean or nullOptional
  • previous_refusalsinteger or nullOptional
  • messagestringOptional
  • utmobject or nullOptional
    Show fields
    • sourcestringOptional
    • mediumstringOptional
    • campaignstringOptional
    • termstringOptional
    • contentstringOptional
  • landing_page_urlstring (uri) or nullOptional
  • custom_fieldsobjectOptionalTenant custom fields (GET /v1/meta/fields)
  • consenttrueRequiredMust be true (DPDP); else 400 consent_required
  • captcha_tokenstringOptionalRequired for public keys
  • websitestringOptionalHoneypot: leave empty

Responses

  • 200Matched an existing lead (enquiry added)LeadDuplicate
    • idstring (uuid)Required
    • duplicatetrueRequired
  • 201Lead createdLeadCreated
    • idstring (uuid)Required
    • statusstringRequiredStage key of the new lead
    • assigned_tostring or nullRequired
    • duplicatefalseRequired
    • test_modebooleanOptional
  • 400Validation failed (`validation_failed` with `fields`) or a business ruleError
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 401`invalid_api_key`: missing, unknown, revoked or expired keyError
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 402`tenant_suspended`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 409Conflict (`lead_locked`, `stage_requires_conversion`, `webhook_limit`, ...)Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired

get/v1/leads/{id}

Get a lead (secret key, leads:read)

Parameters

Parameters
NameInTypeDescription
id*pathstring (uuid)Lead id

Responses

  • 200The leadLead
    • idstring (uuid)Required
    • full_namestringRequired
    • phonestring or nullRequiredE.164
    • alt_phonestring or nullRequired
    • emailstring or nullRequired
    • citystring or nullRequired
    • statestring or nullRequired
    • country_intereststring or nullRequiredISO 3166-1 alpha-2
    • visa_typeenum or nullRequiredValues: student, work, pr, visitor, spouse_dependent, business
    • intakestring or nullRequiredYYYY-MM
    • coursestring or nullRequired
    • date_of_birthstring or nullRequiredYYYY-MM-DD
    • highest_qualificationenum or nullRequiredValues: secondary, higher_secondary, diploma, bachelors, masters, doctorate, other
    • score_percentnumber or nullRequired
    • english_testobject or nullRequired
      Show fields
      • typeenumRequiredValues: IELTS, PTE, TOEFL, DUOLINGO
      • overallnumberRequired
      • listeningnumberOptional
      • readingnumberOptional
      • writingnumberOptional
      • speakingnumberOptional
      • test_datestringOptional
    • work_experience_yearsnumber or nullRequired
    • passport_availableboolean or nullRequired
    • previous_refusalsinteger or nullRequired
    • sourceobjectRequired
      Show fields
      • keystringRequired
      • namestringRequired
    • campaignstring or nullRequired
    • utmmap of string or nullRequired
    • landing_page_urlstring or nullRequired
    • branchobjectRequired
      Show fields
      • idstring (uuid)Required
      • codestringRequired
    • ownerobject or nullRequired
      Show fields
      • idstring (uuid)Required
      • namestringRequired
      • emailstringRequired
    • stageobjectRequired
      Show fields
      • keystringRequired
      • namestringRequired
    • temperatureenum or nullRequiredValues: hot, warm, cold
    • scoreintegerRequired
    • next_follow_up_atstring or nullRequiredISO 8601 UTC date-time
    • lost_reasonobject or nullRequired
      Show fields
      • keystringRequired
      • namestringRequired
    • convertedbooleanRequired
    • custom_fieldsmap of anyRequired
    • consentobject or nullRequired
      Show fields
      • atstringRequiredISO 8601 UTC date-time
      • sourcestringRequired
    • created_atstringRequiredISO 8601 UTC date-time
    • updated_atstringRequiredISO 8601 UTC date-time
    • last_activity_atstring or nullRequiredISO 8601 UTC date-time
    • stage_changed_atstring or nullRequiredISO 8601 UTC date-time
  • 401`invalid_api_key`: missing, unknown, revoked or expired keyError
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 402`tenant_suspended`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 404`not_found`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired

patch/v1/leads/{id}

Update stage, lost reason, temperature, follow-up, owner, custom fields or add a note (secret key, leads:update)

Parameters

Parameters
NameInTypeDescription
id*pathstring (uuid)Lead id

Request bodyLeadPatch

  • stage_keystringOptionalTarget stage key (15.4 rules; `converted` is not allowed)
  • lost_reason_keystring or nullOptionalRequired when moving to the lost stage
  • temperatureenum or nullOptionalValues: hot, warm, cold
  • next_follow_up_atstring (date-time) or nullOptional
  • owner_emailstring (email) or nullOptionalEmail of an active user of the lead's branch; null unassigns
  • custom_fieldsmap of anyOptionalMerged per key; null removes a key
  • notestringOptional

Responses

  • 200The updated leadLead
    • idstring (uuid)Required
    • full_namestringRequired
    • phonestring or nullRequiredE.164
    • alt_phonestring or nullRequired
    • emailstring or nullRequired
    • citystring or nullRequired
    • statestring or nullRequired
    • country_intereststring or nullRequiredISO 3166-1 alpha-2
    • visa_typeenum or nullRequiredValues: student, work, pr, visitor, spouse_dependent, business
    • intakestring or nullRequiredYYYY-MM
    • coursestring or nullRequired
    • date_of_birthstring or nullRequiredYYYY-MM-DD
    • highest_qualificationenum or nullRequiredValues: secondary, higher_secondary, diploma, bachelors, masters, doctorate, other
    • score_percentnumber or nullRequired
    • english_testobject or nullRequired
      Show fields
      • typeenumRequiredValues: IELTS, PTE, TOEFL, DUOLINGO
      • overallnumberRequired
      • listeningnumberOptional
      • readingnumberOptional
      • writingnumberOptional
      • speakingnumberOptional
      • test_datestringOptional
    • work_experience_yearsnumber or nullRequired
    • passport_availableboolean or nullRequired
    • previous_refusalsinteger or nullRequired
    • sourceobjectRequired
      Show fields
      • keystringRequired
      • namestringRequired
    • campaignstring or nullRequired
    • utmmap of string or nullRequired
    • landing_page_urlstring or nullRequired
    • branchobjectRequired
      Show fields
      • idstring (uuid)Required
      • codestringRequired
    • ownerobject or nullRequired
      Show fields
      • idstring (uuid)Required
      • namestringRequired
      • emailstringRequired
    • stageobjectRequired
      Show fields
      • keystringRequired
      • namestringRequired
    • temperatureenum or nullRequiredValues: hot, warm, cold
    • scoreintegerRequired
    • next_follow_up_atstring or nullRequiredISO 8601 UTC date-time
    • lost_reasonobject or nullRequired
      Show fields
      • keystringRequired
      • namestringRequired
    • convertedbooleanRequired
    • custom_fieldsmap of anyRequired
    • consentobject or nullRequired
      Show fields
      • atstringRequiredISO 8601 UTC date-time
      • sourcestringRequired
    • created_atstringRequiredISO 8601 UTC date-time
    • updated_atstringRequiredISO 8601 UTC date-time
    • last_activity_atstring or nullRequiredISO 8601 UTC date-time
    • stage_changed_atstring or nullRequiredISO 8601 UTC date-time
  • 400Validation failed (`validation_failed` with `fields`) or a business ruleError
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 401`invalid_api_key`: missing, unknown, revoked or expired keyError
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 402`tenant_suspended`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 404`not_found`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 409Conflict (`lead_locked`, `stage_requires_conversion`, `webhook_limit`, ...)Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired

Applications

get/v1/applications/{id}/status

Application stage and progress (secret key, applications:read)

Parameters

Parameters
NameInTypeDescription
id*pathstring (uuid)Application id

Responses

  • 200StatusApplicationStatus
    • idstring (uuid)Required
    • referencestringRequirede.g. APP-000123 (kept as an alias of case_ref)
    • case_refstringRequiredCase reference, e.g. VF-2026-0012 (added in v1.2)
    • stageobjectRequired
      Show fields
      • keystringRequired
      • namestringRequired
      • positionintegerRequired
    • progressintegerRequiredPercent
    • statusenumRequiredValues: active, on_hold, closed
    • outcomeenum or nullRequiredValues: granted, refused, withdrawn
    • moduleobject or nullRequiredRoadmap module holding the case (added in v1.2)
      Show fields
      • keystringRequired
      • namestringRequired
    • modulesarray of objectRequiredSelected roadmap modules in order (added in v1.2)
      Show fields
      • keystringRequired
      • namestringRequired
      • stateenumRequiredValues: pending, updated
    • current_moduleobject or nullRequiredFirst selected module still pending that counts toward progress, in roadmap order; null when all are updated (added in v1.3). Can differ from `module`, for example an optional or custom module placed before it
      Show fields
      • keystringRequired
      • namestringRequired
    • module_progressobject or nullRequiredCounts behind `progress`: updated / selected modules that count toward progress (added in v1.3)
      Show fields
      • updatedintegerRequired
      • totalintegerRequired
  • 401`invalid_api_key`: missing, unknown, revoked or expired keyError
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 402`tenant_suspended`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 404`not_found`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired

Webhooks

get/v1/webhooks

List webhook endpoints (secret key, webhooks:manage; Growth and Enterprise plans)

Responses

  • 200Endpointsobject
    • dataarray of WebhookEndpointRequired
      Show fields
      • idstring (uuid)Required
      • urlstringRequired
      • descriptionstring or nullRequired
      • eventsarray of enumRequired
      • statusenumRequiredValues: active, paused
      • consecutive_failuresintegerRequired
      • paused_reasonstring or nullRequired
      • paused_atstring or nullRequiredISO 8601 UTC date-time
      • previous_secret_valid_untilstring or nullRequiredISO 8601 UTC date-time
      • created_atstringRequiredISO 8601 UTC date-time
      • updated_atstringRequiredISO 8601 UTC date-time
  • 401`invalid_api_key`: missing, unknown, revoked or expired keyError
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 402`tenant_suspended`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired

post/v1/webhooks

Create a webhook endpoint; the signing secret is returned once

Request bodyWebhookEndpointCreate

  • urlstringRequired
  • descriptionstring or nullOptional
  • eventsarray of stringRequired

Responses

  • 201CreatedWebhookEndpointCreated
    • idstring (uuid)Required
    • urlstringRequired
    • descriptionstring or nullRequired
    • eventsarray of enumRequired
    • statusenumRequiredValues: active, paused
    • consecutive_failuresintegerRequired
    • paused_reasonstring or nullRequired
    • paused_atstring or nullRequiredISO 8601 UTC date-time
    • previous_secret_valid_untilstring or nullRequiredISO 8601 UTC date-time
    • created_atstringRequiredISO 8601 UTC date-time
    • updated_atstringRequiredISO 8601 UTC date-time
    • secretstringRequiredShown once
  • 400Validation failed (`validation_failed` with `fields`) or a business ruleError
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 401`invalid_api_key`: missing, unknown, revoked or expired keyError
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 402`tenant_suspended`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 409Conflict (`lead_locked`, `stage_requires_conversion`, `webhook_limit`, ...)Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired

delete/v1/webhooks/{id}

Delete a webhook endpoint

Parameters

Parameters
NameInTypeDescription
id*pathstring (uuid)Webhook endpoint id

Responses

  • 204Deleted

    No body

  • 401`invalid_api_key`: missing, unknown, revoked or expired keyError
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 402`tenant_suspended`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 404`not_found`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired

Meta

get/v1/widget/config

Embed widget configuration (public key with leads:create, origin-checked)

The public key is passed as `?key=` (no Authorization header). The request `Origin` must match one of the key's allowed origins; the answer then carries `Access-Control-Allow-Origin` for it, otherwise 403 `origin_not_allowed`. Secret keys get 403 `insufficient_scope` (`required: public_key`).

Parameters

Parameters
NameInTypeDescription
key*querystringPublic key `vf_{live|test}_pub_...`
Origin*headerstring

Responses

  • 200Widget configurationWidgetConfig
    • tenantobjectRequired
      Show fields
      • namestringRequired
      • brand_colorstring or nullRequired
      • logo_urlstring or nullRequired
    • fieldsfieldsRequired
      Show fields
      • keystringOptional
      • labelstringOptional
      • typeenumOptionalValues: text, number, date, dropdown, checkbox
      • requiredbooleanOptional
      • optionsarray of objectOptional
        Show fields
        • valuestringOptional
        • labelstringOptional
      • help_textstring or nullOptional
    • visa_typesarray of enumRequired
    • countriesarray of stringRequired
    • captchaobjectRequired
      Show fields
      • providerstringRequired
      • site_keystring or nullRequired
    • consent_textstringRequired
    • consent_text_versionstringRequired
    • test_modebooleanRequired
  • 401`invalid_api_key`: missing, unknown, revoked or expired keyError
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 402`tenant_suspended`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired

get/v1/meta/fields

Custom fields, visa types and countries (secret key)

Responses

  • 200FieldsMetaFields
    • fieldsarray of objectRequired
      Show fields
      • keystringOptional
      • labelstringOptional
      • typeenumOptionalValues: text, number, date, dropdown, checkbox
      • requiredbooleanOptional
      • optionsarray of objectOptional
        Show fields
        • valuestringOptional
        • labelstringOptional
      • help_textstring or nullOptional
    • visa_typesarray of enumRequired
    • countriesarray of stringRequired
  • 401`invalid_api_key`: missing, unknown, revoked or expired keyError
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 402`tenant_suspended`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired
  • 429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
    • errorstringRequiredsnake_case error code
    • messagestringRequired
    • fieldsmap of stringOptional
    • scopestringOptional
    • retry_afterintegerOptional
    • requiredstringOptional
    • request_idstringRequired