Get Public Form GET
Read a live form the way a visitor's browser does: its fields and design, without anything private. No authentication — this is the endpoint the form page itself calls.
Endpoint
GET https://api.pocketalert.app/v1/forms/{tid}Authentication
Not required
The endpoint is public. It never returns the push title, the routing, the response counter or anything else the owner sees.
Request
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
tid | string | ✅ | Form identifier, the same one that appears in https://frms.click/{tid} |
Example Request
bash
curl -X GET "https://api.pocketalert.app/v1/forms/vml19aihrga216gt8apc5e3m9"javascript
const form = await fetch('https://api.pocketalert.app/v1/forms/vml19aihrga216gt8apc5e3m9')
.then((response) => response.json());
if (form.closed) {
console.log(form.settings.closed_message);
} else {
console.log(form.settings.title, form.fields.length, 'fields');
}python
import requests
form = requests.get('https://api.pocketalert.app/v1/forms/vml19aihrga216gt8apc5e3m9').json()
print(form['settings']['title'], len(form['fields']), 'fields')Response
Success Response
200 OK
A closed form still answers with 200, with closed: true and an empty fields array — that is how the page knows to show closed_message instead of inputs.
| Field | Type | Description |
|---|---|---|
tid | string | Form identifier |
closed | boolean | true when the form is switched off, past its closing time, or out of response slots |
fields | array | The fields to render — see Create Form. Empty when closed |
settings | object | Title, texts and design — see Create Form |
allowed_origins | array | Hosts allowed to embed the form; empty means anywhere |
json
{
"tid": "vml19aihrga216gt8apc5e3m9",
"closed": false,
"fields": [
{ "id": "name", "type": "text", "label": "Name", "placeholder": "Jane Doe", "required": true },
{ "id": "email", "type": "email", "label": "Email", "placeholder": "[email protected]", "required": true },
{ "id": "src", "type": "hidden", "label": "Source", "param": "utm_source" }
],
"settings": {
"title": "Get in touch",
"top_text": "We reply within one business day.",
"success_message": "Thanks! Your response has been sent.",
"closed_message": "This form is no longer accepting responses.",
"background_color": "#f5f5f4",
"card_color": "#ffffff",
"text_color": "#1c1917",
"primary_color": "#3f5cad",
"font_family": "Inter",
"font_size": 16,
"font_weight": 400,
"border_radius": 10,
"hide_branding": false,
"submit": { "text": "Submit", "color": "", "size": "md" }
},
"allowed_origins": []
}Hidden fields
A hidden field is not rendered. Its value comes from the page URL: ?utm_source=newsletter fills the field whose param is utm_source, and it travels with the submission.
Error Responses
| Status | Description |
|---|---|
404 | Form not found |
