{"openapi":"3.1.0","info":{"title":"Vertex Connect API","version":"1","description":"Read and write your workspace’s leads, tasks, cards, NFC chips and webhooks. Authenticate with an API key (Integrations → API keys) or a personal access token, sent as a Bearer token."},"servers":[{"url":"https://api.vertexleatherco.com/api"}],"tags":[{"name":"Leads","description":"People who left their details on a card, were imported, or were added by hand."},{"name":"Tasks","description":"Follow-ups with a due date, on a lead or on their own."},{"name":"Cards","description":"The digital business cards in the workspace."},{"name":"NFC chips","description":"The chips the workspace holds, and the card each opens."},{"name":"Webhooks","description":"Addresses of yours that events are sent to as they happen."}],"paths":{"/leads":{"get":{"operationId":"listLeads","tags":["Leads"],"summary":"List leads","description":"Every lead the caller can see, newest first. A key sees the whole workspace; a personal token sees what its owner sees.","security":[{"bearer":["crm:read"]}],"x-required-scope":"crm:read","responses":{"200":{"description":"OK","content":{"application/json":{"example":[{"id":"cm3k9x2lead01","name":"Mona Adel","email":"mona@nile.example","phone":"+201001234567","company":"Nile Co","score":40,"value":25000,"temperature":"HOT","source":"card","stageId":"cm3k9x2stage2","assignedTo":null,"firstContactedAt":null,"lastContactedAt":null,"createdAt":"2026-10-06T09:14:00.000Z","customFields":{"cm3k9x2field1":"Real estate"},"card":{"slug":"omar-saeed"}}]}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooMany"}}},"post":{"operationId":"createLead","tags":["Leads"],"summary":"Add a lead","description":"Needs at least a name, an email or a phone number.","security":[{"bearer":["crm:write"]}],"x-required-scope":"crm:write","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Full name."},"email":{"type":"string","description":"Email address."},"phone":{"type":"string","description":"Phone number, ideally with its country code."},"company":{"type":"string","description":"Company."},"title":{"type":"string","description":"Job title."},"website":{"type":"string","description":"Website."},"address":{"type":"string","description":"Address."},"note":{"type":"string","description":"A first note, kept in the lead’s activity."},"source":{"type":"string","enum":["manual","card_scan","in_person"],"description":"Where it came from. Default: manual."}}},"example":{"name":"Mona Adel","email":"mona@nile.example","phone":"+201001234567","company":"Nile Co","note":"Met at Cairo ICT"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"id":"cm3k9x2lead01","name":"Mona Adel","email":"mona@nile.example","phone":"+201001234567","company":"Nile Co","score":0,"value":0,"temperature":"COLD","source":"manual","stageId":"cm3k9x2stage1","createdAt":"2026-10-06T09:14:00.000Z","card":null}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/leads/{id}":{"get":{"operationId":"getLead","tags":["Leads"],"summary":"Get a lead","description":"The lead with its activity: notes, calls, messages, stage changes and meetings, newest first.","security":[{"bearer":["crm:read"]}],"x-required-scope":"crm:read","parameters":[{"name":"id","in":"path","required":true,"description":"The record’s id.","schema":{"type":"string","description":"The record’s id."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"cm3k9x2lead01","name":"Mona Adel","email":"mona@nile.example","phone":"+201001234567","company":"Nile Co","score":40,"value":25000,"temperature":"HOT","source":"card","stageId":"cm3k9x2stage2","assignedTo":null,"firstContactedAt":null,"lastContactedAt":null,"createdAt":"2026-10-06T09:14:00.000Z","customFields":{"cm3k9x2field1":"Real estate"},"card":{"slug":"omar-saeed"},"activities":[{"id":"cm3k9x2act001","type":"NOTE","metadata":{"note":"Wants a demo next week","by":"cm3k9x2user01"},"createdAt":"2026-10-06T10:00:00.000Z","author":{"id":"cm3k9x2user01","name":"Omar Saeed"}}]}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooMany"}}},"patch":{"operationId":"updateLead","tags":["Leads"],"summary":"Update a lead","description":"Send only what changes. An empty string or null clears a text field.","security":[{"bearer":["crm:write"]}],"x-required-scope":"crm:write","parameters":[{"name":"id","in":"path","required":true,"description":"The record’s id.","schema":{"type":"string","description":"The record’s id."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"stageId":{"type":["string","null"],"description":"A stage from GET /leads/stages."},"temperature":{"type":"string","enum":["COLD","WARM","HOT"],"description":"How interested they are."},"value":{"type":"number","description":"Expected deal value, in whole currency units."},"name":{"type":["string","null"],"description":"Full name."},"email":{"type":["string","null"],"description":"Email address."},"phone":{"type":["string","null"],"description":"Phone number."},"company":{"type":["string","null"],"description":"Company."},"customFields":{"type":"object","description":"Your own fields by field id (GET /leads/fields); null clears one."}}},"example":{"stageId":"cm3k9x2stage3","temperature":"HOT","value":40000}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"cm3k9x2lead01","stageId":"cm3k9x2stage3","temperature":"HOT","value":40000,"name":"Mona Adel","email":"mona@nile.example","phone":"+201001234567","company":"Nile Co","customFields":{"cm3k9x2field1":"Real estate"}}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/leads/activity":{"get":{"operationId":"leadActivityFeed","tags":["Leads"],"summary":"Activity across leads","description":"What happened across your leads, newest first: conversations, notes, pipeline moves, new leads, leads coming back to a card, and tasks done. Pass the returned `next` as `before` for the next page; an item may repeat at the edge of two pages, so drop ids you have.","security":[{"bearer":["crm:read"]}],"x-required-scope":"crm:read","parameters":[{"name":"kind","in":"query","required":false,"description":"Only one kind of thing. Default all.","schema":{"type":"string","enum":["all","conversations","notes","visits","tasks","changes"],"description":"Only one kind of thing. Default all."}},{"name":"before","in":"query","required":false,"description":"ISO date: things at or before it.","schema":{"type":"string","description":"ISO date: things at or before it."}},{"name":"limit","in":"query","required":false,"description":"1–100, default 40.","schema":{"type":"number","description":"1–100, default 40."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"items":[{"kind":"returned","id":"visit-cm3k9x2evt009-cm3k9x2lead1","at":"2026-10-07T09:12:00.000Z","lead":{"id":"cm3k9x2lead01","name":"Mona Adel","company":"Nile Co"},"card":"Omar Saeed"},{"kind":"activity","id":"cm3k9x2act001","at":"2026-10-06T10:00:00.000Z","lead":{"id":"cm3k9x2lead01","name":"Mona Adel","company":"Nile Co"},"type":"CALL","metadata":{"note":"Wants a demo"},"author":{"id":"cm3k9x2user01","name":"Omar Saeed","avatarUrl":null}},{"kind":"captured","id":"created-cm3k9x2lead01","at":"2026-10-06T09:14:00.000Z","lead":{"id":"cm3k9x2lead01","name":"Mona Adel","company":"Nile Co"},"source":"card_form","card":"Omar Saeed"}],"next":"2026-10-06T09:14:00.000Z"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/leads/{id}/timeline":{"get":{"operationId":"leadTimeline","tags":["Leads"],"summary":"Get a lead’s timeline","description":"Everything that happened with the lead, newest first: their visits to your cards (before and after they left their details, with what they tapped), activity, tasks and when they were captured. With a summary.","security":[{"bearer":["crm:read"]}],"x-required-scope":"crm:read","parameters":[{"name":"id","in":"path","required":true,"description":"The record’s id.","schema":{"type":"string","description":"The record’s id."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"items":[{"kind":"visit","id":"visit-cm3k9x2evt009","at":"2026-10-07T09:12:00.000Z","endedAt":"2026-10-07T09:15:30.000Z","card":{"id":"cm3k9x2card01","name":"Omar Saeed"},"returning":true,"tapped":false,"actions":[{"type":"CLICK","at":"2026-10-07T09:14:00.000Z","action":"WHATSAPP"}]},{"kind":"activity","id":"cm3k9x2act001","at":"2026-10-06T10:00:00.000Z","type":"CALL","metadata":{"note":"Wants a demo","by":"cm3k9x2user01"},"author":{"id":"cm3k9x2user01","name":"Omar Saeed","avatarUrl":null}},{"kind":"task","id":"task-cm3k9x2task1","at":"2026-10-06T10:05:00.000Z","event":"created","title":"Send the offer","dueDate":"2026-10-08T09:00:00.000Z","completed":false,"assignee":null},{"kind":"created","id":"created-cm3k9x2lead01","at":"2026-10-06T09:14:00.000Z","source":"card_form","card":{"id":"cm3k9x2card01","name":"Omar Saeed"},"tag":null}],"summary":{"visits":3,"returns":1,"firstVisitAt":"2026-10-05T18:01:00.000Z","lastVisitAt":"2026-10-07T09:12:00.000Z","contacts":1,"lastContactAt":"2026-10-06T10:00:00.000Z","notes":0,"openTasks":1,"overdueTasks":0}}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/leads/{id}/activities":{"post":{"operationId":"addLeadActivity","tags":["Leads"],"summary":"Log activity on a lead","description":"A note, or a call, email, WhatsApp message or meeting that happened.","security":[{"bearer":["crm:write"]}],"x-required-scope":"crm:write","parameters":[{"name":"id","in":"path","required":true,"description":"The record’s id.","schema":{"type":"string","description":"The record’s id."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["NOTE","CALL","EMAIL","WHATSAPP","MEETING"],"description":"What happened."},"note":{"type":"string","description":"What was said or agreed (up to 2,000 characters)."},"meetingAt":{"type":"string","format":"date-time","description":"For a MEETING: when."}},"required":["type"]},"example":{"type":"CALL","note":"Called, sending the offer tomorrow"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"id":"cm3k9x2act002","type":"CALL","metadata":{"note":"Called, sending the offer tomorrow","meetingAt":null,"manual":true,"by":"cm3k9x2user01"},"createdAt":"2026-10-06T11:00:00.000Z"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/leads/stages":{"get":{"operationId":"listStages","tags":["Leads"],"summary":"List pipeline stages","security":[{"bearer":["crm:read"]}],"x-required-scope":"crm:read","responses":{"200":{"description":"OK","content":{"application/json":{"example":[{"id":"cm3k9x2stage1","name":"New","order":0,"color":"#6366f1"},{"id":"cm3k9x2stage2","name":"Contacted","order":1,"color":"#0ea5e9"}]}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/leads/fields":{"get":{"operationId":"listFields","tags":["Leads"],"summary":"List your lead fields","description":"The workspace’s own fields, in order. Use their ids in customFields.","security":[{"bearer":["crm:read"]}],"x-required-scope":"crm:read","responses":{"200":{"description":"OK","content":{"application/json":{"example":[{"id":"cm3k9x2field1","label":"Industry","type":"SELECT","options":["Retail","Real estate"],"order":0}]}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/tasks":{"get":{"operationId":"listTasks","tags":["Tasks"],"summary":"List tasks","description":"Open tasks first, by due date.","security":[{"bearer":["crm:read"]}],"x-required-scope":"crm:read","parameters":[{"name":"leadId","in":"query","required":false,"description":"Only this lead’s tasks.","schema":{"type":"string","description":"Only this lead’s tasks."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":[{"id":"cm3k9x2task01","title":"Send the price list","notes":null,"priority":"HIGH","dueDate":"2026-10-08T09:00:00.000Z","completed":false,"completedAt":null,"leadId":"cm3k9x2lead01","createdAt":"2026-10-06T09:20:00.000Z","lead":{"id":"cm3k9x2lead01","name":"Mona Adel"}}]}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooMany"}}},"post":{"operationId":"createTask","tags":["Tasks"],"summary":"Add a task","security":[{"bearer":["crm:write"]}],"x-required-scope":"crm:write","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"What to do."},"leadId":{"type":"string","description":"The lead it is about."},"notes":{"type":"string","description":"Details."},"priority":{"type":"string","enum":["LOW","MEDIUM","HIGH"],"description":"Default: MEDIUM."},"dueDate":{"type":"string","format":"date-time","description":"When it is due; a reminder goes out then."}},"required":["title"]},"example":{"title":"Send the price list","leadId":"cm3k9x2lead01","priority":"HIGH","dueDate":"2026-10-08T09:00:00.000Z"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"id":"cm3k9x2task01","title":"Send the price list","notes":null,"priority":"HIGH","dueDate":"2026-10-08T09:00:00.000Z","completed":false,"completedAt":null,"leadId":"cm3k9x2lead01","createdAt":"2026-10-06T09:20:00.000Z","lead":{"id":"cm3k9x2lead01","name":"Mona Adel"}}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/tasks/{id}":{"patch":{"operationId":"updateTask","tags":["Tasks"],"summary":"Update or complete a task","security":[{"bearer":["crm:write"]}],"x-required-scope":"crm:write","parameters":[{"name":"id","in":"path","required":true,"description":"The record’s id.","schema":{"type":"string","description":"The record’s id."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"What to do."},"notes":{"type":"string","description":"Details."},"priority":{"type":"string","enum":["LOW","MEDIUM","HIGH"],"description":"Priority."},"dueDate":{"type":["string","null"],"format":"date-time","description":"When it is due; null removes it."},"completed":{"type":"boolean","description":"Done or not."}}},"example":{"completed":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"cm3k9x2task01","title":"Send the price list","notes":null,"priority":"HIGH","dueDate":"2026-10-08T09:00:00.000Z","completed":true,"completedAt":"2026-10-07T12:00:00.000Z","leadId":"cm3k9x2lead01","createdAt":"2026-10-06T09:20:00.000Z","lead":{"id":"cm3k9x2lead01","name":"Mona Adel"}}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooMany"}}},"delete":{"operationId":"deleteTask","tags":["Tasks"],"summary":"Delete a task","security":[{"bearer":["crm:write"]}],"x-required-scope":"crm:write","parameters":[{"name":"id","in":"path","required":true,"description":"The record’s id.","schema":{"type":"string","description":"The record’s id."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"cm3k9x2task01","deleted":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/cards":{"get":{"operationId":"listCards","tags":["Cards"],"summary":"List cards","description":"Each card with its buttons and sections. Its public page is /c/{slug}.","security":[{"bearer":["cards:read"]}],"x-required-scope":"cards:read","responses":{"200":{"description":"OK","content":{"application/json":{"example":[{"id":"cm3k9x2card01","slug":"omar-saeed","ownerId":"cm3k9x2user01","templateId":"swiss-indigo","isPublished":true,"vcardData":{"fullName":"Omar Saeed","title":"Sales Manager","company":"Nile Co","phone":"+201001234567","email":"omar@nile.example"},"actions":[{"id":"cm3k9x2actn1","type":"WHATSAPP","label":"WhatsApp","value":"+201001234567","isActive":true,"order":0}],"sections":[],"createdAt":"2026-09-01T10:00:00.000Z"}]}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooMany"}}},"post":{"operationId":"createCard","tags":["Cards"],"summary":"Create a card","description":"Made as a draft; publish it from the app. Counts toward the plan’s card limit.","security":[{"bearer":["cards:write"]}],"x-required-scope":"cards:write","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"templateId":{"type":"string","description":"The design, such as swiss-indigo."},"fullName":{"type":"string","description":"The name on the card."},"title":{"type":"string","description":"Job title."},"slug":{"type":"string","description":"Its address (lowercase letters, numbers, hyphens); made from the name when left out."},"ownerId":{"type":"string","description":"A member to own it. Default: whoever the credential acts as (see Authentication)."}},"required":["templateId"]},"example":{"templateId":"swiss-indigo","fullName":"Sara Nabil","title":"Account Manager"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"id":"cm3k9x2card02","slug":"sara-nabil","templateId":"swiss-indigo","isPublished":false,"vcardData":{"fullName":"Sara Nabil","title":"Account Manager"}}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/nfc/tags":{"get":{"operationId":"listChips","tags":["NFC chips"],"summary":"List NFC chips","security":[{"bearer":["nfc:read"]}],"x-required-scope":"nfc:read","parameters":[{"name":"status","in":"query","required":false,"description":"Only chips in this state.","schema":{"type":"string","enum":["UNASSIGNED","ACTIVE","DISABLED"],"description":"Only chips in this state."}},{"name":"batchId","in":"query","required":false,"description":"Only chips from this delivery batch.","schema":{"type":"string","description":"Only chips from this delivery batch."}},{"name":"assignedUserId","in":"query","required":false,"description":"Only chips given to this member.","schema":{"type":"string","description":"Only chips given to this member."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":[{"id":"cm3k9x2tag001","uid":"04A2B3C4D5E6F7","status":"ACTIVE","hardwareType":"CARD","cardId":"cm3k9x2card01","assignedUserId":"cm3k9x2user01","batchId":null,"activationCount":128,"lastScanAt":"2026-10-05T16:02:00.000Z","createdAt":"2026-09-01T10:00:00.000Z","assignedUser":{"id":"cm3k9x2user01","name":"Omar Saeed","email":"omar@nile.example"}}]}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/nfc/tags/{id}":{"get":{"operationId":"getChip","tags":["NFC chips"],"summary":"Get an NFC chip","security":[{"bearer":["nfc:read"]}],"x-required-scope":"nfc:read","parameters":[{"name":"id","in":"path","required":true,"description":"The record’s id.","schema":{"type":"string","description":"The record’s id."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"cm3k9x2tag001","uid":"04A2B3C4D5E6F7","status":"ACTIVE","hardwareType":"CARD","cardId":"cm3k9x2card01","assignedUserId":"cm3k9x2user01","batchId":null,"activationCount":128,"lastScanAt":"2026-10-05T16:02:00.000Z","createdAt":"2026-09-01T10:00:00.000Z"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/webhooks":{"get":{"operationId":"listWebhooks","tags":["Webhooks"],"summary":"List webhook endpoints","security":[{"bearer":["integration:read"]}],"x-required-scope":"integration:read","x-roles":["OWNER","ADMIN","MANAGER"],"responses":{"200":{"description":"OK","content":{"application/json":{"example":[{"id":"cm3k9x2hook01","url":"https://example.com/vertex","description":"CRM sync","secretHint":"whsec_…9f2c","events":["lead.created","lead.updated"],"enabled":true,"createdAt":"2026-09-10T08:00:00.000Z","updatedAt":"2026-09-10T08:00:00.000Z"}]}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooMany"}}},"post":{"operationId":"createWebhook","tags":["Webhooks"],"summary":"Add a webhook endpoint","description":"The answer carries the signing secret, once. Keep it to check the signature on each delivery.","security":[{"bearer":["integration:write"]}],"x-required-scope":"integration:write","x-roles":["OWNER","ADMIN"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"An HTTPS address of yours."},"events":{"type":"array","items":{"type":"string"},"description":"Events to send; see Webhook events."},"description":{"type":"string","description":"What it is for."}},"required":["url","events"]},"example":{"url":"https://example.com/vertex","events":["lead.created"],"description":"CRM sync"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"id":"cm3k9x2hook02","url":"https://example.com/vertex","description":"CRM sync","secretHint":"whsec_…3f9a","events":["lead.created"],"enabled":true,"createdAt":"2026-10-06T09:00:00.000Z","updatedAt":"2026-10-06T09:00:00.000Z","secret":"whsec_5c1e…3f9a"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooMany"}}}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"An API key (vxk_live_…) acts in its workspace. A personal access token (vxp_…) acts as its user; send X-Organization-Id to choose the workspace."}},"schemas":{"Error":{"type":"object","properties":{"statusCode":{"type":"integer"},"message":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}}}},"responses":{"Invalid":{"description":"email: Invalid email","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"statusCode":400,"message":"email: Invalid email"}}}},"Unauthorized":{"description":"Invalid or expired API credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"statusCode":401,"message":"Invalid or expired API credentials"}}}},"Forbidden":{"description":"This token is missing the required scope(s): crm:write","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"statusCode":403,"message":"This token is missing the required scope(s): crm:write"}}}},"NotFound":{"description":"Lead not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"statusCode":404,"message":"Lead not found"}}}},"TooMany":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"statusCode":429,"message":"ThrottlerException: Too Many Requests"}}}}}},"webhooks":{"lead.created":{"post":{"summary":"A new lead: from a card, a meeting request, an import or by hand.","parameters":[{"name":"X-Vertex-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<raw body>\">"},{"name":"X-Vertex-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Vertex-Event-Id","in":"header","required":true,"schema":{"type":"string"},"description":"The same on every retry: use it to skip duplicates."}],"requestBody":{"content":{"application/json":{"example":{"id":"evt_5b1d0c3e-8f7a-4f53-9f0e-2a6b1c9d7e41","event":"lead.created","createdAt":"2026-10-06T09:14:00.000Z","data":{"leadId":"cm3k9x2lead01","name":"Mona Adel","email":"mona@nile.example","phone":"+201001234567","company":"Nile Co","source":"manual"}}}}},"responses":{"200":{"description":"Any 2xx means received; anything else is retried."}}}},"lead.updated":{"post":{"summary":"A lead’s stage, temperature, value or details changed, or duplicates were merged into it.","parameters":[{"name":"X-Vertex-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<raw body>\">"},{"name":"X-Vertex-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Vertex-Event-Id","in":"header","required":true,"schema":{"type":"string"},"description":"The same on every retry: use it to skip duplicates."}],"requestBody":{"content":{"application/json":{"example":{"id":"evt_5b1d0c3e-8f7a-4f53-9f0e-2a6b1c9d7e41","event":"lead.updated","createdAt":"2026-10-06T09:14:00.000Z","data":{"leadId":"cm3k9x2lead01","name":"Mona Adel","email":"mona@nile.example","phone":"+201001234567","company":"Nile Co","source":"manual"}}}}},"responses":{"200":{"description":"Any 2xx means received; anything else is retried."}}}},"contact.saved":{"post":{"summary":"A visitor saved a card to their phone’s contacts.","parameters":[{"name":"X-Vertex-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<raw body>\">"},{"name":"X-Vertex-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Vertex-Event-Id","in":"header","required":true,"schema":{"type":"string"},"description":"The same on every retry: use it to skip duplicates."}],"requestBody":{"content":{"application/json":{"example":{"id":"evt_5b1d0c3e-8f7a-4f53-9f0e-2a6b1c9d7e41","event":"contact.saved","createdAt":"2026-10-06T09:14:00.000Z","data":{"leadId":"cm3k9x2lead01","name":"Mona Adel","email":"mona@nile.example","phone":"+201001234567","company":"Nile Co","source":"manual"}}}}},"responses":{"200":{"description":"Any 2xx means received; anything else is retried."}}}},"card.viewed":{"post":{"summary":"A card was opened (by link, QR code or chip).","parameters":[{"name":"X-Vertex-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<raw body>\">"},{"name":"X-Vertex-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Vertex-Event-Id","in":"header","required":true,"schema":{"type":"string"},"description":"The same on every retry: use it to skip duplicates."}],"requestBody":{"content":{"application/json":{"example":{"id":"evt_5b1d0c3e-8f7a-4f53-9f0e-2a6b1c9d7e41","event":"card.viewed","createdAt":"2026-10-06T09:14:00.000Z","data":{"leadId":"cm3k9x2lead01","name":"Mona Adel","email":"mona@nile.example","phone":"+201001234567","company":"Nile Co","source":"manual"}}}}},"responses":{"200":{"description":"Any 2xx means received; anything else is retried."}}}},"nfc.tapped":{"post":{"summary":"A chip was tapped.","parameters":[{"name":"X-Vertex-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<raw body>\">"},{"name":"X-Vertex-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Vertex-Event-Id","in":"header","required":true,"schema":{"type":"string"},"description":"The same on every retry: use it to skip duplicates."}],"requestBody":{"content":{"application/json":{"example":{"id":"evt_5b1d0c3e-8f7a-4f53-9f0e-2a6b1c9d7e41","event":"nfc.tapped","createdAt":"2026-10-06T09:14:00.000Z","data":{"leadId":"cm3k9x2lead01","name":"Mona Adel","email":"mona@nile.example","phone":"+201001234567","company":"Nile Co","source":"manual"}}}}},"responses":{"200":{"description":"Any 2xx means received; anything else is retried."}}}},"meeting.requested":{"post":{"summary":"A visitor asked to meet.","parameters":[{"name":"X-Vertex-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<raw body>\">"},{"name":"X-Vertex-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Vertex-Event-Id","in":"header","required":true,"schema":{"type":"string"},"description":"The same on every retry: use it to skip duplicates."}],"requestBody":{"content":{"application/json":{"example":{"id":"evt_5b1d0c3e-8f7a-4f53-9f0e-2a6b1c9d7e41","event":"meeting.requested","createdAt":"2026-10-06T09:14:00.000Z","data":{"leadId":"cm3k9x2lead01","name":"Mona Adel","email":"mona@nile.example","phone":"+201001234567","company":"Nile Co","source":"manual"}}}}},"responses":{"200":{"description":"Any 2xx means received; anything else is retried."}}}},"quote.requested":{"post":{"summary":"A visitor asked for a quote.","parameters":[{"name":"X-Vertex-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<raw body>\">"},{"name":"X-Vertex-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Vertex-Event-Id","in":"header","required":true,"schema":{"type":"string"},"description":"The same on every retry: use it to skip duplicates."}],"requestBody":{"content":{"application/json":{"example":{"id":"evt_5b1d0c3e-8f7a-4f53-9f0e-2a6b1c9d7e41","event":"quote.requested","createdAt":"2026-10-06T09:14:00.000Z","data":{"leadId":"cm3k9x2lead01","name":"Mona Adel","email":"mona@nile.example","phone":"+201001234567","company":"Nile Co","source":"manual"}}}}},"responses":{"200":{"description":"Any 2xx means received; anything else is retried."}}}},"member.added":{"post":{"summary":"Someone joined the workspace.","parameters":[{"name":"X-Vertex-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<raw body>\">"},{"name":"X-Vertex-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Vertex-Event-Id","in":"header","required":true,"schema":{"type":"string"},"description":"The same on every retry: use it to skip duplicates."}],"requestBody":{"content":{"application/json":{"example":{"id":"evt_5b1d0c3e-8f7a-4f53-9f0e-2a6b1c9d7e41","event":"member.added","createdAt":"2026-10-06T09:14:00.000Z","data":{"leadId":"cm3k9x2lead01","name":"Mona Adel","email":"mona@nile.example","phone":"+201001234567","company":"Nile Co","source":"manual"}}}}},"responses":{"200":{"description":"Any 2xx means received; anything else is retried."}}}}}}