curl --request GET \
--url https://app.thinnest.ai/api/v1/forms/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/forms/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/forms/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "form_9e2c4a7b-1d5f-4c38-8b6e-0a3f7d2c9e15",
"name": "Delivery address",
"agent": "ag_2c7e9a14-5b3d-4f8e-a1c6-7d9b0e3f5a21",
"category": "CONTACT_US",
"form": {
"title": "Where should we deliver?",
"submitLabel": "Send",
"fields": [
{
"name": "address",
"label": "Full address",
"kind": "paragraph",
"required": true
},
{
"name": "pincode",
"label": "PIN code",
"kind": "number",
"required": true
}
]
},
"published": true,
"publishedAt": "2026-10-06T10:24:02.660Z",
"createdAt": "2026-10-06T10:20:51.093Z",
"updatedAt": "2026-10-06T10:24:02.660Z"
}{
"error": "Send a valid API key as `Authorization: Bearer <key>`."
}{
"error": "That form was not found."
}{
"error": "Over 240 requests a minute. Slow down and retry."
}Get Form
One form, with its questions and whether it can be sent.
curl --request GET \
--url https://app.thinnest.ai/api/v1/forms/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/forms/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/forms/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "form_9e2c4a7b-1d5f-4c38-8b6e-0a3f7d2c9e15",
"name": "Delivery address",
"agent": "ag_2c7e9a14-5b3d-4f8e-a1c6-7d9b0e3f5a21",
"category": "CONTACT_US",
"form": {
"title": "Where should we deliver?",
"submitLabel": "Send",
"fields": [
{
"name": "address",
"label": "Full address",
"kind": "paragraph",
"required": true
},
{
"name": "pincode",
"label": "PIN code",
"kind": "number",
"required": true
}
]
},
"published": true,
"publishedAt": "2026-10-06T10:24:02.660Z",
"createdAt": "2026-10-06T10:20:51.093Z",
"updatedAt": "2026-10-06T10:24:02.660Z"
}{
"error": "Send a valid API key as `Authorization: Bearer <key>`."
}{
"error": "That form was not found."
}{
"error": "Over 240 requests a minute. Slow down and retry."
}Authorizations
Your API key (ta_live_…) from Settings → API keys, sent as Authorization: Bearer <key>. Keep it on a server: it can message every customer you have. A key is full, build or read-only; a request its level does not allow is refused with 403.
Headers
Developers only: the customer workspace this request acts in — its org_… id from POST /customers. Leave it out to act in your own workspace.
"org_3fKq9TzQ1mN8vB2xR7cLpA"
Path Parameters
The form's id (form_…).
Response
The form.
The form's id (form_…).
What you call it. Customers never see it.
The agent it belongs to (ag_…).
WhatsApp's category for it. Affects reporting only.
SIGN_UP, APPOINTMENT_BOOKING, LEAD_GENERATION, CONTACT_US, CUSTOMER_SUPPORT, SURVEY, OTHER Show child attributes
Show child attributes
Whether it can be sent. False until published, and again after any edit until it is republished.
When it was last published.
When it was created.
When it was last changed.