# ADR-007 — API Design ## Status Accepted for V1. ## Context The frontend must be API-driven and Codex must not invent inconsistent response shapes. ## Decision Use REST-style FastAPI endpoints with typed Pydantic schemas. Responses use stable envelopes for long-running jobs and direct resources for simple CRUD operations. Errors use a common structure: ```json { "error": { "code": "DATASET_NOT_FOUND", "message": "Dataset not found.", "details": {} } } ``` ## Consequences Frontend API clients, tests, and docs stay consistent. ## Non-goals No GraphQL in V1.