# REST API reference

> Inspect media generation, billing, and webhook methods, authentication requirements, and response contracts.

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

The generated operation list below covers media generation, billing, and webhook methods from the public OpenAPI document. Use [`openapi.json`](/openapi.json) for the complete public contract.

## 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)
