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

# Ontraport API

Jentic publishes the only available OpenAPI specification for Ontraport API, keeping it validated and agent-ready. Ontraport is a marketing-automation platform aimed at small and mid-sized businesses, combining contact management, campaigns, sales pipelines, e-commerce, and email marketing in a single product. The API exposes a generic objects model that can read and write contacts, products, orders, and other CRM records via /objects, alongside specialised endpoints for tagging, subscribing, and processing payments. It uses two paired API key headers (Api-Key and Api-Appid) and is the right surface for any integration that needs to keep an external system in sync with an Ontraport account.

## For AI agents

Read and write contacts, tags, products, and transactions in Ontraport using paired Api-Key and Api-Appid headers.

## Scope

Does not handle landing-page hosting, ad management, or full PCI card vaulting - use for marketing-automation and CRM record management in Ontraport only.

## Capabilities

- Read, create, update, and delete generic Ontraport objects via /objects
- Save or update objects in a single call with `/objects/saveorupdate` to avoid duplicates
- Tag, subscribe, or unsubscribe contacts in bulk with the dedicated subobject endpoints
- Inspect object metadata at `/objects/meta` to discover field schemas at runtime
- Process a manual transaction or collect a credit card via the specialised transaction endpoints
- Authenticate every call with the paired Api-Key and Api-Appid headers issued in the Ontraport admin

## Use cases

### Lead capture from website to Ontraport

Marketing teams capture leads on their website and need them landing in Ontraport with the right tags so the campaign engine can pick them up. The `/objects/saveorupdate` endpoint handles the de-duplication step that lead-capture forms always need, and `/objects/tag` attaches the campaign tag in a follow-up call. Most lead capture integrations are wired up in a few hours.

Example prompt: POST `/objects/saveorupdate` with the contact's email and name, then PUT `/objects/tag` to attach the lead-source tag.

### E-commerce order sync

Stores running on a separate platform need every paid order reflected in Ontraport so customer-lifecycle campaigns can fire correctly. The /objects endpoints support reading and writing order, product, and contact records, and the `/transaction/processManual` endpoint records the payment when the store collects it elsewhere. This pattern lets Ontraport remain the source of truth for customer marketing without owning the storefront.

Example prompt: POST /objects to create the order, then POST `/transaction/processManual` to record the payment against the contact.

### Tag-based segmentation and re-engagement

Lifecycle marketing teams use tags to drive re-engagement sequences, win-backs, and lapsed-customer flows. The PUT `/objects/tag` and POST `/objects/subscribe` endpoints let an external system, such as a data warehouse or product event stream, push tags and sequence subscriptions into Ontraport in batch. This keeps the segmentation logic in the warehouse where it can be tested, rather than embedded in Ontraport rules.

Example prompt: List inactive contacts in the warehouse, then PUT `/objects/tag` with a 'win-back-2026' tag for each batch.

### AI agent CRM operations through Jentic

An AI marketing assistant can update contacts, tag segments, and queue sequences in Ontraport through Jentic. The agent searches Jentic for the contact or tag operation, loads the schema, and submits the call without ever holding the paired Api-Key and Api-Appid. This is especially useful for multi-tenant agencies that act on behalf of many Ontraport accounts.

Example prompt: Search Jentic for 'ontraport tag contact', load the PUT `/objects/tag` operation, and execute it for a contact id with a chosen tag id.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/objects` | Read objects of a given type |
| POST | `/objects` | Create a new object |
| POST | `/objects/saveorupdate` | Upsert an object, used for lead capture |
| PUT | `/objects/tag` | Add a tag to one or more objects |
| POST | `/objects/subscribe` | Subscribe contacts to a sequence or list |
| GET | `/objects/meta` | Read object field metadata |
| POST | `/transaction/processManual` | Record a manual transaction |

## Key resources

- **Objects (generic)** — CRUD on any Ontraport object type via /objects with object_type_id
- **Contacts** — Specialised contact lookup at /Contacts
- **Object metadata** — Field schemas exposed via `/objects/meta` for runtime discovery
- **Tags and Subscriptions** — `/objects/tag` and `/objects/subscribe` for segmentation and sequencing
- **Transactions** — Manual transaction processing and credit card collection

## Why Jentic

- **Setup:** Wiring the Ontraport API by hand means sending both the API-key header and app-id headers on every call and handling its object-type conventions yourself. Through Jentic you install once, import the Ontraport API from the API Directory, store the API key and app id once, and your agent calls it.
- **Permission scoping:** Ontraport addresses records by object type in the request body rather than a resource id in the URL path, so limit the agent to the operations it needs, such as reading objects, upserting a contact, or subscribing contacts to a sequence. You credit the agent only with the operations you allow, so deletions stay out unless you add them.
- **Credential handling:** Your Ontraport API key and app id are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'add a tag to a contact' or 'upsert a lead', and Jentic returns the matching Ontraport operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **HubSpot CRM Contacts** — Larger CRM and marketing platform with deeper sales, ticketing, and reporting features
- **Mailchimp Marketing API** — Email-led marketing platform with audiences and automations
- **Stripe API** — Charge cards in production while Ontraport holds the customer and campaign record

## FAQ

### Why is there no official OpenAPI spec for Ontraport API?

Ontraport publishes its API as HTML at api.ontraport.com/doc but does not ship a maintained OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Ontraport via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Ontraport API use?

Ontraport uses two paired API key headers: Api-Key and Api-Appid, both generated in the Ontraport admin. Every request must include both. Through Jentic, both values are stored in the vault and injected at execution time, which prevents the pair from being split or leaked through logs.

### How do I read or update contacts with this API?

Use the generic /objects endpoint with the contact object_type_id, or the dedicated /Contacts shortcut for read access. POST `/objects/saveorupdate` is the right call for lead capture because it handles the de-duplication step that every form integration needs. Field schemas are discoverable at `/objects/meta.`

### What are the rate limits for the Ontraport API?

Ontraport does not publish a global rate limit in its OpenAPI spec. The platform applies per-account throttling and signals it through 429 responses, so integrations should back off on Retry-After. Bulk operations are best run as paginated /objects calls rather than per-record loops.

### How do I tag contacts through Jentic?

Install the SDK with 'pip install jentic', search for the operation with the query 'ontraport tag contact', then load the PUT `/objects/tag` operation, and execute it with the contact's object id and the tag id. Jentic handles both the Api-Key and Api-Appid headers transparently.

### Can I process a payment with this API?

Yes. POST `/CreditCard/collect` captures card details against a contact and POST `/transaction/processManual` records the payment. These are the right surfaces when the store or membership flow lives outside Ontraport but the customer record and lifecycle marketing must stay aligned with the order.

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

Yes. Because you run Jentic One yourself, your own rules decide which Ontraport operations the agent may call and which stored credentials it may use. Ontraport addresses records by object type in the request body rather than a resource id in the URL, so you grant only the operations the agent needs, such as reading objects with GET /objects, upserting a contact with POST `/objects/saveorupdate`, adding a tag with PUT `/objects/tag`, or subscribing a contact with POST `/objects/subscribe.` Anything you do not allow, including deletes through /objects, stays out of the agent's reach.
