# Owl3D Cloud API > Convert a 2D video to side-by-side 3D from your own code. Get a price, upload the file, wait for the job, download the result. Send `Authorization: Bearer ` to `https://api.owl3d.com`. A person creates the key at https://app.owl3d.com/api-keys. Keep the key in the environment variable `OWL3D_API_KEY`, and do not print it. A job spends the plan's monthly credits first, then purchased credits. Trial credits also apply. At most 10 jobs are in progress for all keys of an account. More get `429 concurrency_limit`. `POST /v1/estimates` gives the price and charges nothing. `POST /v1/jobs` reserves the credits, so show the price to the person first. Without ffprobe, use upload first: `POST /v1/jobs` with `filename` and `sizeBytes` and no `estimateId`. The server reads the file after the upload and sets the price. A job that the balance cannot pay waits as `insufficient_credits` for 24 hours: the person adds credits, then `POST /v1/jobs/{id}/resume`, with no new upload. ## Docs - [API docs in Markdown](https://www.owl3d.com/docs/api.md): the whole reference, with upload rules, limits and errors. - [API docs page](https://www.owl3d.com/docs/api): the same text as a web page. ## Scripts - [convert.sh](https://www.owl3d.com/docs/api/convert.sh): Bash. Needs curl, jq and ffprobe. - [convert.py](https://www.owl3d.com/docs/api/convert.py): Python 3.9+. Needs requests and ffprobe. - [convert.mjs](https://www.owl3d.com/docs/api/convert.mjs): Node.js 20+. Needs ffprobe.