Introducing Orbit: Turn Any Task Into the Right API Calls Postman.ai launched Orbit, a free API discovery service for AI agents available as an MCP server or REST API, designed to help agents find and integrate the right APIs on the first attempt. Orbit provides two tools—search and integrate—that return graded endpoints and step-by-step integration instructions, with no sign-up or configuration required. The service aims to reduce token usage and costs by enabling agents to select and implement APIs accurately. Introducing Orbit: Turn Any Task Into the Right API Calls Agents get their capabilities from APIs. That’s the premise behind Postman.ai https://blog.postman.com/introducing-postman-ai/ , and the reason we expect agents to become the primary consumers of APIs. An agent that can reach the right API can send the invoice, pull the customer record, or page the on-call engineer. An agent that can’t is a chat window. So the interesting question stopped being whether agents can call APIs. They can. The question is how they find the right one and integrate it correctly on the first attempt. Why? So the right outcome is achieved faster, the tokens spent are fewer, and your costs are lower. Today we’re launching Orbit https://www.buildwithorbit.ai/ to close that gap. It’s API discovery for AI agents, available as an MCP server or a REST API, and it’s free with nothing to sign up for or configure. Two tools, two questions Orbit gives your agent two tools, and they answer the two questions you’d put to a colleague who already knew the API landscape. “Which API can do this?” This is a common question everyone — humans and agents alike — runs into when building an app. This will run search . You describe the task in plain language and get back public endpoints that can do it, each one graded on how well it matches, including what it explicitly cannot do. Once you have the right API, the next obvious question is “How do I integrate this API?” That runs integrate . You pick the endpoint that fits and get back a task brief: the auth scheme, the base URL, the numbered request steps with real parameter names, the response codes to expect, the dependencies between steps, and the gotchas that usually surface as your first 400. Search narrows the field and grades what it finds. Integrate turns your pick into instructions specific enough to write code against. Splitting it across two turns is deliberate, because choosing the endpoint is precisely the decision an agent working from memory gets wrong, and it’s the one worth keeping in your hands. Two ways to use Orbit Both tools are available two ways, and they expose exactly the same capability. Pick based on who is doing the calling. | MCP server | REST API | | |---|---|---| | Use it when | You work in a coding agent like Claude Code or Cursor | You’re building your own agent or backend | | Setup | One command | None, send a request | | You get | search and integrate as agent tools | POST /v1/search and POST /v1/integrate | | Auth | None | None | Option 1: the MCP server For coding agents, connect the server once: claude mcp add --transport http orbit https://mcp.buildwithorbit.ai/mcp That’s the entire setup. There’s no API key to obtain and no OAuth round trip to sit through. The server speaks Model Context Protocol https://modelcontextprotocol.io/ over streamable HTTP, so any MCP client can reach it, and the docs also list it at https://www.buildwithorbit.ai/ mcp/server for clients other than Claude Code https://docs.claude.com/en/docs/claude-code/mcp . After that you talk to your agent normally, and it calls the tools for you: Find an API that sends invoices. Then: Integrate the PayPal ones so I can create a draft invoice and send it to a customer. If your agent doesn’t reach for Orbit on its own when you ask it to add a capability, there’s a skill you can install if-your-agent-doesnt-reach-for-orbit-on-its-own at the end of this post that fixes it. Option 2: the REST API If you’re building your own agent, skip MCP and call the two endpoints yourself. The base URL is https://api.buildwithorbit.ai , the content type is JSON, and there’s no auth. curl -s -X POST "https://api.buildwithorbit.ai/v1/search?limit=6" \ -H "Content-Type: application/json" \ -d '{"q": "send an invoice to a customer with PayPal"}' Each result carries an id , method , url , and evaluateGuide . Treat the id as opaque, pass it back verbatim, and don’t parse or construct it: { "data": { "resourceType": "endpoint", "id": "urn:orbit:endpoint:v1:1I63l4CEzQrXTBUYglUqCVt93MWk2gTAsdJpLE2JiU3uS5rjEary7fx0vxlV1:paypal:send-invoice", "name": "Send invoice", "method": "POST", "url": "https://api-m.sandbox.paypal.com/v2/invoicing/invoices/:invoice id/send", "evaluateGuide": "Sends an invoice immediately or schedules it according to the invoice issue date. The payload can control recipient and merchant notifications.\nUse for: send invoice, schedule invoice delivery, notify customer\nNot supported: creating invoices, editing invoice details, recording payment", "provider": "PayPal", "product": "PayPal" } } That evaluateGuide is worth reading closely. This endpoint sends an invoice but explicitly does not create one, so a task that starts from nothing needs two endpoints rather than one. Then send the id and its resourceType to /v1/integrate along with your task: curl -s -X POST "https://api.buildwithorbit.ai/v1/integrate" \ -H "Content-Type: application/json" \ -d '{ "task": "Create a draft invoice and send it to a customer", "resources": {"id": "urn:orbit:endpoint:v1:...paypal:create-draft-invoice", "type": "endpoint"}, {"id": "urn:orbit:endpoint:v1:...paypal:send-invoice", "type": "endpoint"} }' What comes back is a task brief. This is a real response, trimmed to its structure: Create and send a PayPal draft invoice to a customer PayPal Invoicing API FIT Fully. The first request creates a draft invoice and returns its ID, and the second sends that invoice to the customer. AUTH Header: Authorization: Bearer