# Clari > Clari is an enterprise revenue orchestration platform. It publishes two HTTP APIs and one MCP server: the Clari Revenue API v5 (asynchronous, job-based export and ingest of forecasts, activity, audit events and opportunities), the Clari Copilot REST API (synchronous CRUD over calls, transcripts, scorecards, accounts, contacts and deals), and a first-party remote MCP server that exposes live revenue context to Claude, ChatGPT, Microsoft Copilot and Google Gemini. ## Start here - [Clari developer portal](https://developer.clari.com/): Kong-hosted portal for the Revenue API. JavaScript-rendered; the spec is embedded in the page rather than served as a file. - [Clari Revenue API reference](https://developer.clari.com/documentation/external_spec): the full v5.0.0 OpenAPI, rendered. - [Clari Copilot API documentation](https://api-doc.copilot.clari.com/): ReDoc page for the Copilot REST API. - [Clari Copilot OpenAPI](https://api-doc.copilot.clari.com/spec.yaml): the machine-readable spec, served directly. This is the only Clari OpenAPI available as a plain file download. - [Copilot integration guide](https://community.clari.com/product-q-a-6/how-to-use-copilot-apis-2258): how to get keys and how the endpoints fit together. ## APIs ### Clari Revenue API (v5.0.0, path v4) Base URL: `https://api.clari.com/v4` (the spec uses a templated server `https://api.clari.com/{basePath}` with `basePath` defaulting to `v4`). Auth: `apikey` request header. Partner/ingest endpoints also require a `partnerkey` header. Tokens are created in Account Settings > API Token. The value is shown once. Deactivating a user revokes every token that user created. Bulk export is a three-step asynchronous flow — POST to queue, poll for status until `DONE`, then GET the results. There is no synchronous forecast or activity read. - `POST /export/forecast/{forecastId}` (externalFcwExport) — queue a forecast export. `forecastId` is read out of the browser URL of a Forecast Tab; no API returns it. - `POST /export/activity` — queue an activity export (emails, meetings, files). - `POST /export/audit/events` (exportAuditEvents) — queue an audit-event export. - `GET /export/jobs` (externalFcwExport) — list export jobs. - `GET /export/jobs/{jobId}` (jobStatus) — poll a job. Terminal status is `DONE`. - `PATCH /export/jobs/{jobId}` (updateJob) — modify a queued job. - `GET /export/jobs/{jobId}/results` (externalExportDownload) — retrieve the output. - `GET /audit/events` (listAuditEvents) — paginated audit log. `limit` 1-1000, default 100, cursor via `paginationToken`. - `GET /opportunity` (externalOpportunityResource) — the only synchronous typed read on this API. - `GET /admin/limits` (limits) — current quota consumption. The only programmatic rate-limit signal Clari offers. - `POST /ingest/entity/{entity}` (ingestIncremental) — incremental partner data ingest. - `POST /ingest/bulk/entity/{entity}` (ingestBulk) — bulk ingest. All-or-nothing: one bad record rejects the batch. - `GET /ingest/job/{jobId}` (ingestJobStatus) — poll an ingest job. - `POST /ingest/schema/{entity}/field` (ingestAddPicklist) — register a custom picklist field. - `GET /ingest/schema/{entity}/field` (ingestGetPicklist) — read registered picklist fields. ### Clari Copilot REST API (1.0.0) Base URL: `https://rest-api.copilot.clari.com` Auth: BOTH `X-Api-Key` and `X-Api-Password` headers. Either alone returns 401. Keys are in Workspace Settings > Integrations > Clari Copilot API. Rate limit: 10 requests/second, plus 100,000 requests/week (week starts Sunday 00:00 GMT). Note: the older domain `https://rest-api.trywingman.com` was deprecated with support ending 2023-12-31. - `GET /calls`, `GET /call-details`, `POST /create-call` — calls. `call-details` returns the transcript, summary topics, action items and competitor sentiments. - `GET /users` — workspace users (self-referencing `manager_id` hierarchy). - `GET /topics`, `GET /v2/topics` — conversation topics. Both generations are live. - `GET /scorecard`, `GET /scorecard-template` — coaching scorecards. - `POST /create-account`, `GET /get-account`, `PUT /update-account`, `DELETE /delete-account` - `POST /create-contact`, `GET /get-contact`, `PUT /update-contact`, `DELETE /delete-contact` - `POST /create-deal`, `GET /get-deal`, `PUT /update-deal`, `DELETE /delete-deal` Accounts, contacts and deals are addressed by `crm_id` — the id from the customer's own CRM, not a Clari-issued id. ### Clari MCP Server Endpoint: `https://mcp.clari.com/mcp` (also routed at `https://api.clari.com/mcp`) Transport: remote, streamable HTTP. Not a local stdio package — there is nothing to `npx`. Auth: OAuth 2.0 via Okta (`https://clariciam.okta.com/oauth2/aus13shznanP7WOkp698`), authorization_code + PKCE S256, dynamic client registration at `https://mcp.clari.com/okta/clients`. Scopes: `openid`, `profile`. Gating: a Clari/Salesloft admin must enable it — Copilot Settings > AI Features > "Copilot tools for MCP", or Salesloft Settings > Artificial Intelligence > "Salesloft MCP". Documented capability areas: accounts, deals, people, calls and conversation intelligence, cadences and activity, team metrics, and (rolling out through late summer 2026) forecasting and deal inspection. Raw transcript retrieval was removed from the Claude connector in August 2026. `tools/list` is OAuth-gated, so the live tool names and input schemas are not publicly readable. ## Conventions an agent needs - No idempotency. Neither API supports an `Idempotency-Key` header. Do not blind-retry a POST whose outcome is unknown. - No rate-limit headers. Five operations return 429 and none returns `Retry-After`, `X-RateLimit-*` or `RateLimit-*`. Use blind exponential backoff, or poll `GET /admin/limits`. - Quota exhaustion on export queueing returns **400**, not 429. Read the message. - `428 Precondition Required` on ingest means a required schema field or picklist is not registered. Register it via `POST /ingest/schema/{entity}/field`, then replay. It is not retryable as-is. - Errors are proprietary JSON, not RFC 9457. Revenue API: `{statusCode, reasonPhrase, message, errors[]}`. Copilot: `{errorMessage}`. - Pagination differs by API: `paginationToken` + `limit` on the Revenue API, `nextPage` on Copilot. - No webhooks, no events, no AsyncAPI. Everything asynchronous is poll-based. ## Operations - Status page: https://trust.clari.com (Atlassian Statuspage, component-level, JSON API at https://clari.statuspage.io/api/v2/summary.json) - Release notes: https://community.clari.com/product-updates (monthly, product-wide, not API-scoped) - Support portal: https://clari.my.site.com/customer/s/get-support (customer login required) - Community: https://community.clari.com/ - Support email: support@clari.com — Copilot: copilot-support@clari.com ## Security and compliance - Security: https://www.clari.com/security/ — SOC 2, ISO/IEC 27001, GDPR - Security addendum: https://www.clari.com/security-addendum/ - Privacy: https://www.clari.com/privacy/ - Report a scam: https://www.clari.com/security/report-a-scam/ - No `security.txt` and no published vulnerability-disclosure or bug-bounty program. ## Not published by Clari - No client SDK on npm, PyPI, RubyGems, crates.io, Packagist or Maven. Two Python example scripts are linked from the Copilot docs; that is all. - No CLI. - No GraphQL API. - No sandbox or test-mode credentials. - No public pricing. https://www.clari.com/pricing/ is a "Get a quote" page with no tiers. - No A2A agent card, no security.txt, no OpenID Connect discovery document, no api-catalog.