# Echo Labs > Build with the Ave API: order captions, upload media, track jobs, and download results with our API guides and reference. ## API guides Ave API base URL: https://api.el.ai/v1. Use workspace bearer API keys from the dashboard. - [Quickstart](https://docs.el.ai/api/quickstart/llms.txt): Upload media, order captions, and download the result. - [Authentication](https://docs.el.ai/api/authentication/llms.txt): Create a workspace key and authenticate requests. - [Job lifecycle](https://docs.el.ai/api/jobs/llms.txt): Track jobs, handle cancellations, and download captions. - [Webhooks](https://docs.el.ai/api/webhooks/llms.txt): Receive and verify job completion events. - [Errors and retries](https://docs.el.ai/api/errors/llms.txt): Handle failures and retry without duplicate orders. - [Limits and billing](https://docs.el.ai/api/limits/llms.txt): Media support, request allowances, and job charges. ## API reference - [Reference overview](https://docs.el.ai/api/reference/llms.txt) - [OpenAPI 3 spec (JSON)](https://docs.el.ai/openapi.json): the full contract; generate a client from it - [GET /jobs](https://docs.el.ai/api/jobs/list-jobs/llms.txt): List workspace API jobs, newest first - [POST /jobs](https://docs.el.ai/api/jobs/create-job/llms.txt): Order captions - [GET /jobs/{id}](https://docs.el.ai/api/jobs/get-job/llms.txt): Get job status, cost, and caption links - [GET /jobs/{id}/captions](https://docs.el.ai/api/jobs/get-captions/llms.txt): Download the latest caption revision - [POST /uploads](https://docs.el.ai/api/uploads/create-upload/llms.txt): Reserve an upload; PUT raw file bytes to the returned URL - [GET /account](https://docs.el.ai/api/account/get-account/llms.txt): Get workspace, key permissions, and billing balance - [POST {webhook_url}](https://docs.el.ai/api/webhooks/job-outcome/llms.txt): Job completed or cancelled