overlay: 1.0.0
info:
title: API Evangelist enhancements for the Modal Web Endpoints (Representative) API
version: 1.0.0
x-generated: '2026-09-18'
x-method: generated
x-source: openapi/modal-labs-modal-web-endpoints-representative-api-openapi.yml
x-note: >-
This overlay never mutates the underlying document. It records what API
Evangelist knows about Modal that the representative spec cannot state for
itself — above all that the spec is a SHAPE, not a first-party contract: the
real machine-readable contract is grpc/modal-labs-api.proto, and the concrete
host, routes and schemas of any *.modal.run endpoint are authored by the
developer who deployed it, not by Modal.
actions:
- target: $.info
description: Point the reader at the real contract and the authentication model.
update:
x-real-contract:
type: Protobuf
file: grpc/modal-labs-api.proto
service: modal.client.ModalClient
rpcs: 251
note: >-
Modal's own header on this file reads "direct usage of Modal's gRPC API is
discouraged, and no support or compatibility guarantees are provided. We
recommend using official SDKs instead."
x-authentication:
inbound-proxy-auth:
headers:
- Modal-Key
- Modal-Secret
enforced-by: Modal edge proxy, before user code runs
docs: https://modal.com/docs/guide/webhook-proxy-auth
x-artifacts:
conventions: conventions/modal-labs-conventions.yml
errors: errors/modal-labs-problem-types.yml
authentication: authentication/modal-labs-authentication.yml
lifecycle: lifecycle/modal-labs-lifecycle.yml
- target: $.servers[0]
description: Record that the templated host is authoritative, not a placeholder to be replaced.
update:
x-host-is-templated: true
x-host-note: >-
Modal generates the concrete host from the workspace, app and function
names at deploy time. There is no single production host for this API, and
substituting one would be wrong rather than more specific.
- target: $.paths['/'].post
description: Flag the write surface for agent governance.
update:
x-agentic-access:
action-class: acting
consequence: write
reversibility: >-
Not determinable from this document — the reversal path belongs to the
developer's own application. See conventions/modal-labs-conventions.yml
for the platform-level reversibility Modal itself publishes.
- target: $.paths['/{proxy}'].get
description: Mark the catch-all as developer-owned surface.
update:
x-not-modal-owned: true
x-note: >-
Any route the developer's mounted ASGI/WSGI application exposes is
reachable here. Modal defines the host, not the routes.
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.