REST native.

23 endpoints. Full CRUD. Webhooks.

Get API KeyOpenAPI Spec
orbyt-mcp
$
Orby, the Orbyt Labs mascot

Build it.

One API. Every integration.

AI Assistants

ChatGPT, Apple Shortcuts, iMessage

Ask your AI about your pipeline, get suggestions, add jobs from conversation. Works with ChatGPT GPT Actions today.

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

Orbyt API

23 authenticated endpoints for jobs, contacts, activities, calendar, pipeline, and webhooks. Full CRUD with your API token.

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
POST/api/mcp/mePerform an account action, like logging a mood check-in

MCP.

A REST tool manifest with 29 tools, and a live JSON-RPC server for salary intelligence.

Pipeline tools authenticate with your ext_ token. The live server takes an Orbyt Intelligence API key, Pro plan and above.

Full MCP integration guide

MCP

GET/mcp.jsonStatic REST tool manifest: 29 tools, 22 pipeline and 7 salary lookups, for MCP-compatible clients
POST/api/v1/intelligence/mcpJSON-RPC 2.0 MCP server. 6 tools: list_capabilities, analyze_compensation, analyze_skills, analyze_market, discover_roles_and_cities, find_adjacent_opportunities

Authentication

Four steps to your first API call.

1

Sign up for Orbyt

Create an account at orbytlabs.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.orbytlabs.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.

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.

S4 Skunkworks

Built different.
Ships when it ships.

Safari. iOS. Apple Watch. Vision Pro.
Four platforms. Built in the open, not promised to anyone.

Safari

In development

iOS

In development

Watch

In development

Vision Pro

Experimental
Apple Vision Pro

Your API key is waiting.

Start building.

Begin.