API specs
Moveat APIs are currently internal product APIs. They are not designed as a public third-party integration surface. This page explains what APIs exist, who consumes them and how to think about their contracts.The exact live request and response schemas live in Platform Swagger. This page explains API ownership and behavior at a higher level for product, operations and engineering readers.
API surfaces
Platform public API
Platform public APIs support the web app. They should be stable, user-oriented and safe to call from the browser. Main groups:Public API rules
- The authenticated user ID must come from the session, not from request bodies.
- Unit conversion should happen in Platform, not in the frontend.
- Public APIs should avoid leaking internal implementation details.
- Responses should be shaped for the consumer that renders them.
- Errors should include enough context to debug with logs and correlation IDs.
Platform internal API for Agent
Internal APIs exist so Agent can delegate business actions to Platform without touching the database. Main groups:Internal API rules
- Internal APIs require the platform internal service token.
- Internal write APIs should be idempotent when triggered by webhooks.
- Agent should use source message IDs as idempotency keys whenever possible.
- Agent should not cache business facts as durable truth.
- Platform must validate the final business payload even when Agent already interpreted it.
Agent API
Agent is mostly a receiver and orchestrator. It exposes endpoints for channel providers and infrastructure. Expected endpoints include:
Agent should keep channel-specific code inside channel adapters. Business logic should live in orchestration and should call Platform for durable actions.
OpenAPI and Swagger strategy
Platform already exposes Swagger docs for live inspection. The next documentation improvement is to export the OpenAPI JSON into this docs repository so Mintlify can generate an API reference section automatically. Recommended approach:- Keep Swagger in Platform as the live contract source.
- Export public OpenAPI to
openapi/platform-public.json. - Export internal Agent OpenAPI to
openapi/platform-agent.json. - Reference both specs in
docs.jsonunder an API Reference section. - Keep high-level explanations in MDX pages like this one.
What should not be exposed publicly
The following should stay internal:- Internal service token details.
- Agent-only endpoints.
- Raw infrastructure credentials.
- Database connection strings.
- Private operational dashboards.
- Any endpoint that allows cross-user access without a user session boundary.
