Developer API

One API. Every AI.

Connect Orbyt to Claude, OpenClaw, ChatGPT, Siri, Zapier, and any tool that speaks REST. 22 endpoints. Full CRUD. Real-time webhooks.

Get API KeyView OpenAPI Spec
22 endpoints10 webhook eventsREST + MCP

What you can build

One API. Dozens of possibilities.

AI Assistants

Claude Desktop, ChatGPT, iMessage

Ask your AI about your pipeline, get suggestions, add jobs from conversation. Works with any MCP-compatible client.

Automations

Zapier, Make.com, n8n

Trigger workflows on status changes. Slack alerts on offers. Auto-add interviews to your calendar app.

Voice & Shortcuts

Siri, Apple Shortcuts

Morning briefing on your phone. Quick-add jobs by voice. "Hey Siri, what interviews do I have today?"

Quick start

One call to see your entire pipeline.

curl https://www.orbytjobs.ai/api/mcp/pipeline \
  -H "Authorization: Bearer ext_your_token"
Response200 OK
{
  "summary": {
    "total": 24,
    "byStatus": {
      "saved": 8,
      "applied": 9,
      "screening": 3,
      "interviewing": 3,
      "offer": 1
    },
    "responseRate": 0.29,
    "avgDaysInStatus": 6.2
  },
  "needsAttention": [
    {
      "jobId": "j_8f3a2b",
      "company": "Stripe",
      "role": "Senior Frontend Engineer",
      "reason": "No activity in 12 days",
      "suggestion": "Follow up on your application"
    }
  ],
  "recentWins": [
    {
      "type": "offer",
      "company": "Linear",
      "role": "Staff Engineer",
      "date": "2026-03-27"
    }
  ]
}

Try it now

Paste your API token to query your real pipeline. Or click Demo for sample data.

API SandboxTry it with your data
GET/api/mcp/pipeline
Click Demo to see a sample response from Pipeline Summary

22 endpoints

Full CRUD for jobs, contacts, activities, calendar, pipeline, and webhooks.

Jobs

GET/api/mcp/jobsList all jobs with optional status filter
GET/api/mcp/jobs/{id}Get full details for a single job
POST/api/mcp/jobsAdd a new job to the pipeline
PATCH/api/mcp/jobs/{id}Update a job's details (partial update)
POST/api/mcp/jobs/{id}/statusUpdate a job's pipeline status
DELETE/api/mcp/jobs/{id}Delete a job and related activities

Contacts

GET/api/mcp/contactsList contacts with optional company filter
GET/api/mcp/contacts/{id}Get full details for a single contact
POST/api/mcp/contactsAdd a networking contact
PATCH/api/mcp/contacts/{id}Update a contact's details (partial update)
DELETE/api/mcp/contacts/{id}Delete a contact and unlink from jobs

Activities

GET/api/mcp/activitiesList activities with job, contact, type, and date filters
POST/api/mcp/activitiesLog a job search activity

Calendar

GET/api/mcp/calendarGet upcoming interviews and events
POST/api/mcp/calendarCreate a calendar event

Pipeline

GET/api/mcp/pipelineGet pipeline summary with status counts and insights

Suggestions

GET/api/mcp/suggestionsGet AI agent suggestions and next actions

Webhooks

GET/api/mcp/webhooksList registered webhooks
POST/api/mcp/webhooksRegister a new webhook
DELETE/api/mcp/webhooksRemove a webhook by ID
POST/api/mcp/webhooks/testSend a test webhook event

Identity

GET/api/mcp/meGet your profile, tier, pipeline summary, and rate limits

View full MCP manifest with parameters →

Authentication

Four steps to your first API call.

1

Sign up for Orbyt

Create an account at orbytjobs.ai. The API requires an Ultra plan.

2

Go to Settings

Open Settings > Account > Extension Tokens.

3

Generate a token

Select read-only or read-write scope. Your token starts with ext_.

4

Use it in your requests

Pass the token as a Bearer header in every API call.

Example header

Authorization: Bearer ext_a1b2c3d4e5f6...

Webhooks

Get notified when things happen in your pipeline.

Available events

job.createdjob.updatedjob.status_changedjob.deletedcontact.createdcontact.updatedcontact.deletedactivity.createdinterview.scheduledoffer.received* (all)
Register a webhook
curl -X POST https://www.orbytjobs.ai/api/mcp/webhooks \
  -H "Authorization: Bearer ext_your_token" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://hooks.zapier.com/hooks/catch/YOUR_ZAP_ID",
    "events": ["offer.received", "interview.scheduled"],
    "secret": "my_signing_secret"
  }'
Webhook payload
{
  "event": "job.status_changed",
  "timestamp": "2026-03-29T14:22:00Z",
  "data": {
    "jobId": "j_8f3a2b",
    "company": "Stripe",
    "role": "Senior Frontend Engineer",
    "previousStatus": "interviewing",
    "newStatus": "offer"
  }
}
Verify signatures (Node.js)
import crypto from "crypto";

function verifyWebhook(body, signature, secret) {
  const expected = "sha256=" +
    crypto.createHmac("sha256", secret)
      .update(body)
      .digest("hex");
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}

// In your handler:
const sig = req.headers["x-orbit-signature"];
const isValid = verifyWebhook(rawBody, sig, "my_signing_secret");
Verify signatures (Python)
import hmac, hashlib

def verify_webhook(body: bytes, signature: str, secret: str) -> bool:
    expected = "sha256=" + hmac.new(
        secret.encode(), body, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(signature, expected)

# In your handler:
sig = request.headers["X-Orbyt-Signature"]
is_valid = verify_webhook(request.data, sig, "my_signing_secret")

Error reference

Every error returns a consistent JSON envelope with an error message and code.

400The request body is missing required fields, contains invalid values, or is malformed JSON.
{ "error": "Missing required field: title", "code": "VALIDATION_ERROR" }
401Missing or invalid API token. Include Authorization: Bearer ext_your_token in every request.
{ "error": "Unauthorized", "code": "UNAUTHORIZED" }
403Your Orbyt plan does not include API access, your token was revoked, or the token lacks the required scope (e.g., write operation with a read-only token).
{ "error": "Forbidden", "code": "FORBIDDEN" }
404The resource ID does not exist or belongs to a different user.
{ "error": "Not found", "code": "NOT_FOUND" }
429Rate limit exceeded. Per-minute (60 req/min) or monthly (50,000/month) cap reached. Check X-RateLimit-Remaining headers.
{ "error": "Too many requests", "code": "RATE_LIMITED" }
500Internal server error. This is a bug on our side. If persistent, contact support.
{ "error": "Internal error", "code": "INTERNAL_ERROR" }

Integration guides

Step-by-step setup for the most popular platforms.

Claude Desktop

MCP

Configure MCP in claude_desktop_config.json. Point it at the Orbyt MCP manifest and your API key. Claude can then search your pipeline, add jobs, and suggest next actions.

Read guide →

ChatGPT GPT Actions

OpenAPI

Import the Orbyt OpenAPI spec to build a Custom GPT. Your GPT can read your pipeline, log activities, and help you prepare for interviews using your real data.

Read guide →

Apple Shortcuts

REST

Use the "Get Contents of URL" action with Bearer auth. Build morning briefings, quick-add workflows, and Siri commands that talk to your pipeline.

Read guide →

Zapier / Make.com / n8n

Webhooks

Register webhooks via the API and trigger Zaps or scenarios. Get Slack alerts on offers, auto-log interview notes, or sync new jobs to Notion.

Read guide →

OpenClaw

MCP

Connect Orbyt to OpenClaw for AI-powered job search assistance. OpenClaw supports MCP servers natively, so setup takes under a minute.

Read guide →

Rate limits

Generous limits for real workflows.

60

requests per minute

50,000

requests per month

Rate limit headers

X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-Monthly-LimitX-RateLimit-Monthly-Remaining

Ultra plan required. Exceeding limits returns a 429 status with a Retry-After header.

Start building

Create an account, generate your API key, and make your first call in under two minutes.

Get started

API access available on the Ultra plan.