canonical: https://jentic.com/apis/outseta.com/outseta

# Outseta API

Outseta is an all-in-one business platform combining CRM, subscription billing, authentication, and email marketing for SaaS and membership businesses. The API provides endpoints for managing CRM people and accounts, deals, subscription plans, subscriptions, invoices, email lists, and list subscriptions. Use it to sync customer data across systems, automate subscription lifecycle events, manage deal pipelines, integrate authentication with external apps, and programmatically manage email marketing lists.

## For AI agents

Manage Outseta CRM contacts, accounts, deals, subscriptions, billing, and email lists for SaaS and membership business automation.

## Scope

Does not process payments directly (relies on integrated payment gateways), send marketing emails (use Outseta UI), or handle advanced revenue recognition - use for CRM, subscription management, and list automation only.

## Capabilities

- Create, read, update, and list CRM people (contacts) and accounts (companies)
- Manage deals and sales pipeline in the CRM
- List subscription billing plans and retrieve plan details
- Create, read, update, and cancel subscriptions programmatically
- Retrieve invoices for billing and reporting
- List email marketing lists and manage list subscriptions
- Add or remove subscribers from email lists
- Query resources with pagination using offset and limit
- Integrate customer authentication and user provisioning

## Use cases

### Subscription Lifecycle Automation

Automate subscription creation, updates, and cancellations based on customer actions or external triggers. POST `/billing/subscriptions` creates a new subscription tied to a plan and person, PUT `/billing/subscriptions/{uid}` updates subscription parameters (plan, quantity, billing cycle), and DELETE cancels a subscription. Integrate with product onboarding flows, payment gateways, or customer success platforms to provision access, upgrade plans, or handle churn programmatically without manual admin tasks.

Example prompt: POST `/billing/subscriptions` with person_id and plan_id to create a subscription, then PUT `/billing/subscriptions/{uid}` to upgrade or downgrade, or DELETE to cancel on churn.

### CRM and Customer Data Sync

Keep Outseta CRM synchronized with external systems like marketing automation, support tools, or data warehouses. POST `/crm/people` creates contacts, POST `/crm/accounts` creates company records, and POST `/crm/deals` tracks sales opportunities. Bidirectional sync ensures customer data stays consistent across platforms - new leads from marketing flow into Outseta, deal closures trigger subscription provisioning, and CRM updates propagate to analytics tools.

Example prompt: POST `/crm/people` with contact details, POST `/crm/accounts` with company info, and POST `/crm/deals` to track pipeline. Query with GET to sync data back to external systems.

### Billing and Invoice Reporting

Retrieve billing plan details and invoice data for financial reporting, revenue recognition, or customer account reviews. GET `/billing/plans` lists all available subscription plans, GET `/billing/subscriptions` retrieves active subscriptions with plan and pricing details, and GET `/billing/invoices` returns invoice history. Integrate with accounting systems, dashboards, or customer portals to display billing information, track MRR, or automate invoice delivery.

Example prompt: GET `/billing/plans` for plan catalog, GET `/billing/subscriptions` for active subscription list, and GET `/billing/invoices` for invoice history. Aggregate data for MRR dashboards or export to accounting tools.

### Email List Management and Segmentation

Programmatically manage email marketing lists and subscriber enrollment. GET `/email/lists` retrieves all lists, POST `/email/lists/{uid}/subscriptions` adds a person to a list, and DELETE removes them. Use this to segment customers by plan tier, lifecycle stage, or engagement level, then sync segments to Outseta email lists for targeted campaigns. Automate list updates based on CRM status changes, subscription events, or product usage signals.

Example prompt: GET `/email/lists` to find the target list, then POST `/email/lists/{uid}/subscriptions` with person_id to add subscribers. Trigger list updates based on subscription or CRM events.

### AI Agent for Business Operations

Let an AI agent handle Outseta admin tasks - creating contacts, managing subscriptions, updating deals, and adding subscribers to email lists. Through Jentic, the agent searches by intent ('create an Outseta subscription') and loads only the required endpoints. API keys are injected at execution time, keeping credentials out of agent context.

Example prompt: Use the Jentic search query 'create an Outseta subscription' to find POST `/billing/subscriptions`, load its schema, and execute with person_id and plan_id provided by the user.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/crm/people` | Create a new contact |
| POST | `/crm/accounts` | Create a new account |
| POST | `/crm/deals` | Create a new deal |
| GET | `/billing/plans` | List all subscription plans |
| POST | `/billing/subscriptions` | Create a new subscription |
| GET | `/billing/invoices` | List invoices |
| POST | `/email/lists/{uid}/subscriptions` | Add a subscriber to an email list |

## Key resources

- **CRM People** — Contact records in the CRM (individuals)
- **CRM Accounts** — Company or organizational records in the CRM
- **CRM Deals** — Sales opportunities and pipeline stages
- **Billing Plans** — Subscription plan catalog with pricing and features
- **Subscriptions** — Active and historical subscription records tied to people and plans
- **Invoices** — Billing invoices for subscriptions and one-time charges
- **Email Lists** — Email marketing list definitions
- **Email List Subscriptions** — Subscriber enrollment in email lists

## Why Jentic

- **Setup:** Wiring Outseta by hand means carrying its bearer token and resolving your own subdomain into the host, since the base URL is https://{subdomain}.outseta.com/api/v1. Through Jentic you install once, import the Outseta API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Outseta puts the email list id in the URL path (`/email/lists/{uid}/subscriptions`), so a rule can pin list subscription work to one list, while CRM and billing creates take their target in the body and are scoped by operation. You choose the operations the agent may call, so it only creates the people, accounts, deals, or subscriptions you allow.
- **Credential handling:** Your Outseta API token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create an Outseta subscription' or 'add a contact to an email list', and Jentic returns the matching Outseta operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Stripe API** — Stripe handles payment processing while Outseta provides CRM, billing, and authentication in one platform.
- **Recurly API** — Recurly's subscription billing and recurring-revenue platform, an alternative to Outseta for managing plans, invoicing, and payments.

## FAQ

### What authentication does the Outseta API use?

The API uses API key authentication passed in request headers. Through Jentic, API keys are stored encrypted and injected at execution time, keeping them out of agent prompts and transcripts.

### Can I create and manage subscriptions programmatically?

Yes. POST `/billing/subscriptions` creates a new subscription, PUT `/billing/subscriptions/{uid}` updates it, and DELETE cancels it. This allows full subscription lifecycle automation.

### How do I sync CRM data with external systems?

Use POST `/crm/people` and POST `/crm/accounts` to create records in Outseta, then use GET endpoints with pagination to query data for syncing back to external systems. Webhooks (if available) can push updates in real time.

### Can I add contacts to email lists via the API?

Yes. POST `/email/lists/{uid}/subscriptions` adds a person to an email list. Use GET `/email/lists` to find the list UID first.

### Is the Outseta API free?

API access is included with Outseta subscriptions. Pricing is based on plan tier (Starter, Growth, Pro) and not API usage volume.

### What is the base URL format for the Outseta API?

The base URL is https://{subdomain}.outseta.com/api/v1, where {subdomain} is your Outseta account subdomain (e.g., yourcompany.outseta.com).

### Can I limit what my agent is allowed to do with the Outseta API?

Yes. Because you self-host Jentic One, your own rules decide which Outseta operations and credentials the agent may use. Since Outseta puts the email list id in the URL path (`/email/lists/{uid}/subscriptions`), a rule can pin list-subscription work to a single list, while CRM and billing creates take their target in the body and are scoped by operation. You choose the operations the agent can call, so it only creates the people, accounts, deals, or subscriptions you allow.
