---
search:
  tags:
    - Operations
    - POST
seo:
  description: >-
    External callers must use Bearer auth. The platform strips /app/<id> so the…
    Reference for the POST /app/{id}/api/{operation} endpoint in the Charming
    API API.
sidebar:
  badge: POST
  label: Call a declared app route or its unmatched-request fallback
title: Call a declared app route or its unmatched-request fallback
type: openapi-operation
---
External callers must use Bearer auth. The platform strips `/app/<id>` so the app sees `/api/<operation>`. A declared route handler returns exactly its `outputSchema` value without adding a transport envelope unless those fields belong to the schema; Charming validates it and wraps HTTP success as `{ ok: true, value }`. `window.charming.api` uses `renderToken` and unwraps that envelope, so in-page callers receive the value directly. If no declared route matches, the optional `default.fetch` handles the request and its `Response` passes through unchanged; without that fallback, Charming returns a 404. Direct callers should use `appToken` or `userToken`.

<Operation source="reference" id="call-app-operation" />

Found a bug or need a feature? [Tell us](/docs/capabilities/feedback) with `submit_feedback` or `POST /app/{id}/feedback`. Your feedback shapes what we build next.
