Public endpoints need no key · OpenAPI 3.1 · RFC 9457 errors
ecentic developer documentation.
Everything an agent or an engineer needs to call ecentic: a versioned REST API, an MCP server, typed errors, published rate limits, and the discovery documents that let a crawler find all of it without a human in the loop.
Call ecentic in one request
The public surface is unauthenticated and CORS-open. Start here, then mint a key only when you need to act on a merchant account.
Every public endpoint answers JSON, sends live rate-limit headers, and points back at its own machine-readable description through a Link header.
Discover the surface
One request returns every endpoint, the versioning policy, the rate-limit policy, and where errors are documented.
curl -s https://ecentic.ai/api/v1Read the protocol map
MCP, UCP, ACP, OpenAPI and x402 with their versions, transports, and manifest locations.
curl -s https://ecentic.ai/api/v1/discoveryCheck the plan catalog
The same prices the pricing page quotes, as machine-readable minor units.
curl -s https://ecentic.ai/api/v1/plansAuthentication
Public reads are open. Anything that touches a merchant account takes a bearer key.
ecentic issues long-lived API keys after a human creates an account. Create the account, mint a key from the dashboard or through the authenticated MCP tool `create_api_key`, then send it as a bearer token on every protected call. The key is shown once.
Protected calls without a valid key return HTTP 401 and a `WWW-Authenticate` header naming the Protected Resource Metadata document, so an agent can re-run discovery from the failure itself rather than guessing.
- `mcp` — call MCP tools against the ecentic MCP endpoint
- `onboarding` — connect Shopify, WooCommerce, and product-feed stores
curl -s https://ecentic.ai/api/mcp \
-H "Authorization: Bearer ecentic_sk_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'Endpoints
The versioned REST surface. Paths under /api/v1 are stable for the life of v1.
| Method | Path | Auth | Summary |
|---|---|---|---|
| GET | /api/v1 | Public | Index of the public ecentic agent API. |
| GET | /api/v1/health | Public | Liveness of the ecentic service. |
| GET | /api/v1/discovery | Public | Every machine-readable discovery document ecentic publishes, by protocol. |
| GET | /api/v1/plans | Public | Public ecentic plan catalog with prices and billing mode. |
| GET | /api/v1/skills | Public | Agent skills ecentic publishes, with their SKILL.md locations. |
| POST | /api/mcp | Bearer key | MCP JSON-RPC endpoint (tools/list, tools/call). |
| GET | /api | x402 payment | x402-payable agent API root. |
Agent protocols
ecentic speaks the commerce and tool protocols agents already use, and publishes a manifest for each.
| Protocol | Version | Endpoint | Manifest |
|---|---|---|---|
| Model Context Protocol | 2025-03-26 | /api/mcp | /.well-known/mcp.json |
| Universal Commerce Protocol | 2026-04-08 | /ucp | /.well-known/ucp |
| Agentic Commerce Protocol | 2026-01-30 | /api/acp | /.well-known/acp.json |
| OpenAPI | 3.1.0 | /api/v1 | /openapi.json |
| x402 | 1 | /api | /openapi.json |
Errors, limits, and versions
The three contracts an integration depends on, each documented on its own page and each machine-readable.
Typed errors
Every failure is application/problem+json with a stable machine-readable code and a resolution hint.
Rate limits
Live RateLimit headers on every response and Retry-After on a 429, so an agent can self-throttle.
Versioning
Version in the URL path, with Deprecation and Sunset headers before anything is removed.
MCP server
Claude, ChatGPT, and any MCP client can call ecentic natively.
The ecentic MCP server speaks JSON-RPC 2.0 over HTTP and is reachable at both `/mcp` and `/api/mcp`. Its manifest is published at the conventional well-known path and as a SEP-1649 server card.
Tools that only read (`list_plans`) work unauthenticated. Tools that change account state — creating keys, starting checkout, connecting a store — need a bearer key.
- `list_plans` — plans and their Stripe availability
- `create_api_key` — mint a long-lived agent key
- `create_checkout` — open a Stripe checkout session
- `connect_shopify`, `connect_woocommerce`, `connect_feed` — store onboarding
curl -s https://ecentic.ai/.well-known/mcp.json | jq .transportWebhooks
ecentic receives webhooks; it does not yet deliver them outbound.
Inbound endpoints are signature-verified and reject anything that fails the check before any handler runs. Shopify compliance webhooks verify an HMAC, Stripe verifies its own signature header, and partner endpoints verify a bearer secret.
Outbound webhooks — ecentic notifying your system when a scan finishes or a listing is republished — are not published yet. Poll the REST surface, or subscribe through the MCP session, until they are.
Command line
Script ecentic without writing an HTTP client.
The ecentic CLI wraps the same public surface documented here — discovery, plans, skills, health, and MCP tool calls — so an agent or a developer can shell out instead of building an integration.
It reads `ECENTIC_API_KEY` from the environment for authenticated commands and prints JSON on stdout, so every command composes with `jq`.
npx @ecentic/cli discovery
npx @ecentic/cli plans
ECENTIC_API_KEY=ecentic_sk_... npx @ecentic/cli mcp tools/listEvery document on this page is machine-readable and reachable without a key.
Ready to be the product agents recommend?
Install free on Shopify or WooCommerce and see your AI score in minutes.
© 2026 ecentic. All rights reserved.
Made for merchants who refuse to be invisible to AI.
