ApikeeApikeeDocs
Core concepts

Endpoint registry

Understand the Apikee endpoint registry, including route discovery, scope mapping, documentation, and usage analytics.

An endpoint is a record of one route in one environment — GET /v1/users. It is what your generated docs, the developer portal and the per-route usage breakdown are built from.

Endpoints are descriptive, not enforcing. Registering a route does not restrict anything; scopes do that in your code.

Auto-registration

In server mode the SDKs register routes as they see traffic. Each process registers a given route once and caches it, so this costs one request per route per boot, off the response path.

// Enabled by default; turn it off if you prefer to declare routes explicitly.
new Apikee({ autoRegisterEndpoints: false })

Auto-registration learns only the method and the path. That gets you a complete route list with no work, but it cannot know what a route does or which scopes it needs.

Describing a route

Supplying the rest is what makes your docs and the AI assistant accurate rather than merely complete. Call it once at startup, next to your route definitions.

apikee.describeEndpoint('GET', '/v1/users', {
  description: "List users in the caller's tenant.",
  scopes: ['read:users'],
  tags: ['users'],
})
FieldPurpose
nameDisplay name. Defaults to METHOD /path.
descriptionOne or two sentences. Shown in docs and the portal.
scopesScopes a caller needs. Documentation, not enforcement.
tagsGrouping in generated docs.
deprecatedMarks the route as deprecated.
request / responseJSON Schema fragment or example object.

Every field is optional, and none of this is sent to any third party — it goes to your own instance.

Addressing

Endpoints are addressed as METHOD:::/path, URL-encoded in a path segment:

GET:::/v1/users
GET:::/v1/users/{id}
curl "https://apikee.example.com/api/v1/endpoint/GET%3A%3A%3A%2Fv1%2Fusers?project_env=payments-api-production" \
  -H "x-api-key: apikee_..."

A route is unique per (environment, path, method). Registering the same one twice is a no-op rather than an error.

Path parameters

Use the template form, not a concrete value, so all calls to a route aggregate into one record:

/v1/users/{id}      ✓
/v1/users/42        ✗ — creates a record per user

Managing them by hand

Everything above is also available over REST and in the dashboard, where you can bulk-import from an OpenAPI document or paste routes in.

On this page