API Reference
Programmatically interact with Orbit AI to manage forms, submissions, scheduling, meetings, sequences, and more.
Authentication
All API requests require authentication using an API key. Include your key in the Authorization header:
Authorization: Bearer YOUR_API_KEY
Important: Keep your API key secret. Never expose it in client-side code or public repositories.
Base URL
Endpoints
/formsList all forms in your account
curl -X GET "https://orbitforms.ai/api/v1/forms" \ -H "Authorization: Bearer YOUR_API_KEY"
/forms/:formId/submissionsGet all submissions for a form
curl -X GET "https://orbitforms.ai/api/v1/forms/form_abc123/submissions" \ -H "Authorization: Bearer YOUR_API_KEY"
/formsCreate a new form
curl -X POST "https://orbitforms.ai/api/v1/forms" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Contact Form",
"type": "standard",
"fields": [
{ "type": "email", "label": "Email", "required": true },
{ "type": "text", "label": "Name" }
]
}'/submissions/:submissionIdDelete a submission
curl -X DELETE "https://orbitforms.ai/api/v1/submissions/sub_xyz789" \ -H "Authorization: Bearer YOUR_API_KEY"
Contacts
Manage contacts and their associated tags. Contacts are aggregated from form submissions.
/contactsList all contacts. Filter by status, search, or tag.
curl -X GET "https://orbitforms.ai/api/v1/contacts?status=active&tag=lead" \ -H "Authorization: Bearer YOUR_API_KEY"
/contacts/:contactIdGet a single contact with their tags
curl -X GET "https://orbitforms.ai/api/v1/contacts/contact_abc123" \ -H "Authorization: Bearer YOUR_API_KEY"
/contacts/:contactIdUpdate a contact's information
curl -X PATCH "https://orbitforms.ai/api/v1/contacts/contact_abc123" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"first_name": "John",
"last_name": "Doe",
"company": "Acme Inc"
}'/contacts/:contactId/tagsAdd a tag to a contact
curl -X POST "https://orbitforms.ai/api/v1/contacts/contact_abc123/tags" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "tag_slug": "lead" }'/contacts/:contactId/tags?tag_slug=leadRemove a tag from a contact
curl -X DELETE "https://orbitforms.ai/api/v1/contacts/contact_abc123/tags?tag_slug=lead" \ -H "Authorization: Bearer YOUR_API_KEY"
Contact Tags
Create and manage tags that can be applied to contacts for organization and segmentation.
/contact-tagsList all tags for your team
curl -X GET "https://orbitforms.ai/api/v1/contact-tags" \ -H "Authorization: Bearer YOUR_API_KEY"
/contact-tagsCreate a new tag
curl -X POST "https://orbitforms.ai/api/v1/contact-tags" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Hot Lead",
"color": "#ef4444",
"description": "High priority leads"
}'/contact-tags/:tagIdDelete a tag (removes from all contacts)
curl -X DELETE "https://orbitforms.ai/api/v1/contact-tags/tag_abc123" \ -H "Authorization: Bearer YOUR_API_KEY"
Scheduling Pages
Manage scheduling pages and their event types. Requires scheduling:read / scheduling:write scopes.
/scheduling-pagesList scheduling pages. Filter by status (draft, published).
curl -X GET "https://orbitforms.ai/api/v1/scheduling-pages?status=published" \ -H "Authorization: Bearer YOUR_API_KEY"
/scheduling-pages/:idGet a scheduling page with its event types
curl -X GET "https://orbitforms.ai/api/v1/scheduling-pages/page_abc123" \ -H "Authorization: Bearer YOUR_API_KEY"
/scheduling-pagesCreate a new scheduling page
curl -X POST "https://orbitforms.ai/api/v1/scheduling-pages" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Book a Demo",
"slug": "book-a-demo",
"page_type": "one_on_one"
}'/scheduling-pages/:idDelete a scheduling page and its associated event types
curl -X DELETE "https://orbitforms.ai/api/v1/scheduling-pages/page_abc123" \ -H "Authorization: Bearer YOUR_API_KEY"
Meetings
Retrieve and manage booked meetings, including AI-generated notes and extracted field values from the notetaker. Requires meetings:read / meetings:write scopes.
/meetingsList meetings. Filter by status, date range, or scheduling page. Includes AI notes summary and recording status when available.
curl -X GET "https://orbitforms.ai/api/v1/meetings?status=scheduled&since=2026-02-01T00:00:00Z" \ -H "Authorization: Bearer YOUR_API_KEY"
/meetings/:idGet a specific meeting. When the AI notetaker has processed the meeting, the response includes ai_notes, recording, and field_values with extracted data (BANT, MEDDIC, etc.).
curl -X GET "https://orbitforms.ai/api/v1/meetings/MEETING_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
# Response includes:
# {
# "data": {
# "id": "...",
# "attendee_name": "Jane Smith",
# "attendee_email": "jane@example.com",
# "ai_notes": {
# "summary": "Discussed Q2 budget allocation...",
# "sentiment": "positive",
# "action_items": ["Send proposal", "Schedule follow-up"],
# "key_topics": ["Budget", "Timeline"],
# "follow_up_suggestions": ["Demo next week"],
# "processed_at": "2026-02-11T10:00:00Z"
# },
# "recording": {
# "status": "completed",
# "duration_seconds": 1842,
# "started_at": "2026-02-11T09:00:00Z",
# "ended_at": "2026-02-11T09:30:42Z"
# },
# "field_values": [
# {
# "name": "Budget Qualified",
# "category": "BANT",
# "field_type": "short",
# "value": "Yes, $50k allocated",
# "confidence": 0.92
# }
# ]
# }
# }/meetings/:idUpdate a meeting's status or notes
curl -X PATCH "https://orbitforms.ai/api/v1/meetings/meeting_abc123" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "completed",
"notes": "Great meeting, follow-up scheduled"
}'/meetings/:idDelete a meeting
curl -X DELETE "https://orbitforms.ai/api/v1/meetings/meeting_abc123" \ -H "Authorization: Bearer YOUR_API_KEY"
Availability Schedules
Read-only access to team members' availability schedules and date overrides. Requires scheduling:read scope.
/availability-schedulesList availability schedules. Optionally filter by user_id.
curl -X GET "https://orbitforms.ai/api/v1/availability-schedules" \ -H "Authorization: Bearer YOUR_API_KEY"
/availability-schedules/:idGet a schedule with its weekly rules and date overrides
curl -X GET "https://orbitforms.ai/api/v1/availability-schedules/schedule_abc123" \ -H "Authorization: Bearer YOUR_API_KEY"
Sequences
Manage email/SMS drip campaigns. Enroll contacts, track status, and manage unsubscribes. Requires sequences:read / sequences:write scopes.
/sequencesList sequences. Filter by status (draft, active, paused, archived).
curl -X GET "https://orbitforms.ai/api/v1/sequences?status=active" \ -H "Authorization: Bearer YOUR_API_KEY"
/sequences/:id/enrollmentsEnroll contacts into a sequence (max 100 per request)
curl -X POST "https://orbitforms.ai/api/v1/sequences/seq_abc123/enrollments" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contact_ids": ["contact_id_1", "contact_id_2"]
}'/sequences/unsubscribesAdd emails to the unsubscribe list. Exits active enrollments automatically.
curl -X POST "https://orbitforms.ai/api/v1/sequences/unsubscribes" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"emails": ["jane@example.com"],
"scope": "all_sequences"
}'Rate Limits
Iframe Tracking Integration
For analytics and attribution providers: Orbit AI forms support receiving tracking tokens via postMessage when embedded in iframes. This allows your tracking pixel on the parent page to pass attribution data to form submissions.
How It Works
- 1The embedded form sends a
get_cometmessage to the parent window - 2Your tracking script on the parent page responds with tracking tokens via postMessage
- 3The form captures these tokens and includes them in the submission data
Supported Tracking Fields
We currently accept the following tracking fields from parent page messages:
comet_tokenattribution_idtracking_idvisitor_idsession_id// Example: Responding to the form's request
window.addEventListener('message', function(event) {
if (event.data === 'get_comet') {
event.source.postMessage({
comet_token: 'your-attribution-token',
visitor_id: 'your-visitor-id'
}, event.origin);
}
});Are you an analytics or tracking provider?
If you'd like to add support for your tracking field name, contact us at support@orbitforms.ai to get your field whitelisted.
Did this answer your question?