Account tokens and REST
Create a jt_ token in Account settings → API / MCP, then send it as Authorization: Bearer to a route in the supported routes below. Each route corresponds to an MCP tool. The same scopes, selected products and current roles apply. All other REST operations reject an account token, even if a browser session accompanies it. Existing jk_ Website API behavior is unchanged.
Read analytics
Set JELTO_TOKEN privately, then replace the host, product and date range:
curl --fail-with-body --get 'https://YOUR_JELTO_HOST/api/v1/stats' \
-H "Authorization: Bearer $JELTO_TOKEN" \
--data-urlencode 'product=prd_acmedemo01' \
--data-urlencode 'metric=visitors' \
--data-urlencode 'from=2026-09-01' --data-urlencode 'to=2026-09-07'
Discover metrics and their supported dimensions/filters at /api/v1/stats/catalog?product=YOUR_PRODUCT_ID. Dates use the product timezone unless tz is specified. REST responses retain their usual envelopes, units, retention and suppression states.
Preview and confirm a write
For jt_ requests, omitting the confirmation headers returns a preview without making a change. For example, a token with settings:write may preview a rename:
curl --fail-with-body -X PATCH \
'https://YOUR_JELTO_HOST/api/v1/products/prd_acmedemo01' \
-H "Authorization: Bearer $JELTO_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"name":"My product"}'
After approving the preview, repeat the identical request with these headers:
Jelto-Confirm: true
Idempotency-Key: rename-product-20260909-001
Generate a unique key for each intended change. Identical retries share the recorded result for 24 hours. Reusing a key with different arguments returns 409 idempotency_conflict. 409 outcome_unknown means the result cannot be confirmed: inspect the affected resource before deciding on another action. Do not automatically replace the key and retry, because the change may already have happened. Quota, revision and other current-state checks run when executing.
Completed retry records expire after 24 hours; an old key no longer guarantees protection from a duplicate write. Unresolved outcomes remain blocked for their key and require investigation. See MCP write troubleshooting.
Credentials are returned only on the initial successful creation. A matching retry includes metadata and secret_returned_once, without the secret. If that value was lost, revoke the credential and create a replacement.
Delegate credentials
tokens:write can create tokens with no more scope or product access than the caller. tokens:read lists the caller and its descendants. A token cannot inspect or revoke an unrelated sibling or broader ancestor. Delegation is limited to eight levels. Product-key creation also requires every requested analytics/funnel scope on the account token; it cannot issue payment or crawler intake keys.
Changing a parent's permissions, replacing it or revoking it disables its delegated credentials. All accessible products includes future accessible products and is required for products:write. OAuth always uses explicit product selection and cannot administer credentials.
Token editing and replacement, OAuth connection management, billing changes, provider connections, deletion and raw exports use the dashboard. Token create/list/revoke are the only token-management actions exposed through machine access.
Supported REST routes
Only these methods and paths accept account tokens. The tool reference lists their required scopes and role restrictions. For stats, crawler reports, the catalog and integration status, pass product as a query parameter; other product routes include it in the path.
| MCP tool | REST method and route |
|---|---|
jelto_products_list |
GET /api/v1/products |
jelto_products_get |
GET /api/v1/products/{product} |
jelto_products_create |
POST /api/v1/products |
jelto_products_update |
PATCH /api/v1/products/{product} |
jelto_analytics_catalog |
GET /api/v1/stats/catalog |
jelto_analytics_query |
GET /api/v1/stats |
jelto_analytics_realtime |
GET /api/v1/stats/realtime |
jelto_analytics_goals |
GET /api/v1/stats/goals |
jelto_analytics_search_console |
GET /api/v1/stats/search-console |
jelto_analytics_crawlers |
GET /api/v1/crawls |
jelto_diagnostics_health |
GET /api/v1/stats/health |
jelto_diagnostics_onboarding |
GET /api/v1/products/{product}/onboarding |
jelto_diagnostics_installation |
GET /api/v1/products/{product}/installation |
jelto_diagnostics_proxy |
GET /api/v1/products/{product}/proxy/diagnostics |
jelto_diagnostics_annotations |
GET /api/v1/products/{product}/annotations |
jelto_diagnostics_integrations |
GET /api/v1/mcp/integrations |
jelto_domains_get |
GET /api/v1/products/{product}/domains |
jelto_domains_update |
PUT /api/v1/products/{product}/domains |
jelto_apps_get |
GET /api/v1/products/{product}/apps |
jelto_apps_create |
POST /api/v1/products/{product}/apps |
jelto_events_get |
GET /api/v1/products/{product}/events |
jelto_events_update |
PUT /api/v1/products/{product}/events |
jelto_preferences_get |
GET /api/v1/products/{product}/preferences |
jelto_preferences_update |
PATCH /api/v1/products/{product}/preferences |
jelto_shields_get |
GET /api/v1/products/{product}/shields |
jelto_shields_update |
PUT /api/v1/products/{product}/shields |
jelto_crawlers_get |
GET /api/v1/products/{product}/crawlers |
jelto_crawlers_update |
PATCH /api/v1/products/{product}/crawlers |
jelto_funnels_list |
GET /api/v1/products/{product}/funnels |
jelto_funnels_create |
POST /api/v1/products/{product}/funnels |
jelto_funnels_update |
PUT /api/v1/products/{product}/funnels/{funnel_id} |
jelto_funnels_delete |
DELETE /api/v1/products/{product}/funnels/{funnel_id} |
jelto_team_list |
GET /api/v1/products/{product}/members |
jelto_team_invite |
POST /api/v1/products/{product}/members |
jelto_team_update |
PATCH /api/v1/products/{product}/members/{member} |
jelto_team_remove |
DELETE /api/v1/products/{product}/members/{member} |
jelto_keys_list |
GET /api/v1/products/{product}/keys |
jelto_keys_create |
POST /api/v1/products/{product}/keys |
jelto_keys_revoke |
DELETE /api/v1/products/{product}/keys/{key_id} |
jelto_account_get |
GET /api/v1/mcp/account |
jelto_tokens_list |
GET /api/v1/access-tokens |
jelto_tokens_create |
POST /api/v1/access-tokens |
jelto_tokens_revoke |
DELETE /api/v1/access-tokens/{token_id} |
Scroll horizontally to see more columns on smaller screens.