### POST /v1/integrate Source: https://www.buildwithorbit.ai/api-reference/integrate-public-endpoints Example code snippets in Go, Ruby, Java, PHP, and C# demonstrating how to call the POST /v1/integrate endpoint. ```APIDOC ## POST /v1/integrate ### Description This endpoint integrates public endpoints to build an app that performs a specified task, such as posting current weather to Slack. ### Method POST ### Endpoint https://api.buildwithorbit.ai/v1/integrate ### Parameters #### Request Body - **task** (string) - Required - Description of the task to accomplish. - **resources** (array) - Required - List of resources to integrate. - **id** (string) - Required - URN identifier of the endpoint resource. - **type** (string) - Required - Type of resource, e.g., "endpoint". ### Request Example { "task": "Build an app to post current weather to slack", "resources": [ { "id": "urn:orbit:endpoint:v1:1OYrNvmw0qAUVtV7jNU3tC3kuCIFbpjpfGZuyexkHTlZg60P7mpN4cYzSm9XW:weatherapi-com:current-weather-json", "type": "endpoint" }, { "id": "urn:orbit:endpoint:v1:1Jgb5F43F8b9al2a64G1srYRVxJ3SKnSepsgceU9aKzl1nnJeNHWFxEudTUMG:slack:send-message-to-slack", "type": "endpoint" } ] } ### Response #### Success Response (200) No response schema is provided in the source. #### Response Example No response example is provided in the source. ``` -------------------------------- ### Search Public Endpoints - Go SDK Source: https://www.buildwithorbit.ai/api-reference/search-public-endpoints Go example using net/http to POST to the search endpoint with cursor and limit query parameters. Prints the response status and body. ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.buildwithorbit.ai/v1/search?cursor=eyJmcm9tIjoxMH0%3D&limit=10" payload := strings.NewReader("{\n \"q\": \"Get Current Weather\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Orbit-Client-Name", "claude") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` -------------------------------- ### POST /v1/integrate Source: https://www.buildwithorbit.ai/api-reference/integrate-public-endpoints Example of integrating public endpoints using the Orbit API. ```APIDOC ## [POST] https://api.buildwithorbit.ai/v1/integrate ### Description Integrates public endpoints by sending a task description and a list of endpoint resources to the Orbit API. ### Method POST ### Endpoint https://api.buildwithorbit.ai/v1/integrate ### Parameters #### Request Body - **task** (string) - Required - Description of the task to be performed. - **resources** (array) - Required - List of endpoint resources to integrate. - **id** (string) - Required - URN identifier of the endpoint resource. - **type** (string) - Required - Type of the resource, set to "endpoint". ### Request Example ```json { "task": "Build an app to post current weather to slack", "resources": [ { "id": "urn:orbit:endpoint:v1:1OYrNvmw0qAUVtV7jNU3tC3kuCIFbpjpfGZuyexkHTlZg60P7mpN4cYzSm9XW:weatherapi-com:current-weather-json", "type": "endpoint" }, { "id": "urn:orbit:endpoint:v1:1Jgb5F43F8b9al2a64G1srYRVxJ3SKnSepsgceU9aKzl1nnJeNHWFxEudTUMG:slack:send-message-to-slack", "type": "endpoint" } ] } ``` ### Response #### Success Response - **HTTP status code** (integer) - The HTTP status code of the response. #### Response Example ```json { "statusCode": 200 } ``` ``` -------------------------------- ### POST /v1/search Source: https://www.buildwithorbit.ai/api-reference/search-public-endpoints Example code snippets for calling the POST /v1/search endpoint in PHP, C#, and Swift. ```APIDOC ## POST /v1/search ### Description Searches for public endpoints using a query string. Supports pagination via cursor and limit parameters. ### Method POST ### Endpoint https://api.buildwithorbit.ai/v1/search?cursor={cursor}&limit={limit} ### Parameters #### Query Parameters - **cursor** (string) - Optional - Pagination cursor for retrieving the next set of results. - **limit** (integer) - Optional - Maximum number of results to return. #### Request Body - **q** (string) - Required - The search query string. ### Request Example { "q": "Get Current Weather" } ### Headers - **Content-Type** (string) - Required - Must be set to `application/json`. - **Orbit-Client-Name** (string) - Required - Client name identifier, e.g., `claude`. ### Response #### Success Response (200) Returns the search results. The response body is not detailed in the source. #### Response Example (Not provided in the source.) ``` -------------------------------- ### Search request body example Source: https://www.buildwithorbit.ai/docs/get-started/quickstart-guide The JSON request body for the POST /v1/search endpoint. The 'q' field contains the plain language task description. ```json { "q": "Get Current Weather" } ``` -------------------------------- ### JavaScript SDK call to /v1/integrate Source: https://www.buildwithorbit.ai/api-reference/integrate-public-endpoints JavaScript SDK example using the Fetch API to call the `/v1/integrate` endpoint. It sends a POST request with the task and resources, sets the `Orbit-Client-Name` header to `claude`, and logs the JSON response or error. ```javascript const url = 'https://api.buildwithorbit.ai/v1/integrate'; const options = { method: 'POST', headers: {'Orbit-Client-Name': 'claude', 'Content-Type': 'application/json'}, body: '{"task":"Build an app to post current weather to slack","resources":[{"id":"urn:orbit:endpoint:v1:1OYrNvmw0qAUVtV7jNU3tC3kuCIFbpjpfGZuyexkHTlZg60P7mpN4cYzSm9XW:weatherapi-com:current-weather-json","type":"endpoint"},{"id":"urn:orbit:endpoint:v1:1Jgb5F43F8b9al2a64G1srYRVxJ3SKnSepsgceU9aKzl1nnJeNHWFxEudTUMG:slack:send-message-to-slack","type":"endpoint"}]}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` -------------------------------- ### Search Public Endpoints - Python SDK Source: https://www.buildwithorbit.ai/api-reference/search-public-endpoints Python example using requests to POST to the search endpoint with cursor and limit query parameters. Requires the requests library. ```python import requests url = "https://api.buildwithorbit.ai/v1/search" querystring = {"cursor":"eyJmcm9tIjoxMH0=","limit":"10"} payload = { "q": "Get Current Weather" } headers = { "Orbit-Client-Name": "claude", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers, params=querystring) print(response.json()) ``` -------------------------------- ### Search Public Endpoints - JavaScript SDK Source: https://www.buildwithorbit.ai/api-reference/search-public-endpoints JavaScript example using fetch to POST to the search endpoint with cursor and limit query parameters. Uses async/await and error handling. ```javascript const url = 'https://api.buildwithorbit.ai/v1/search?cursor=eyJmcm9tIjoxMH0%3D&limit=10'; const options = { method: 'POST', headers: {'Orbit-Client-Name': 'claude', 'Content-Type': 'application/json'}, body: '{"q":"Get Current Weather"}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` -------------------------------- ### Python SDK call to /v1/integrate Source: https://www.buildwithorbit.ai/api-reference/integrate-public-endpoints Python SDK example using the `requests` library to call the `/v1/integrate` endpoint. It sends a POST request with the task and resources, sets the `Orbit-Client-Name` header to `claude`, and prints the JSON response. ```python import requests url = "https://api.buildwithorbit.ai/v1/integrate" payload = { "task": "Build an app to post current weather to slack", "resources": [ { "id": "urn:orbit:endpoint:v1:1OYrNvmw0qAUVtV7jNU3tC3kuCIFbpjpfGZuyexkHTlZg60P7mpN4cYzSm9XW:weatherapi-com:current-weather-json", "type": "endpoint" }, { "id": "urn:orbit:endpoint:v1:1Jgb5F43F8b9al2a64G1srYRVxJ3SKnSepsgceU9aKzl1nnJeNHWFxEudTUMG:slack:send-message-to-slack", "type": "endpoint" } ] } headers = { "Orbit-Client-Name": "claude", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` -------------------------------- ### POST /v1/integrate response body Source: https://www.buildwithorbit.ai/api-reference/integrate-public-endpoints Example response from the /v1/integrate endpoint. It contains a `taskBrief` string with detailed instructions for calling the selected endpoints, including authentication, base URLs, steps, and gotchas. ```json { "data": [ { "taskBrief": "TASK BRIEF: Two independent calls supporting a weather-to-Slack app: retrieve London weather and post a message to Slack (OpenWeatherMap and Slack Web API)\nFIT\n Fully. The supplied requests provide both capabilities: retrieving current weather and posting a Slack message. The weather request is used to supply the content for the Slack message; no supplied requests are irrelevant.\n\nAUTH\n OpenWeatherMap: API key supplied as the required `appid` query parameter; replace `YOUR_API_KEY` with the actual key.\n Slack: bot token supplied in the `token` form field/header value as `{{bot_token}}`, requiring the `chat:write` scope. The Slack collection also specifies bearer authentication using the same `{{bot_token}}` credential; the request explicitly defines the `token` field.\n\nBASE URL\n https://api.openweathermap.org step 1\n https://slack.com step 2\n\nSTEPS\n 1. GET /data/2.5/weather\n Params:\n q: required string query parameter `London`\n appid: required string query parameter `YOUR_API_KEY` (replace with your OpenWeatherMap API key)\n Returns:\n No saved response example; the request is intended to return current weather data for the specified city.\n Threading:\n None\n\n 2. POST /api/chat.postMessage\n Params (application/x-www-form-urlencoded body):\n token: required string authentication field `{{bot_token}}`\n channel: required string `` or a channel/private-group/IM channel identifier\n text: string message text `test`; replace with the weather summary to post\n Optional disabled fields include `as_user`, `attachments`, `blocks`, `icon_emoji`, `icon_url`, `link_names`, `mrkdwn`, `parse`, `reply_broadcast`, `thread_ts`, `unfurl_links`, `unfurl_media`, and `username`.\n Returns:\n HTTP 200 OK with JSON fields `ok` (boolean), `channel` (string), `ts` (string), and `message` (object). The message example includes `text`, `type`, and `ts`, plus optional attachments and blocks.\n Threading:\n None\n\nGOTCHAS\n - Step 1 uses `appid` in the query string, not an authorization header.\n - Step 2 must use `application/x-www-form-urlencoded`, not JSON." } ] } ``` -------------------------------- ### Search Public Endpoints - Response JSON Source: https://www.buildwithorbit.ai/api-reference/search-public-endpoints Example response showing a matching endpoint with its resource type, method, URL, and evaluation guide. The meta object includes the query and total count. ```json { "data": [ { "id": "urn:orbit:endpoint:v1:1OYrNvmw0qAUVtV7jNU3tC3kuCIFbpjpfGZuyexkHTlZg60P7mpN4cYzSm9XW:weatherapi-com:current-weather-json", "resourceType": "endpoint", "name": "Get Current Weather - OpenWeatherMap", "description": "OpenWeatherMap API provides weather data. This request gets current weather for a city. Replace YOURAPIKEY with your actual API key from openweathermap.org", "method": "GET", "url": "https://api.openweathermap.org/data/2.5/weather?q=London&appid=YOUR_API_KEY", "evaluateGuide": "Retrieves current weather data for a specified city from OpenWeatherMap. An agent can obtain conditions such as temperature and other weather details using the city and API key parameters. Use for: current weather in London, city weather lookup, temperature retrieval Not supported: forecasts, historical weather, weather alerts" } ], "meta": { "q": "Get Current Weather", "total": 1 } } ``` -------------------------------- ### Search Public Endpoints - Ruby SDK Source: https://www.buildwithorbit.ai/api-reference/search-public-endpoints Ruby example using net/http to POST to the search endpoint with cursor and limit query parameters. Uses SSL and prints the response body. ```ruby require 'uri' require 'net/http' url = URI("https://api.buildwithorbit.ai/v1/search?cursor=eyJmcm9tIjoxMH0%3D&limit=10") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Orbit-Client-Name"] = 'claude' request["Content-Type"] = 'application/json' request.body = "{\n \"q\": \"Get Current Weather\"\n}" response = http.request(request) puts response.read_body ``` -------------------------------- ### Search Public Endpoints - Java SDK Source: https://www.buildwithorbit.ai/api-reference/search-public-endpoints Java example using Unirest to POST to the search endpoint with cursor and limit query parameters. Returns the response as a string. ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.buildwithorbit.ai/v1/search?cursor=eyJmcm9tIjoxMH0%3D&limit=10") .header("Orbit-Client-Name", "claude") .header("Content-Type", "application/json") .body("{\n \"q\": \"Get Current Weather\"\n}") .asString(); ``` -------------------------------- ### POST /v1/search Source: https://www.buildwithorbit.ai/api-reference/search-public-endpoints Searches the Orbit public endpoint registry for HTTP endpoints and MCP resources. Returns a list of matching resources with metadata and an evaluation guide. ```APIDOC ## POST /v1/search ### Description Searches the Orbit public endpoint registry for HTTP endpoints and MCP resources. Returns a list of matching resources with metadata and an evaluation guide. ### Method POST ### Endpoint https://api.buildwithorbit.ai/v1/search ### Parameters #### Query Parameters - **cursor** (string) - Optional - Cursor for the next page. Absent on the last page. - **limit** (string) - Optional - Maximum number of results to return. #### Request Body - **q** (string) - Required - The search query. ### Request Example { "q": "Get Current Weather" } ### Response #### Success Response (200) - **data** (array) - List of search results. - **id** (string) - Opaque resource identifier of the form `urn:orbit::v1:...` (`` is `endpoint` or `mcp`). Pass it back verbatim to `/v1/integrate`; do not parse or construct it. - **resourceType** (enum) - Kind of resource: `endpoint` for an HTTP endpoint, `mcp` for an MCP. Pass it to `/v1/integrate` as the resource's `type`. Allowed values: `endpoint`, `mcp`. - **name** (string) - Human-readable name of the endpoint. - **description** (string) - What the endpoint does. - **method** (string) - HTTP method used to call the endpoint. Present for `endpoint` results; absent for `mcp` results, which carry `transport` instead. - **transport** (string) - The MCP transport (for example `streamable-http`). Present only for `mcp` results, in place of `method`. - **url** (string) - URL the endpoint is called at. - **evaluateGuide** (string) - Evaluation of the endpoint in three parts: a brief summary, recommended use cases, and unsupported use cases or limitations. - **meta** (object) - Metadata about the search. - **q** (string) - The query that produced these results. - **total** (integer) - Total number of matching results. - **nextCursor** (string) - Cursor for the next page. Absent on the last page. #### Response Example { "data": [ { "id": "urn:orbit:endpoint:v1:1OYrNvmw0qAUVtV7jNU3tC3kuCIFbpjpfGZuyexkHTlZg60P7mpN4cYzSm9XW:weatherapi-com:current-weather-json", "resourceType": "endpoint", "name": "Get Current Weather - OpenWeatherMap", "description": "OpenWeatherMap API provides weather data. This request gets current weather for a city. Replace YOURAPIKEY with your actual API key from openweathermap.org", "method": "GET", "url": "https://api.openweathermap.org/data/2.5/weather?q=London&appid=YOUR_API_KEY", "evaluateGuide": "Retrieves current weather data for a specified city from OpenWeatherMap. An agent can obtain conditions such as temperature and other weather details using the city and API key parameters. Use for: current weather in London, city weather lookup, temperature retrieval Not supported: forecasts, historical weather, weather alerts" } ], "meta": { "q": "Get Current Weather", "total": 1 } } ``` -------------------------------- ### Search request body: Add tracking details Source: https://www.buildwithorbit.ai/openapi.yaml Alternative request body example for the /v1/search endpoint, using a different query string. The q field is required and capped at 512 characters. ```json { "q": "Add tracking details for an existing paypal order" } ``` -------------------------------- ### Integrate Public Endpoints Request Body Source: https://www.buildwithorbit.ai/openapi.yaml Example request body for POST /v1/integrate. It includes a task description and a list of resources, each with an id from /v1/search and a type of "endpoint". Both fields are required for every resource entry. ```json { "task": "Build an app to post current weather to Slack", "resources": [ { "id": "urn:orbit:endpoint:v1:1OYrNvmw0qAUVtV7jNU3tC3kuCIFbpjpfGZuyexkHTlZg60P7mpN4cYzSm9XW:weatherapi-com:current-weather-json", "type": "endpoint" }, { "id": "urn:orbit:endpoint:v1:1Jgb5F43F8b9al2a64G1srYRVxJ3SKnSepsgceU9aKzl1nnJeNHWFxEudTUMG:slack:send-message-to-slack", "type": "endpoint" } ] } ``` -------------------------------- ### Integrate public endpoints with Swift Source: https://www.buildwithorbit.ai/api-reference/integrate-public-endpoints Swift example for integrating public endpoints via the Orbit API. It sends a POST request to https://api.buildwithorbit.ai/v1/integrate with headers including Orbit-Client-Name and Content-Type, and a JSON body containing a task and two endpoint resources. The code uses URLSession to perform the request and prints any error or the HTTP response. ```swift import Foundation let headers = [ "Orbit-Client-Name": "claude", "Content-Type": "application/json" ] let parameters = [ "task": "Build an app to post current weather to slack", "resources": [ [ "id": "urn:orbit:endpoint:v1:1OYrNvmw0qAUVtV7jNU3tC3kuCIFbpjpfGZuyexkHTlZg60P7mpN4cYzSm9XW:weatherapi-com:current-weather-json", "type": "endpoint" ], [ "id": "urn:orbit:endpoint:v1:1Jgb5F43F8b9al2a64G1srYRVxJ3SKnSepsgceU9aKzl1nnJeNHWFxEudTUMG:slack:send-message-to-slack", "type": "endpoint" ] ] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.buildwithorbit.ai/v1/integrate")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` -------------------------------- ### Search request body for 'Add tracking details for an existing paypal order' Source: https://www.buildwithorbit.ai/api-reference/search-public-endpoints Example request body for the search endpoint. The q field is required and capped at 512 characters. No other body fields are accepted; unknown fields return a 400 error. ```json { "q": "Add tracking details for an existing paypal order" } ``` -------------------------------- ### PHP searchPublicEndpoints_example Source: https://www.buildwithorbit.ai/api-reference/search-public-endpoints Uses GuzzleHttp to send a POST request to the search endpoint with a JSON body containing the query. Requires the 'vendor/autoload.php' file and sets the 'Content-Type' and 'Orbit-Client-Name' headers. ```php request('POST', 'https://api.buildwithorbit.ai/v1/search?cursor=eyJmcm9tIjoxMH0%3D&limit=10', [ 'body' => '{ "q": "Get Current Weather" }', 'headers' => [ 'Content-Type' => 'application/json', 'Orbit-Client-Name' => 'claude', ], ]); echo $response->getBody(); ``` -------------------------------- ### POST /v1/integrate Source: https://www.buildwithorbit.ai/openapi.yaml Generates a task brief for integrating selected endpoints to accomplish a given task. Takes a task description and a list of endpoint resources. ```APIDOC ## POST /v1/integrate ### Description Generates a task brief for integrating selected endpoints to accomplish a given task. Takes a task description and a list of endpoint resources. ### Method POST ### Endpoint /v1/integrate ### Parameters #### Header Parameters - **Orbit-Client-Name** (string) - Optional - Name of the client application or agent invoking this tool (e.g. "cursor/composer-2.5", "claude/sonnet-4.6", "codex/gpt-5.6-sol", "vscode"). Used for anonymous usage analytics. Max length: 128. #### Request Body - **task** (string) - Required - What you want to accomplish (max 512 characters). - **resources** (array) - Required - The endpoints to integrate; each is an `id` from `/v1/search` plus its `type` (the result's `resourceType`). Both fields are required, and every `resources` entry needs `id` and `type`. ### Request Example { "task": "Build an app to post current weather to Slack", "resources": [ { "id": "urn:orbit:endpoint:v1:1OYrNvmw0qAUVtV7jNU3tC3kuCIFbpjpfGZuyexkHTlZg60P7mpN4cYzSm9XW:weatherapi-com:current-weather-json", "type": "endpoint" }, { "id": "urn:orbit:endpoint:v1:1Jgb5F43F8b9al2a64G1srYRVxJ3SKnSepsgceU9aKzl1nnJeNHWFxEudTUMG:slack:send-message-to-slack", "type": "endpoint" } ] } ### Response #### Success Response (200) - **data** (object) - Contains a `taskBrief` (object) with authentication requirements, base URLs, request steps, parameters, expected responses, dependencies between steps, and important considerations. #### Response Example { "data": { "taskBrief": { "authentication": "...", "baseUrls": "...", "steps": "...", "parameters": "...", "expectedResponses": "...", "dependencies": "...", "considerations": "..." } } } #### Error Responses - **400** - Bad Request - Invalid input. - **404** - Not Found - All `id`s could not be resolved. - **429** - Too Many Requests - Rate limit exceeded. - **500** - Internal Server Error - Server error. ### Idempotency Integrate is read-only: it generates a task brief from the referenced endpoints and never creates or mutates data, so it is safe to retry. No idempotency key is required. The generated brief's wording may vary between otherwise identical calls. ``` -------------------------------- ### POST /v1/integrate Source: https://www.buildwithorbit.ai/openapi.yaml Generates a task brief for integrating selected resources. The brief includes authentication details, base URL, steps, and gotchas needed to call the selected endpoints. ```APIDOC ## POST /v1/integrate ### Description Generates a task brief for integrating selected resources. The brief includes authentication details, base URL, steps, and gotchas needed to call the selected endpoints. ### Method POST ### Endpoint /v1/integrate ### Parameters #### Request Body - **resources** (array) - Required - List of resources to integrate. - **id** (string) - Required - Resource identifier. - **type** (string) - Required - Resource type: `endpoint` or `mcp`. ### Response #### Success Response (200) - **data** (array) - List of integration results. - **taskBrief** (string) - Multi-line task brief with auth, base URL, steps, and gotchas. #### Response Example ```json { "data": [ { "taskBrief": "string" } ] } ``` ### Error Responses - **400 Bad Request** - Invalid request parameters. - **404 Not Found** - Resource not found. - **429 Too Many Requests** - Rate limit exceeded. - **500 Internal Server Error** - Server error. ``` -------------------------------- ### C# searchPublicEndpoints_example Source: https://www.buildwithorbit.ai/api-reference/search-public-endpoints Uses RestSharp to send a POST request to the search endpoint with a JSON body. Adds the 'Orbit-Client-Name' and 'Content-Type' headers and executes the request. ```csharp using RestSharp; var client = new RestClient("https://api.buildwithorbit.ai/v1/search?cursor=eyJmcm9tIjoxMH0%3D&limit=10"); var request = new RestRequest(Method.POST); request.AddHeader("Orbit-Client-Name", "claude"); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"q\": \"Get Current Weather\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` -------------------------------- ### Swift searchPublicEndpoints_example Source: https://www.buildwithorbit.ai/api-reference/search-public-endpoints Uses URLSession to send a POST request to the search endpoint with a JSON body. Sets the 'Orbit-Client-Name' and 'Content-Type' headers and prints the response or error. ```swift import Foundation let headers = [ "Orbit-Client-Name": "claude", "Content-Type": "application/json" ] let parameters = ["q": "Get Current Weather"] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.buildwithorbit.ai/v1/search?cursor=eyJmcm9tIjoxMH0%3D&limit=10")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` -------------------------------- ### POST /v1/search Source: https://www.buildwithorbit.ai/openapi.yaml Searches for available resources (endpoints or MCPs) based on a query. Returns a list of matching resources with metadata such as name, description, method, transport, URL, and evaluation guide. ```APIDOC ## POST /v1/search ### Description Searches for available resources (endpoints or MCPs) based on a query. Returns a list of matching resources with metadata such as name, description, method, transport, URL, and evaluation guide. ### Method POST ### Endpoint /v1/search ### Parameters #### Request Body - **q** (string) - Required - Description: The search query. ### Request Example { "q": "weather" } ### Response #### Success Response (200) - **data** (array) - Description: List of matching resources. Each item has: - **id** (string) - Opaque resource identifier of the form `urn:orbit::v1:...` (`` is `endpoint` or `mcp`). Pass it back verbatim to `/v1/integrate`; do not parse or construct it. - **resourceType** (string) - Kind of resource: `endpoint` for an HTTP endpoint, `mcp` for an MCP. Pass it to `/v1/integrate` as the resource's `type`. - **name** (string) - Human-readable name of the endpoint. - **description** (string) - What the endpoint does. - **method** (string) - HTTP method used to call the endpoint. Present for `endpoint` results; absent for `mcp` results, which carry `transport` instead. - **transport** (string) - The MCP transport (for example `streamable-http`). Present only for `mcp` results, in place of `method`. - **url** (string) - URL the endpoint is called at. - **evaluateGuide** (string) - Evaluation of the endpoint in three parts: a brief summary, recommended use cases, and unsupported use cases or limitations. - **meta** (object) - Description: Metadata about the search results. - **q** (string) - The query that produced these results. - **total** (integer) - Total number of matching results. - **nextCursor** (string) - Cursor for the next page. Absent on the last page. #### Response Example { "data": [ { "id": "urn:orbit:endpoint:v1:...", "resourceType": "endpoint", "name": "Current Weather", "description": "Get current weather data", "method": "GET", "url": "https://api.weatherapi.com/v1/current.json", "evaluateGuide": "Summary: ... Recommended use cases: ... Unsupported use cases: ..." } ], "meta": { "q": "weather", "total": 1, "nextCursor": "cursor123" } } ``` -------------------------------- ### POST /v1/integrate request body Source: https://www.buildwithorbit.ai/api-reference/integrate-public-endpoints Example request body for the /v1/integrate endpoint. It specifies a task and two resources (endpoints) to integrate: a weather API and Slack. The `type` field must be `endpoint` or `mcp`. ```json { "task": "Build an app to post current weather to slack", "resources": [ { "id": "urn:orbit:endpoint:v1:1OYrNvmw0qAUVtV7jNU3tC3kuCIFbpjpfGZuyexkHTlZg60P7mpN4cYzSm9XW:weatherapi-com:current-weather-json", "type": "endpoint" }, { "id": "urn:orbit:endpoint:v1:1Jgb5F43F8b9al2a64G1srYRVxJ3SKnSepsgceU9aKzl1nnJeNHWFxEudTUMG:slack:send-message-to-slack", "type": "endpoint" } ] } ``` -------------------------------- ### Search request body: Get Current Weather Source: https://www.buildwithorbit.ai/openapi.yaml Request body for the /v1/search endpoint. The q field is required and capped at 512 characters. No other body fields are accepted; unknown fields return a 400 error. ```json { "q": "Get Current Weather" } ``` -------------------------------- ### Search for public API endpoints with cURL Source: https://www.buildwithorbit.ai/docs/get-started/quickstart-guide Use the POST /v1/search endpoint with a plain language query in the 'q' field to get a list of matching API endpoints. The response includes an 'id' and evaluation summary for each endpoint. ```curl curl -X POST https://api.buildwithorbit.ai/v1/search \ -H "Content-Type: application/json" \ -d '{"q": "Get Current Weather"}' ``` -------------------------------- ### POST /v1/search Source: https://www.buildwithorbit.ai/openapi.yaml Search public endpoints by describing your goal in `q`. Returns matching public endpoints and evaluates what each one does, when to use it, and its limitations so the agent can select the best fit. ```APIDOC ## POST /v1/search ### Description Search public endpoints by describing your goal in `q`. Returns matching public endpoints and evaluates what each one does, when to use it, and its limitations so the agent can select the best fit. ### Method POST ### Endpoint /v1/search ### Parameters #### Query Parameters - **limit** (integer) - Optional - Results per page. Default 10, maximum 25. - **cursor** (string) - Optional - Pagination cursor. Pass the `meta.nextCursor` value from the previous response. Omit for the first page. #### Header Parameters - **Orbit-Client-Name** (string) - Optional - Name of the client application or agent invoking this tool (e.g. "cursor/composer-2.5", "claude/sonnet-4.6", "codex/gpt-5.6-sol", "vscode"). Used for anonymous usage analytics. Max length 128. #### Request Body - **q** (string) - Required - Description of the goal. Capped at 512 characters. No other body field is accepted; unknown fields return `400`. ### Request Example ```json { "q": "Get Current Weather" } ``` ### Response #### Success Response (200) - **data** (array) - List of matching resources. Each result carries `id`, `resourceType`, `name`, `description`, `method` (or `transport` for `mcp` results), `url`, and `evaluateGuide`. - **meta** (object) - Carries `q`, `total`, and `nextCursor` (absent on the last page). #### Response Example ```json { "data": [ { "id": "urn:orbit:endpoint:v1:1OYrNvmw0qAUVtV7jNU3tC3kuCIFbpjpfGZuyexkHTlZg60P7mpN4cYzSm9XW:weatherapi-com:current-weather-json", "resourceType": "endpoint", "name": "Get Current Weather - OpenWeatherMap", "description": "OpenWeatherMap API provides weather data. This request gets current weather for a city. Replace YOURAPIKEY with your actual API key from openweathermap.org", "method": "GET", "url": "https://api.openweathermap.org/data/2.5/weather?q=London&appid=YOUR_API_KEY", "evaluateGuide": "Retrieves current weather data for a specified city from OpenWeatherMap. An agent can obtain conditions such as temperature and other weather details using the city and API key parameters. Use for: current weather in London, city weather lookup, temperature retrieval Not supported: forecasts, historical weather, weather alerts" } ], "meta": { "q": "Get Current Weather", "total": 1 } } ``` ### Errors - `400` - Bad Request: invalid input - `429` - Too Many Requests: rate limited - `500` - Internal Server Error ### Idempotency Search is read-only and does not create or mutate data, so it is safe to retry. No idempotency key is required. Responses may still change between calls as the public catalog changes over time. ``` -------------------------------- ### Configure Orbit MCP server in Cursor Source: https://www.buildwithorbit.ai/docs/get-started/quickstart-guide Add this JSON configuration to ~/.cursor/mcp.json for global use, or .cursor/mcp.json inside a project, to enable the Orbit MCP server in Cursor. ```json { "servers": { "orbit": { "url": "https://mcp.buildwithorbit.ai/mcp" } } } ``` -------------------------------- ### POST /integrate Source: https://www.buildwithorbit.ai/api-reference/integrate-public-endpoints This endpoint generates a task brief from the referenced endpoints. It is read-only and safe to retry without an idempotency key. ```APIDOC ## [POST] /integrate ### Description Generates a task brief from the referenced endpoints. This endpoint is read-only and never creates or mutates data, so it is safe to retry. No idempotency key is required. ### Method POST ### Endpoint /integrate ### Parameters #### Headers - **Orbit-Client-Name** (string, optional) - Name of the client application or agent invoking this tool (e.g. "cursor/composer-2.5", "claude/sonnet-4.6", "codex/gpt-5.6-sol", "vscode"). Used for anonymous usage analytics. #### Request Body - **task** (string, required) - The task description. - **resources** (list of V1IntegratePostRequestBodyContentApplicationJsonSchemaResourcesItems, required) - The referenced endpoints. ### Request Example { "task": "string", "resources": [] } ### Response #### Success Response (200) - **data** (list of V1IntegratePostResponsesContentApplicationJsonSchemaDataItems, optional) - The generated task brief data. #### Response Example { "data": [] } ### Errors #### 400 Bad Request Error - **type** (string, optional) - **title** (string, optional) - **detail** (string, optional) - **status** (integer, optional) - **instance** (string, optional) #### 404 Not Found Error - **type** (string, optional) - **title** (string, optional) - **status** (integer, optional) - **detail** (string, optional) - **instance** (string, optional) #### 429 Too Many Requests Error - **type** (string, optional) - **title** (string, optional) - **status** (integer, optional) - **detail** (string, optional) - **instance** (string, optional) #### 500 Internal Server Error - **type** (string, optional) - **title** (string, optional) - **status** (integer, optional) - **detail** (string, optional) - **instance** (string, optional) ``` -------------------------------- ### Integrate a selected API with cURL Source: https://www.buildwithorbit.ai/docs/get-started/quickstart-guide Use the POST /v1/integrate endpoint with a task description and a resources array containing the selected endpoint's 'id' and 'resourceType' as 'type'. The endpoint returns a 'taskBrief' with instructions for using the selected API. ```curl curl -X POST https://api.buildwithorbit.ai/v1/integrate \ -H "Content-Type: application/json" \ -d '{ "task": "Build an app to post current weather to Slack", "resources": [ { "id": "urn:orbit:endpoint:v1:1OYrNvmw0qAUVtV7jNU3tC3kuCIFbpjpfGZuyexkHTlZg60P7mpN4cYzSm9XW:weatherapi-com:current-weather-json", "type": "endpoint" }, { "id": "urn:orbit:endpoint:v1:1Jgb5F43F8b9al2a64G1srYRVxJ3SKnSepsgceU9aKzl1nnJeNHWFxEudTUMG:slack:send-message-to-slack", "type": "endpoint" } ] }' ```