VisaFlow Public API
Generated from the live OpenAPI document.
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
| Name | In | Type | Description |
|---|---|---|---|
| updated_since | query | string (date-time) | Only leads updated at or after this instant |
| cursor | query | string | `next_cursor` of the previous page |
| limit | query | integer | Page size, 1 to 100 |
Responses
200A page of leadsLeadList
dataarray of LeadRequiredShow fields
idstring (uuid)Requiredfull_namestringRequiredphonestring or nullRequiredE.164alt_phonestring or nullRequiredemailstring or nullRequiredcitystring or nullRequiredstatestring or nullRequiredcountry_intereststring or nullRequiredISO 3166-1 alpha-2visa_typeenum or nullRequiredValues: student, work, pr, visitor, spouse_dependent, businessintakestring or nullRequiredYYYY-MMcoursestring or nullRequireddate_of_birthstring or nullRequiredYYYY-MM-DDhighest_qualificationenum or nullRequiredValues: secondary, higher_secondary, diploma, bachelors, masters, doctorate, otherscore_percentnumber or nullRequiredenglish_testobject or nullRequiredShow fields
typeenumRequiredValues: IELTS, PTE, TOEFL, DUOLINGOoverallnumberRequiredlisteningnumberOptionalreadingnumberOptionalwritingnumberOptionalspeakingnumberOptionaltest_datestringOptional
work_experience_yearsnumber or nullRequiredpassport_availableboolean or nullRequiredprevious_refusalsinteger or nullRequiredsourceobjectRequiredShow fields
keystringRequirednamestringRequired
campaignstring or nullRequiredutmmap of string or nullRequiredlanding_page_urlstring or nullRequiredbranchobjectRequiredShow fields
idstring (uuid)RequiredcodestringRequired
ownerobject or nullRequiredShow fields
idstring (uuid)RequirednamestringRequiredemailstringRequired
stageobjectRequiredShow fields
keystringRequirednamestringRequired
temperatureenum or nullRequiredValues: hot, warm, coldscoreintegerRequirednext_follow_up_atstring or nullRequiredISO 8601 UTC date-timelost_reasonobject or nullRequiredShow fields
keystringRequirednamestringRequired
convertedbooleanRequiredcustom_fieldsmap of anyRequiredconsentobject or nullRequiredShow fields
atstringRequiredISO 8601 UTC date-timesourcestringRequired
created_atstringRequiredISO 8601 UTC date-timeupdated_atstringRequiredISO 8601 UTC date-timelast_activity_atstring or nullRequiredISO 8601 UTC date-timestage_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 codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
401`invalid_api_key`: missing, unknown, revoked or expired keyError
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
402`tenant_suspended`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
post/v1/leads
Create a lead (public or secret key, scope leads:create)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| Idempotency-Key | header | string | Repeats within 24 h answer the first result |
Request bodyLeadCreate
full_namestringRequiredphonestring or nullOptionalemail"" | string or nullOptionalalt_phonestring or nullOptionalcitystring or nullOptionalstatestring or nullOptionalcountry_intereststring or nullOptionalvisa_typeenum or nullOptionalValues: student, work, pr, visitor, spouse_dependent, businessintakestring or nullOptionalcoursestring or nullOptionaldate_of_birthstring or nullOptionalhighest_qualificationenum or nullOptionalValues: secondary, higher_secondary, diploma, bachelors, masters, doctorate, otherscore_percentnumber or nullOptionalenglish_testobject or nullOptionalShow fields
typeenumRequiredValues: IELTS, PTE, TOEFL, DUOLINGOoverallnumberRequiredlisteningnumberOptionalreadingnumberOptionalwritingnumberOptionalspeakingnumberOptionaltest_datestringOptional
work_experience_yearsnumber or nullOptionalpassport_availableboolean or nullOptionalprevious_refusalsinteger or nullOptionalmessagestringOptionalutmobject or nullOptionalShow fields
sourcestringOptionalmediumstringOptionalcampaignstringOptionaltermstringOptionalcontentstringOptional
landing_page_urlstring (uri) or nullOptionalcustom_fieldsobjectOptionalTenant custom fields (GET /v1/meta/fields)consenttrueRequiredMust be true (DPDP); else 400 consent_requiredcaptcha_tokenstringOptionalRequired for public keyswebsitestringOptionalHoneypot: leave empty
Responses
200Matched an existing lead (enquiry added)LeadDuplicate
idstring (uuid)RequiredduplicatetrueRequired
201Lead createdLeadCreated
idstring (uuid)RequiredstatusstringRequiredStage key of the new leadassigned_tostring or nullRequiredduplicatefalseRequiredtest_modebooleanOptional
400Validation failed (`validation_failed` with `fields`) or a business ruleError
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
401`invalid_api_key`: missing, unknown, revoked or expired keyError
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
402`tenant_suspended`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
409Conflict (`lead_locked`, `stage_requires_conversion`, `webhook_limit`, ...)Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
get/v1/leads/{id}
Get a lead (secret key, leads:read)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id* | path | string (uuid) | Lead id |
Responses
200The leadLead
idstring (uuid)Requiredfull_namestringRequiredphonestring or nullRequiredE.164alt_phonestring or nullRequiredemailstring or nullRequiredcitystring or nullRequiredstatestring or nullRequiredcountry_intereststring or nullRequiredISO 3166-1 alpha-2visa_typeenum or nullRequiredValues: student, work, pr, visitor, spouse_dependent, businessintakestring or nullRequiredYYYY-MMcoursestring or nullRequireddate_of_birthstring or nullRequiredYYYY-MM-DDhighest_qualificationenum or nullRequiredValues: secondary, higher_secondary, diploma, bachelors, masters, doctorate, otherscore_percentnumber or nullRequiredenglish_testobject or nullRequiredShow fields
typeenumRequiredValues: IELTS, PTE, TOEFL, DUOLINGOoverallnumberRequiredlisteningnumberOptionalreadingnumberOptionalwritingnumberOptionalspeakingnumberOptionaltest_datestringOptional
work_experience_yearsnumber or nullRequiredpassport_availableboolean or nullRequiredprevious_refusalsinteger or nullRequiredsourceobjectRequiredShow fields
keystringRequirednamestringRequired
campaignstring or nullRequiredutmmap of string or nullRequiredlanding_page_urlstring or nullRequiredbranchobjectRequiredShow fields
idstring (uuid)RequiredcodestringRequired
ownerobject or nullRequiredShow fields
idstring (uuid)RequirednamestringRequiredemailstringRequired
stageobjectRequiredShow fields
keystringRequirednamestringRequired
temperatureenum or nullRequiredValues: hot, warm, coldscoreintegerRequirednext_follow_up_atstring or nullRequiredISO 8601 UTC date-timelost_reasonobject or nullRequiredShow fields
keystringRequirednamestringRequired
convertedbooleanRequiredcustom_fieldsmap of anyRequiredconsentobject or nullRequiredShow fields
atstringRequiredISO 8601 UTC date-timesourcestringRequired
created_atstringRequiredISO 8601 UTC date-timeupdated_atstringRequiredISO 8601 UTC date-timelast_activity_atstring or nullRequiredISO 8601 UTC date-timestage_changed_atstring or nullRequiredISO 8601 UTC date-time
401`invalid_api_key`: missing, unknown, revoked or expired keyError
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
402`tenant_suspended`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
404`not_found`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
patch/v1/leads/{id}
Update stage, lost reason, temperature, follow-up, owner, custom fields or add a note (secret key, leads:update)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id* | path | string (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 stagetemperatureenum or nullOptionalValues: hot, warm, coldnext_follow_up_atstring (date-time) or nullOptionalowner_emailstring (email) or nullOptionalEmail of an active user of the lead's branch; null unassignscustom_fieldsmap of anyOptionalMerged per key; null removes a keynotestringOptional
Responses
200The updated leadLead
idstring (uuid)Requiredfull_namestringRequiredphonestring or nullRequiredE.164alt_phonestring or nullRequiredemailstring or nullRequiredcitystring or nullRequiredstatestring or nullRequiredcountry_intereststring or nullRequiredISO 3166-1 alpha-2visa_typeenum or nullRequiredValues: student, work, pr, visitor, spouse_dependent, businessintakestring or nullRequiredYYYY-MMcoursestring or nullRequireddate_of_birthstring or nullRequiredYYYY-MM-DDhighest_qualificationenum or nullRequiredValues: secondary, higher_secondary, diploma, bachelors, masters, doctorate, otherscore_percentnumber or nullRequiredenglish_testobject or nullRequiredShow fields
typeenumRequiredValues: IELTS, PTE, TOEFL, DUOLINGOoverallnumberRequiredlisteningnumberOptionalreadingnumberOptionalwritingnumberOptionalspeakingnumberOptionaltest_datestringOptional
work_experience_yearsnumber or nullRequiredpassport_availableboolean or nullRequiredprevious_refusalsinteger or nullRequiredsourceobjectRequiredShow fields
keystringRequirednamestringRequired
campaignstring or nullRequiredutmmap of string or nullRequiredlanding_page_urlstring or nullRequiredbranchobjectRequiredShow fields
idstring (uuid)RequiredcodestringRequired
ownerobject or nullRequiredShow fields
idstring (uuid)RequirednamestringRequiredemailstringRequired
stageobjectRequiredShow fields
keystringRequirednamestringRequired
temperatureenum or nullRequiredValues: hot, warm, coldscoreintegerRequirednext_follow_up_atstring or nullRequiredISO 8601 UTC date-timelost_reasonobject or nullRequiredShow fields
keystringRequirednamestringRequired
convertedbooleanRequiredcustom_fieldsmap of anyRequiredconsentobject or nullRequiredShow fields
atstringRequiredISO 8601 UTC date-timesourcestringRequired
created_atstringRequiredISO 8601 UTC date-timeupdated_atstringRequiredISO 8601 UTC date-timelast_activity_atstring or nullRequiredISO 8601 UTC date-timestage_changed_atstring or nullRequiredISO 8601 UTC date-time
400Validation failed (`validation_failed` with `fields`) or a business ruleError
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
401`invalid_api_key`: missing, unknown, revoked or expired keyError
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
402`tenant_suspended`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
404`not_found`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
409Conflict (`lead_locked`, `stage_requires_conversion`, `webhook_limit`, ...)Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
Applications
get/v1/applications/{id}/status
Application stage and progress (secret key, applications:read)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id* | path | string (uuid) | Application id |
Responses
200StatusApplicationStatus
idstring (uuid)RequiredreferencestringRequirede.g. APP-000123 (kept as an alias of case_ref)case_refstringRequiredCase reference, e.g. VF-2026-0012 (added in v1.2)stageobjectRequiredShow fields
keystringRequirednamestringRequiredpositionintegerRequired
progressintegerRequiredPercentstatusenumRequiredValues: active, on_hold, closedoutcomeenum or nullRequiredValues: granted, refused, withdrawnmoduleobject or nullRequiredRoadmap module holding the case (added in v1.2)Show fields
keystringRequirednamestringRequired
modulesarray of objectRequiredSelected roadmap modules in order (added in v1.2)Show fields
keystringRequirednamestringRequiredstateenumRequiredValues: 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 itShow fields
keystringRequirednamestringRequired
module_progressobject or nullRequiredCounts behind `progress`: updated / selected modules that count toward progress (added in v1.3)Show fields
updatedintegerRequiredtotalintegerRequired
401`invalid_api_key`: missing, unknown, revoked or expired keyError
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
402`tenant_suspended`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
404`not_found`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
Webhooks
get/v1/webhooks
List webhook endpoints (secret key, webhooks:manage; Growth and Enterprise plans)
Responses
200Endpointsobject
dataarray of WebhookEndpointRequiredShow fields
idstring (uuid)RequiredurlstringRequireddescriptionstring or nullRequiredeventsarray of enumRequiredstatusenumRequiredValues: active, pausedconsecutive_failuresintegerRequiredpaused_reasonstring or nullRequiredpaused_atstring or nullRequiredISO 8601 UTC date-timeprevious_secret_valid_untilstring or nullRequiredISO 8601 UTC date-timecreated_atstringRequiredISO 8601 UTC date-timeupdated_atstringRequiredISO 8601 UTC date-time
401`invalid_api_key`: missing, unknown, revoked or expired keyError
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
402`tenant_suspended`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
post/v1/webhooks
Create a webhook endpoint; the signing secret is returned once
Request bodyWebhookEndpointCreate
urlstringRequireddescriptionstring or nullOptionaleventsarray of stringRequired
Responses
201CreatedWebhookEndpointCreated
idstring (uuid)RequiredurlstringRequireddescriptionstring or nullRequiredeventsarray of enumRequiredstatusenumRequiredValues: active, pausedconsecutive_failuresintegerRequiredpaused_reasonstring or nullRequiredpaused_atstring or nullRequiredISO 8601 UTC date-timeprevious_secret_valid_untilstring or nullRequiredISO 8601 UTC date-timecreated_atstringRequiredISO 8601 UTC date-timeupdated_atstringRequiredISO 8601 UTC date-timesecretstringRequiredShown once
400Validation failed (`validation_failed` with `fields`) or a business ruleError
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
401`invalid_api_key`: missing, unknown, revoked or expired keyError
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
402`tenant_suspended`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
409Conflict (`lead_locked`, `stage_requires_conversion`, `webhook_limit`, ...)Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
delete/v1/webhooks/{id}
Delete a webhook endpoint
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id* | path | string (uuid) | Webhook endpoint id |
Responses
204Deleted
No body
401`invalid_api_key`: missing, unknown, revoked or expired keyError
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
402`tenant_suspended`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
404`not_found`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_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
| Name | In | Type | Description |
|---|---|---|---|
| key* | query | string | Public key `vf_{live|test}_pub_...` |
| Origin* | header | string |
Responses
200Widget configurationWidgetConfig
tenantobjectRequiredShow fields
namestringRequiredbrand_colorstring or nullRequiredlogo_urlstring or nullRequired
fieldsfieldsRequiredShow fields
keystringOptionallabelstringOptionaltypeenumOptionalValues: text, number, date, dropdown, checkboxrequiredbooleanOptionaloptionsarray of objectOptionalShow fields
valuestringOptionallabelstringOptional
help_textstring or nullOptional
visa_typesarray of enumRequiredcountriesarray of stringRequiredcaptchaobjectRequiredShow fields
providerstringRequiredsite_keystring or nullRequired
consent_textstringRequiredconsent_text_versionstringRequiredtest_modebooleanRequired
401`invalid_api_key`: missing, unknown, revoked or expired keyError
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
402`tenant_suspended`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
get/v1/meta/fields
Custom fields, visa types and countries (secret key)
Responses
200FieldsMetaFields
fieldsarray of objectRequiredShow fields
keystringOptionallabelstringOptionaltypeenumOptionalValues: text, number, date, dropdown, checkboxrequiredbooleanOptionaloptionsarray of objectOptionalShow fields
valuestringOptionallabelstringOptional
help_textstring or nullOptional
visa_typesarray of enumRequiredcountriesarray of stringRequired
401`invalid_api_key`: missing, unknown, revoked or expired keyError
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
402`tenant_suspended`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
403`insufficient_scope`, `ip_not_allowed`, `origin_not_allowed`, `plan_feature_unavailable`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired
429`rate_limited` (with `scope` and `retry_after`) or `quota_exceeded`Error
errorstringRequiredsnake_case error codemessagestringRequiredfieldsmap of stringOptionalscopestringOptionalretry_afterintegerOptionalrequiredstringOptionalrequest_idstringRequired