Read Orb customers, subscriptions, invoices, usage and costs; create or update customers.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Creates a new customer in Orb (additive). Requires name and a valid email. Orb API: POST /customers.
Customer display name (required).
Customer billing email (required, must be a valid email).
ISO-4217 currency code for this customer.
User-defined key/value metadata (string→string).
IANA timezone (e.g. America/New_York).
External payment/invoicing provider.
Id of this customer in the external payment provider.
Your external id for this customer.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Creates a new customer in Orb (additive). Requires name and a valid email. Orb API: POST /customers.
| Argument | Type | Description |
|---|---|---|
| name* | string | Customer display name (required). |
| email* | string | Customer billing email (required, must be a valid email). |
| currency | string | ISO-4217 currency code for this customer. |
| metadata | object | User-defined key/value metadata (string→string). |
| timezone | string | IANA timezone (e.g. America/New_York). |
| payment_provider | string | External payment/invoicing provider. |
| payment_provider_id | string | Id of this customer in the external payment provider. |
| external_customer_id | string | Your external id for this customer. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"email"
],
"properties": {
"name": {
"type": "string",
"description": "Customer display name (required)."
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Customer billing email (required, must be a valid email)."
},
"currency": {
"type": "string",
"description": "ISO-4217 currency code for this customer."
},
"metadata": {
"type": "object",
"description": "User-defined key/value metadata (string→string).",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"timezone": {
"type": "string",
"description": "IANA timezone (e.g. America/New_York)."
},
"payment_provider": {
"enum": [
"quickbooks",
"bill.com",
"stripe_charge",
"stripe_invoice",
"netsuite",
"adyen"
],
"type": "string",
"description": "External payment/invoicing provider."
},
"payment_provider_id": {
"type": "string",
"description": "Id of this customer in the external payment provider."
},
"external_customer_id": {
"type": "string",
"description": "Your external id for this customer."
}
}
}Fetch a single customer by Orb customer id. Orb API: GET /customers/{customer_id}.
| Argument | Type | Description |
|---|---|---|
| customer_id* | string | Orb customer id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"customer_id": {
"type": "string",
"description": "Orb customer id."
}
}
}Fetch a single customer by your external customer id. Orb API: GET /customers/external_customer_id/{external_customer_id}.
| Argument | Type | Description |
|---|---|---|
| external_customer_id* | string | Your external customer id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"external_customer_id"
],
"properties": {
"external_customer_id": {
"type": "string",
"description": "Your external customer id."
}
}
}Get costs incurred by a customer over a timeframe. Orb API: GET /customers/{customer_id}/costs.
| Argument | Type | Description |
|---|---|---|
| group_by | string | Price grouping key to break costs down by. |
| view_mode | string | periodic or cumulative. |
| customer_id* | string | Orb customer id. |
| timeframe_end | string | ISO-8601 datetime, exclusive end. |
| timeframe_start | string | ISO-8601 datetime, inclusive start. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"group_by": {
"type": "string",
"description": "Price grouping key to break costs down by."
},
"view_mode": {
"enum": [
"periodic",
"cumulative"
],
"type": "string",
"description": "periodic or cumulative."
},
"customer_id": {
"type": "string",
"description": "Orb customer id."
},
"timeframe_end": {
"type": "string",
"description": "ISO-8601 datetime, exclusive end."
},
"timeframe_start": {
"type": "string",
"description": "ISO-8601 datetime, inclusive start."
}
}
}Get a customer's credit balances by currency. Orb API: GET /customers/{customer_id}/credits.
| Argument | Type | Description |
|---|---|---|
| currency | string | Filter to a single currency. |
| customer_id* | string | Orb customer id. |
| include_all_blocks | boolean | Include expired/depleted blocks too. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"currency": {
"type": "string",
"description": "Filter to a single currency."
},
"customer_id": {
"type": "string",
"description": "Orb customer id."
},
"include_all_blocks": {
"type": "boolean",
"description": "Include expired/depleted blocks too."
}
}
}Get the append-only credit ledger for a customer. Orb API: GET /customers/{customer_id}/credits/ledger.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max items to return (1–100, default 20). |
| cursor | string | Opaque pagination cursor (from pagination_metadata.next_cursor). |
| currency | string | Filter to a single currency. |
| entry_type | string | Filter to a ledger entry type (e.g. increment, decrement, expiration_change). |
| customer_id* | string | Orb customer id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max items to return (1–100, default 20)."
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor (from pagination_metadata.next_cursor)."
},
"currency": {
"type": "string",
"description": "Filter to a single currency."
},
"entry_type": {
"type": "string",
"description": "Filter to a ledger entry type (e.g. increment, decrement, expiration_change)."
},
"customer_id": {
"type": "string",
"description": "Orb customer id."
}
}
}Fetch a single invoice by id. Orb API: GET /invoices/{invoice_id}.
| Argument | Type | Description |
|---|---|---|
| invoice_id* | string | Orb invoice id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"invoice_id"
],
"properties": {
"invoice_id": {
"type": "string",
"description": "Orb invoice id."
}
}
}Fetch a single item by id. Orb API: GET /items/{item_id}.
| Argument | Type | Description |
|---|---|---|
| item_id* | string | Orb item id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"item_id"
],
"properties": {
"item_id": {
"type": "string",
"description": "Orb item id."
}
}
}Fetch a single plan by id. Orb API: GET /plans/{plan_id}.
| Argument | Type | Description |
|---|---|---|
| plan_id* | string | Orb plan id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"plan_id"
],
"properties": {
"plan_id": {
"type": "string",
"description": "Orb plan id."
}
}
}Fetch a single price by id. Orb API: GET /prices/{price_id}.
| Argument | Type | Description |
|---|---|---|
| price_id* | string | Orb price id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"price_id"
],
"properties": {
"price_id": {
"type": "string",
"description": "Orb price id."
}
}
}Fetch a single subscription by id. Orb API: GET /subscriptions/{subscription_id}.
| Argument | Type | Description |
|---|---|---|
| subscription_id* | string | Orb subscription id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"subscription_id"
],
"properties": {
"subscription_id": {
"type": "string",
"description": "Orb subscription id."
}
}
}Get costs for a subscription over a timeframe. Orb API: GET /subscriptions/{subscription_id}/costs.
| Argument | Type | Description |
|---|---|---|
| group_by | string | Price grouping key to break costs down by. |
| view_mode | string | periodic or cumulative. |
| timeframe_end | string | ISO-8601 datetime, exclusive end. |
| subscription_id* | string | Orb subscription id. |
| timeframe_start | string | ISO-8601 datetime, inclusive start. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"subscription_id"
],
"properties": {
"group_by": {
"type": "string",
"description": "Price grouping key to break costs down by."
},
"view_mode": {
"enum": [
"periodic",
"cumulative"
],
"type": "string",
"description": "periodic or cumulative."
},
"timeframe_end": {
"type": "string",
"description": "ISO-8601 datetime, exclusive end."
},
"subscription_id": {
"type": "string",
"description": "Orb subscription id."
},
"timeframe_start": {
"type": "string",
"description": "ISO-8601 datetime, inclusive start."
}
}
}Get the plan-change schedule for a subscription. Orb API: GET /subscriptions/{subscription_id}/schedule.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max items to return (1–100, default 20). |
| cursor | string | Opaque pagination cursor (from pagination_metadata.next_cursor). |
| subscription_id* | string | Orb subscription id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"subscription_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max items to return (1–100, default 20)."
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor (from pagination_metadata.next_cursor)."
},
"subscription_id": {
"type": "string",
"description": "Orb subscription id."
}
}
}Get metered usage for a subscription over a timeframe. Orb API: GET /subscriptions/{subscription_id}/usage.
| Argument | Type | Description |
|---|---|---|
| group_by | string | Property to group usage by. |
| granularity | string | Time granularity for buckets (e.g. day). |
| timeframe_end | string | ISO-8601 datetime, exclusive end. |
| subscription_id* | string | Orb subscription id. |
| timeframe_start | string | ISO-8601 datetime, inclusive start. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"subscription_id"
],
"properties": {
"group_by": {
"type": "string",
"description": "Property to group usage by."
},
"granularity": {
"type": "string",
"description": "Time granularity for buckets (e.g. day)."
},
"timeframe_end": {
"type": "string",
"description": "ISO-8601 datetime, exclusive end."
},
"subscription_id": {
"type": "string",
"description": "Orb subscription id."
},
"timeframe_start": {
"type": "string",
"description": "ISO-8601 datetime, inclusive start."
}
}
}Preview the upcoming (draft) invoice for a subscription. Orb API: GET /invoices/upcoming.
| Argument | Type | Description |
|---|---|---|
| subscription_id* | string | Orb subscription id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"subscription_id"
],
"properties": {
"subscription_id": {
"type": "string",
"description": "Orb subscription id."
}
}
}List usage/spend alerts, optionally filtered by customer or subscription. Orb API: GET /alerts.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max items to return (1–100, default 20). |
| cursor | string | Opaque pagination cursor (from pagination_metadata.next_cursor). |
| customer_id | string | Filter to an Orb customer id. |
| subscription_id | string | Filter to a subscription id. |
| external_customer_id | string | Filter to your external customer id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max items to return (1–100, default 20)."
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor (from pagination_metadata.next_cursor)."
},
"customer_id": {
"type": "string",
"description": "Filter to an Orb customer id."
},
"subscription_id": {
"type": "string",
"description": "Filter to a subscription id."
},
"external_customer_id": {
"type": "string",
"description": "Filter to your external customer id."
}
}
}List coupons in the Orb account. Orb API: GET /coupons.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max items to return (1–100, default 20). |
| cursor | string | Opaque pagination cursor (from pagination_metadata.next_cursor). |
| show_archived | boolean | Include archived coupons. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max items to return (1–100, default 20)."
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor (from pagination_metadata.next_cursor)."
},
"show_archived": {
"type": "boolean",
"description": "Include archived coupons."
}
}
}List customers in the Orb account. Orb API: GET /customers.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max items to return (1–100, default 20). |
| cursor | string | Opaque pagination cursor (from pagination_metadata.next_cursor). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max items to return (1–100, default 20)."
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor (from pagination_metadata.next_cursor)."
}
}
}List invoices, optionally filtered by customer, subscription, or status. Orb API: GET /invoices.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max items to return (1–100, default 20). |
| cursor | string | Opaque pagination cursor (from pagination_metadata.next_cursor). |
| status | string | Filter by invoice status (e.g. draft, issued, paid, void). |
| due_date | string | ISO-8601 date filter. |
| date_type | string | Which date `due_date` filters on (e.g. due_date, invoice_date). |
| customer_id | string | Filter to an Orb customer id. |
| subscription_id | string | Filter to a subscription id. |
| external_customer_id | string | Filter to your external customer id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max items to return (1–100, default 20)."
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor (from pagination_metadata.next_cursor)."
},
"status": {
"type": "string",
"description": "Filter by invoice status (e.g. draft, issued, paid, void)."
},
"due_date": {
"type": "string",
"description": "ISO-8601 date filter."
},
"date_type": {
"type": "string",
"description": "Which date `due_date` filters on (e.g. due_date, invoice_date)."
},
"customer_id": {
"type": "string",
"description": "Filter to an Orb customer id."
},
"subscription_id": {
"type": "string",
"description": "Filter to a subscription id."
},
"external_customer_id": {
"type": "string",
"description": "Filter to your external customer id."
}
}
}List items (the things you bill for). Orb API: GET /items.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max items to return (1–100, default 20). |
| cursor | string | Opaque pagination cursor (from pagination_metadata.next_cursor). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max items to return (1–100, default 20)."
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor (from pagination_metadata.next_cursor)."
}
}
}List billable metrics configured in the Orb account. Orb API: GET /metrics.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max items to return (1–100, default 20). |
| cursor | string | Opaque pagination cursor (from pagination_metadata.next_cursor). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max items to return (1–100, default 20)."
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor (from pagination_metadata.next_cursor)."
}
}
}List plans configured in the Orb account. Orb API: GET /plans.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max items to return (1–100, default 20). |
| cursor | string | Opaque pagination cursor (from pagination_metadata.next_cursor). |
| status | string | Filter by plan status. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max items to return (1–100, default 20)."
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor (from pagination_metadata.next_cursor)."
},
"status": {
"enum": [
"active",
"archived",
"draft"
],
"type": "string",
"description": "Filter by plan status."
}
}
}List prices configured in the Orb account. Orb API: GET /prices.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max items to return (1–100, default 20). |
| cursor | string | Opaque pagination cursor (from pagination_metadata.next_cursor). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max items to return (1–100, default 20)."
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor (from pagination_metadata.next_cursor)."
}
}
}List subscriptions, optionally filtered by customer or status. Orb API: GET /subscriptions.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max items to return (1–100, default 20). |
| cursor | string | Opaque pagination cursor (from pagination_metadata.next_cursor). |
| status | string | Filter by subscription status. |
| customer_id | string | Filter to an Orb customer id. |
| external_customer_id | string | Filter to your external customer id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max items to return (1–100, default 20)."
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor (from pagination_metadata.next_cursor)."
},
"status": {
"enum": [
"active",
"ended",
"upcoming"
],
"type": "string",
"description": "Filter by subscription status."
},
"customer_id": {
"type": "string",
"description": "Filter to an Orb customer id."
},
"external_customer_id": {
"type": "string",
"description": "Filter to your external customer id."
}
}
}Health and auth check — verifies the API key works. Orb API: GET /ping.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Updates an existing customer's details (reversible). Only provided fields are changed. Orb API: PUT /customers/{customer_id}.
| Argument | Type | Description |
|---|---|---|
| name | string | New display name. |
| string | New billing email (must be a valid email). | |
| currency | string | New ISO-4217 currency code. |
| metadata | object | User-defined key/value metadata (string→string). |
| timezone | string | New IANA timezone. |
| customer_id* | string | Orb customer id (required). |
| payment_provider | string | External payment/invoicing provider. |
| payment_provider_id | string | New id in the external payment provider. |
| external_customer_id | string | New external id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"name": {
"type": "string",
"description": "New display name."
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "New billing email (must be a valid email)."
},
"currency": {
"type": "string",
"description": "New ISO-4217 currency code."
},
"metadata": {
"type": "object",
"description": "User-defined key/value metadata (string→string).",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"timezone": {
"type": "string",
"description": "New IANA timezone."
},
"customer_id": {
"type": "string",
"description": "Orb customer id (required)."
},
"payment_provider": {
"enum": [
"quickbooks",
"bill.com",
"stripe_charge",
"stripe_invoice",
"netsuite",
"adyen"
],
"type": "string",
"description": "External payment/invoicing provider."
},
"payment_provider_id": {
"type": "string",
"description": "New id in the external payment provider."
},
"external_customer_id": {
"type": "string",
"description": "New external id."
}
}
}