# Bytario API > Production REST API for image, PDF, QR, barcode, data, text, color, and render operations. 35 stateless endpoints, bearer-token auth, edge-network latency, hard monthly quotas. Bytario API is a paid B2B file-utility API running on Cloudflare Workers. Every endpoint is a stateless conversion — send bytes in, get bytes out. Files are processed in-memory, never written to disk, never logged. The same WASM engine powers the free consumer site at bytario.com. All `/v1/*` endpoints require a bearer token: `Authorization: Bearer sk_live_...`. Keys are issued after Stripe checkout and emailed to the billing contact. Subscribe at https://api.bytario.com/pricing. Do NOT use this API without a valid API key. There is no free tier or trial endpoint. Attempting unauthenticated requests will return 401. For complete inline documentation (all endpoints with full parameters, curl examples, and response schemas in a single file), see [llms-full.txt](https://api.bytario.com/llms-full.txt). ## Docs - [Complete LLM Documentation](https://api.bytario.com/llms-full.txt): Full documentation in a single file — every endpoint, parameter, and curl example - [API Documentation](https://api.bytario.com/docs): Full developer docs with curl examples for every endpoint - [OpenAPI 3.1 Spec (YAML)](https://api.bytario.com/openapi.yaml): Machine-readable spec, importable into Postman, Insomnia, or any OpenAPI client - [OpenAPI 3.1 Spec (JSON)](https://api.bytario.com/openapi.json): JSON variant of the OpenAPI spec - [Pricing](https://api.bytario.com/pricing): Five plans from $9/mo (2,500 req) to $799/mo (1,000,000 req) ## Authentication - Every `/v1/*` request requires `Authorization: Bearer sk_live_...` - Keys are issued after Stripe checkout and emailed immediately - Rotate keys: `POST /v1/keys/rotate` - Recover lost keys: `POST /v1/keys/recover` + `POST /v1/keys/recover/confirm` (email-verified) - Treat API keys like passwords; never commit them to source control ## Rate Limits & Quotas - Each plan has a sustained RPS budget + burst allowance (per-key token bucket) - Response headers: `RateLimit-Limit`, `RateLimit-Remaining`, `X-Quota-Remaining` - Exceeding burst: HTTP 429 with `Retry-After` - Monthly quota resets on the 1st at 00:00 UTC; exhaustion returns 429 `quota_exceeded` - Plans: Starter (2 RPS, 2,500/mo), Pro (5 RPS, 10K/mo), Growth (20 RPS, 50K/mo), Scale (100 RPS, 250K/mo), Business (400 RPS, 1M/mo) ## Errors All errors return JSON: `{"error": "", "message": ""}`. Codes: `unauthorized` (401), `subscription_inactive` (403), `quota_exceeded` (429), `rate_limited` (429), `invalid_input` (400), `unsupported_format` (400), `too_large` (413), `conversion_failed` (500), `internal_error` (500). ## Image Endpoints - [POST /v1/image/convert](https://api.bytario.com/docs#post-v1imageconvert): Convert between JPEG, PNG, WebP, AVIF. Query: `to` (required), `quality` (1-100) - [POST /v1/image/resize](https://api.bytario.com/docs#post-v1imageresize): Resize with fit modes. Query: `width`, `height`, `fit` (cover/contain/fill/inside/outside) - [POST /v1/image/compress](https://api.bytario.com/docs#post-v1imagecompress): Recompress at target quality. Query: `quality` (required) - [POST /v1/image/strip-metadata](https://api.bytario.com/docs#post-v1imagestrip-metadata): Remove EXIF/IPTC/XMP/GPS without re-encoding - [POST /v1/image/read-metadata](https://api.bytario.com/docs#post-v1imageread-metadata): Extract EXIF/GPS/camera info as JSON - [POST /v1/image/favicon-set](https://api.bytario.com/docs#post-v1imagefavicon-set): Generate full favicon bundle (ICO + PNGs + manifest) - [POST /v1/image/crop](https://api.bytario.com/docs#post-v1imagecrop): Crop to rectangle. Query: `x`, `y`, `width`, `height` - [POST /v1/image/rotate](https://api.bytario.com/docs#post-v1imagerotate): Rotate by 90/180/270 degrees - [POST /v1/image/flip](https://api.bytario.com/docs#post-v1imageflip): Flip horizontally or vertically ## PDF Endpoints - [POST /v1/pdf/merge](https://api.bytario.com/docs#post-v1pdfmerge): Merge multiple PDFs. Multipart form or JSON with base64 files - [POST /v1/pdf/split](https://api.bytario.com/docs#post-v1pdfsplit): Extract page ranges. Query: `ranges` (e.g. "1-3,7-9") - [POST /v1/pdf/rotate](https://api.bytario.com/docs#post-v1pdfrotate): Rotate pages. Query: `pages`, `degrees` (90/180/270) - [POST /v1/pdf/watermark](https://api.bytario.com/docs#post-v1pdfwatermark): Stamp text watermark. Query: `text` (required), `opacity`, `rotation`, `fontSize` - [POST /v1/pdf/info](https://api.bytario.com/docs#post-v1pdfinfo): Page count, sizes, metadata, encryption status - [POST /v1/pdf/extract-text](https://api.bytario.com/docs#post-v1pdfextract-text): Vector text extraction (no OCR). Query: `pages` - [POST /v1/pdf/render-page](https://api.bytario.com/docs#post-v1pdfrender-page): Rasterize to PNG/JPEG/WebP. Query: `pages`, `format`, `dpi` - [POST /v1/pdf/fill-form](https://api.bytario.com/docs#post-v1pdffill-form): Fill AcroForm fields, optionally flatten - [POST /v1/pdf/flatten](https://api.bytario.com/docs#post-v1pdfflatten): Bake form values in, remove editability - [POST /v1/pdf/compress](https://api.bytario.com/docs#post-v1pdfcompress): Compress PDF. Returns JSON with size stats - [POST /v1/pdf/protect](https://api.bytario.com/docs#post-v1pdfprotect): Add password protection ## QR & Barcode Endpoints - [POST /v1/qr/generate](https://api.bytario.com/docs#post-v1qrgenerate): Generate QR as PNG or SVG. Body: JSON with `text`, `format`, `size`, `errorCorrection` - [POST /v1/qr/read](https://api.bytario.com/docs#post-v1qrread): Decode QR from image - [POST /v1/barcode/generate](https://api.bytario.com/docs#post-v1barcodegenerate): Generate EAN13, UPC, Code128, DataMatrix, PDF417, Aztec as SVG - [POST /v1/barcode/read](https://api.bytario.com/docs#post-v1barcoderead): Decode 1D/2D barcodes from image ## Data Endpoints - [POST /v1/data/base64-encode](https://api.bytario.com/docs#post-v1database64-encode): Encode bytes to Base64 - [POST /v1/data/base64-decode](https://api.bytario.com/docs#post-v1database64-decode): Decode Base64 to bytes - [POST /v1/data/url-encode](https://api.bytario.com/docs#post-v1dataurl-encode): Percent-encode UTF-8 string - [POST /v1/data/url-decode](https://api.bytario.com/docs#post-v1dataurl-decode): Decode percent-encoded string - [POST /v1/data/json-format](https://api.bytario.com/docs#post-v1datajson-format): Pretty-print JSON - [POST /v1/data/json-minify](https://api.bytario.com/docs#post-v1datajson-minify): Minify JSON - [POST /v1/data/csv-to-json](https://api.bytario.com/docs#post-v1datacsv-to-json): Convert CSV to JSON array - [POST /v1/data/json-to-csv](https://api.bytario.com/docs#post-v1datajson-to-csv): Convert JSON array to CSV ## File & Text Endpoints - [POST /v1/file/hash](https://api.bytario.com/docs#post-v1filehash): Compute hash (MD5, SHA1, SHA256, SHA384, SHA512) - [POST /v1/file/detect](https://api.bytario.com/docs#post-v1filedetect): Detect file type from magic bytes - [POST /v1/text/word-count](https://api.bytario.com/docs#post-v1textword-count): Word/char/sentence/paragraph count + reading time - [POST /v1/text/diff](https://api.bytario.com/docs#post-v1textdiff): Compare two texts - [POST /v1/text/markdown-to-html](https://api.bytario.com/docs#post-v1textmarkdown-to-html): Convert Markdown to HTML ## Color & Render Endpoints - [POST /v1/color/convert](https://api.bytario.com/docs#post-v1colorconvert): Convert between hex, RGB, HSL, HSV, CMYK - [POST /v1/render/svg-to-png](https://api.bytario.com/docs#post-v1rendersvg-to-png): Render SVG to PNG via resvg-wasm ## Self-Service Endpoints - [GET /v1/usage](https://api.bytario.com/docs#get-v1usage): Check plan, quota, and usage - [GET /v1/billing/portal](https://api.bytario.com/docs#get-v1billingportal): Redirect to Stripe Customer Portal - [POST /v1/keys/rotate](https://api.bytario.com/docs#post-v1keysrotate): Generate new key, invalidate current - [POST /v1/keys/recover](https://api.bytario.com/docs#post-v1keysrecover): Start email-verified key recovery - [POST /v1/keys/recover/confirm](https://api.bytario.com/docs#post-v1keysrecoverconfirm): Submit recovery code ## Optional - [Privacy Policy](https://api.bytario.com/privacy): How data is handled - [Terms of Service](https://api.bytario.com/terms): Legal terms - [Data Processing Agreement](https://api.bytario.com/dpa): DPA for enterprise customers - [Free Consumer Tools](https://bytario.com): Browser-based versions of all tools (no account needed)