# Public contract reference

> Inspect public REST paths, generation tasks, pricing, MCP tools, and machine-readable documentation.

Canonical: https://entirefeed.com/docs/reference

Use the formats below to inspect the same public contracts described throughout these docs.

## Browse reference pages

- [REST API](/docs/reference/rest)
- [Models, tasks, schemas, and pricing](/docs/reference/models)
- [Generation and billing statuses](/docs/reference/statuses)
- [Errors](/docs/reference/errors)
- [Webhooks](/docs/reference/webhooks)
- [Billing](/docs/reference/billing)
- [MCP tools](/docs/reference/mcp)

## Pick the contract format

- Use [`openapi.json`](/openapi.json) for REST paths, request schemas, and response schemas.
- Use the [MCP tool reference](/docs/reference/mcp) for delegated agent tools and their checked input and output schemas.
- Use [`llms.txt`](/llms.txt) for a concise agent navigation index.
- Use [`llms-full.txt`](/llms-full.txt) for one consolidated Markdown document.
- Open any page's raw Markdown variant from its page actions.

These files describe the currently published public API and supported agent tools.

## Public REST API

OpenAPI 3.1.0; 15 public operations from `https://api.entirefeed.com`.

- `GET` `/v1/billing/ledger`: Get Billing Ledger. Auth: Bearer API key. Headers: none. Request: No body. Responses: 200 BillingLedgerListResponse, 400 ApiErrorResponse (invalid_request), 401 ApiErrorResponse (authentication_error), 422 ApiErrorResponse (invalid_request), 429 ApiErrorResponse (rate_limit_exceeded).
- `GET` `/v1/billing/summary`: Get Billing Summary. Auth: Bearer API key. Headers: none. Request: No body. Responses: 200 BillingSummaryResponse, 401 ApiErrorResponse (authentication_error), 429 ApiErrorResponse (rate_limit_exceeded).
- `POST` `/v1/estimate`: Estimate. Auth: Public. Headers: none. Request: EstimateRequest. Responses: 200 EstimateResponse, 400 ApiErrorResponse (invalid_request, task_not_found, task_unavailable, model_required, model_not_allowed, model_not_found, model_unavailable, unsupported_task), 422 ApiErrorResponse (invalid_request), 503 ApiErrorResponse (service_unavailable).
- `GET` `/v1/generations`: List Generations. Auth: Bearer API key. Headers: none. Request: No body. Responses: 200 GenerationListResponse, 401 ApiErrorResponse (authentication_error), 422 ApiErrorResponse (invalid_request), 429 ApiErrorResponse (rate_limit_exceeded).
- `POST` `/v1/generations`: Create. Auth: Bearer API key. Headers: Idempotency-Key optional. Request: GenerationCreateRequest. Responses: 201 GenerationCreateResponse, 400 ApiErrorResponse (invalid_request, task_not_found, task_unavailable, model_required, model_not_allowed, model_not_found, model_unavailable, unsupported_task), 401 ApiErrorResponse (authentication_error), 402 ApiErrorResponse (insufficient_balance), 409 ApiErrorResponse (idempotency_conflict), 422 ApiErrorResponse (invalid_request), 429 ApiErrorResponse (rate_limit_exceeded), 503 ApiErrorResponse (service_unavailable).
- `GET` `/v1/generations/{generation_id}`: Get. Auth: Bearer API key. Headers: none. Request: No body. Responses: 200 GenerationResponse, 401 ApiErrorResponse (authentication_error), 404 ApiErrorResponse (generation_not_found), 422 ApiErrorResponse (invalid_request), 429 ApiErrorResponse (rate_limit_exceeded).
- `POST` `/v1/generations/{generation_id}/cancel`: Cancel. Auth: Bearer API key. Headers: none. Request: No body. Responses: 200 GenerationResponse, 401 ApiErrorResponse (authentication_error), 404 ApiErrorResponse (generation_not_found), 422 ApiErrorResponse (invalid_request), 429 ApiErrorResponse (rate_limit_exceeded), 503 ApiErrorResponse (service_unavailable).
- `POST` `/v1/generations/{generation_id}/retry`: Retry. Auth: Bearer API key. Headers: Idempotency-Key optional. Request: No body. Responses: 201 GenerationCreateResponse, 400 ApiErrorResponse (invalid_request, task_not_found, task_unavailable, model_required, model_not_allowed, model_not_found, model_unavailable, unsupported_task), 401 ApiErrorResponse (authentication_error), 402 ApiErrorResponse (insufficient_balance), 404 ApiErrorResponse (generation_not_found), 409 ApiErrorResponse (active_retry_exists, idempotency_conflict, retry_not_allowed, retry_not_latest), 422 ApiErrorResponse (invalid_request), 429 ApiErrorResponse (rate_limit_exceeded), 503 ApiErrorResponse (service_unavailable).
- `GET` `/v1/models`: List Models. Auth: Public. Headers: none. Request: No body. Responses: 200 PublicModelListResponse, 503 ApiErrorResponse (service_unavailable).
- `GET` `/v1/pricing`: Get Pricing. Auth: Public. Headers: none. Request: No body. Responses: 200 PricingResponse, 503 ApiErrorResponse (service_unavailable).
- `GET` `/v1/tasks`: List Tasks. Auth: Public. Headers: none. Request: No body. Responses: 200 PublicTaskListResponse, 503 ApiErrorResponse (service_unavailable).
- `POST` `/v1/uploads`: Upload Media. Auth: Bearer API key. Headers: none. Request: multipart/form-data field: file. Responses: 201 MediaUploadResponse, 400 ApiErrorResponse (invalid_media_upload), 401 ApiErrorResponse (authentication_error), 408 ApiErrorResponse (media_upload_timeout), 413 ApiErrorResponse (media_upload_too_large), 429 ApiErrorResponse (rate_limit_exceeded), 503 ApiErrorResponse (media_storage_unavailable, service_unavailable).
- `GET` `/v1/webhooks/endpoints`: List Endpoints. Auth: Bearer API key. Headers: none. Request: No body. Responses: 200 WebhookEndpointListResponse, 401 ApiErrorResponse (authentication_error), 429 ApiErrorResponse (rate_limit_exceeded).
- `POST` `/v1/webhooks/endpoints`: Create Endpoint. Auth: Bearer API key. Headers: none. Request: WebhookEndpointCreateRequest. Responses: 200 WebhookEndpointCreateResponse, 400 ApiErrorResponse (invalid_request), 401 ApiErrorResponse (authentication_error), 422 ApiErrorResponse (invalid_request), 429 ApiErrorResponse (rate_limit_exceeded), 503 ApiErrorResponse (service_unavailable).
- `DELETE` `/v1/webhooks/endpoints/{endpoint_id}`: Deactivate Endpoint. Auth: Bearer API key. Headers: none. Request: No body. Responses: 204 no body, 401 ApiErrorResponse (authentication_error), 404 ApiErrorResponse (webhook_endpoint_not_found), 422 ApiErrorResponse (invalid_request), 429 ApiErrorResponse (rate_limit_exceeded).

## Machine-readable artifacts

- [OpenAPI JSON](/openapi.json)
- [Concise agent index](/llms.txt)
- [Complete agent-readable docs](/llms-full.txt)
