Health & Public Endpoints
These endpoints do not require an API key.
Health Check
Section titled “Health Check”GET /v1/healthReturns a simple status indicating the API is running.
Response — 200 OK
Section titled “Response — 200 OK”{ "status": "success", "message": "Public API is healthy", "timestamp": "2026-04-29T12:00:00.000Z"}Public Form Submission
Section titled “Public Form Submission”POST /v1/public/form-submission/:tenant_id/:form_idAccepts form submissions from your website. Authentication is handled through domain verification rather than API keys — your tenant’s verified domains are checked against the request’s Origin/Referer.
This endpoint is what the Pathbound tracker snippet calls when a visitor submits a form on your site. You can also call it directly from a custom form.
Path Parameters
Section titled “Path Parameters”| Parameter | Type | Description |
|---|---|---|
tenant_id | string | Your Pathbound tenant ID. |
form_id | string | The form identifier. |
Request Body
Section titled “Request Body”| Field | Type | Required | Description |
|---|---|---|---|
visitor_id | string | no | Visitor tracking ID from the tracker. When provided, the submission is linked to the visitor’s prior pageviews. |
contact_data | object | no | Must include email if provided. Other fields optional. |
company_data | object | no | Must include domain if provided. |
lifecyclestage (if set) must be one of: lead, prospect, mql, sql, opportunity, customer, evangelist, subscriber, other.
Example
Section titled “Example”curl -X POST https://api.pathbound.ai/v1/public/form-submission/tenant_abc/form_xyz \ -H "Content-Type: application/json" \ -d '{ "visitor_id": "vis_123", "contact_data": { "email": "[email protected]", "firstname": "Alex" }, "company_data": { "domain": "example.com" } }'Response — 200 OK
Section titled “Response — 200 OK”{ "status": "success", "message": "Thank you for your submission"}The endpoint deliberately does not return internal IDs to avoid leaking tenant state to anonymous callers.
Error Codes
Section titled “Error Codes”| Status | Meaning |
|---|---|
400 | Invalid request body. |
403 | Domain not verified for this tenant. |
429 | Rate limit exceeded — global (30/min/IP) or per-tenant (100/min). |