Skip to content

API Reference

The Apptonomy REST API is the backend that powers the Apptonomy web app and Figma plugin. It runs on Cloudflare Workers using the Hono framework.

https://api.apptonomy.ai

Requests are authenticated with a Clerk session token — the same short-lived token the signed-in web app holds — passed as a Bearer token:

Terminal window
curl -H "Authorization: Bearer <clerk-session-token>" \
https://api.apptonomy.ai/apptonomy/project

There are no long-lived personal API keys. Some surfaces use their own scheme instead of a session token: the Figma plugin authenticates with a plugin token, public token-based pages (email preferences, unsubscribe) carry a signed token in the request, and inbound webhooks are verified by per-provider signatures.

Most endpoints are product-scoped under a product id, which is apptonomy:

/{productId}/{resource}

The main product-scoped resource groups:

GroupPath baseWhat it covers
Project/apptonomy/projectProjects, listings, audits, competitors
User/apptonomy/userThe signed-in user and preferences
Org/apptonomy/orgOrganizations, members, integrations
ASO/apptonomy/asoAudit runs and ASO analysis
Billing/apptonomy/billingSubscriptions and entitlements
Payment/apptonomy/paymentCheckout and payment flows
Support/apptonomy/supportSupport requests
Plugin/apptonomy/pluginFigma plugin endpoints
AppCheck/apptonomy/appcheckPublic lead-capture audit
Affiliate/apptonomy/affiliateAffiliate tracking, signup, and portal

A handful of endpoints sit at the root (not product-scoped) because they need no product context: /health, /cdn (public string serving), /release-notes, /email-preferences and /unsubscribe (token-based), messaging under /messaging, and /admin (its own authentication).

Apptonomy’s webhook endpoints are inbound — they receive events from external services (Stripe, Clerk, Slack, Linear, Resend) and from OAuth callbacks. Each verifies the sender’s signature. Apptonomy does not currently send outbound webhooks to customer endpoints; audit and publish status are surfaced in the app and by email, not by an outgoing webhook.

This reference is derived from the API’s route definitions. Because the API backs Apptonomy’s own apps and is not a published integration surface, paths, groups, and auth can change between releases without a compatibility guarantee.