Developer API

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:

Header
Authorization: Bearer YOUR_API_KEY

Important: Keep your API key secret. Never expose it in client-side code or public repositories.

Base URL

https://orbitforms.ai/api/v1

Endpoints

GET/forms

List all forms in your account

curl -X GET "https://orbitforms.ai/api/v1/forms" \
  -H "Authorization: Bearer YOUR_API_KEY"
GET/forms/:formId/submissions

Get all submissions for a form

curl -X GET "https://orbitforms.ai/api/v1/forms/form_abc123/submissions" \
  -H "Authorization: Bearer YOUR_API_KEY"
POST/forms

Create 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" }
    ]
  }'
DELETE/submissions/:submissionId

Delete 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.

GET/contacts

List 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"
GET/contacts/:contactId

Get a single contact with their tags

curl -X GET "https://orbitforms.ai/api/v1/contacts/contact_abc123" \
  -H "Authorization: Bearer YOUR_API_KEY"
PATCH/contacts/:contactId

Update 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"
  }'
POST/contacts/:contactId/tags

Add 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" }'
DELETE/contacts/:contactId/tags?tag_slug=lead

Remove 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.

GET/contact-tags

List all tags for your team

curl -X GET "https://orbitforms.ai/api/v1/contact-tags" \
  -H "Authorization: Bearer YOUR_API_KEY"
POST/contact-tags

Create 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"
  }'
DELETE/contact-tags/:tagId

Delete 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.

GET/scheduling-pages

List 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"
GET/scheduling-pages/:id

Get 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"
POST/scheduling-pages

Create 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"
  }'
DELETE/scheduling-pages/:id

Delete 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.

GET/meetings

List 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"
GET/meetings/:id

Get 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
#       }
#     ]
#   }
# }
PATCH/meetings/:id

Update 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"
  }'
DELETE/meetings/:id

Delete 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.

GET/availability-schedules

List availability schedules. Optionally filter by user_id.

curl -X GET "https://orbitforms.ai/api/v1/availability-schedules" \
  -H "Authorization: Bearer YOUR_API_KEY"
GET/availability-schedules/:id

Get 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.

GET/sequences

List 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"
POST/sequences/:id/enrollments

Enroll 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"]
  }'
POST/sequences/unsubscribes

Add 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

Free
100 requests/hour
Pro
1,000 requests/hour
Enterprise
Unlimited

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

  1. 1The embedded form sends a get_comet message to the parent window
  2. 2Your tracking script on the parent page responds with tracking tokens via postMessage
  3. 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?

API Reference - REST Endpoints & Examples | Orbit AI | Orbit AI