API

Developer Documentation

Integrate file conversion into your applications with the ConvertX REST API and official SDKs.

Base URL:https://goconvertfile.com

Getting Started

1. Get an API Key

API keys are available on the Pro and Business plans. Once subscribed, go to your account settings to generate a key. Keys use the format gcf_live_<64hex>.

2. Authenticate

Pass your API key in the Authorization header as a Bearer token:Authorization: Bearer gcf_live_<your_64_hex_key>

3. Make Your First API Call

Upload a file, create a conversion job, and poll for the result:

curl -X POST https://goconvertfile.com/api/uploads/presign \
  -H "Authorization: Bearer gcf_live_..." \
  -F "file=@document.pdf"

SDK Installation

Node.js

@convertx/sdk-node

npm install @convertx/sdk-node

Python

convertx-sdk

pip install convertx-sdk

Quick Start

Upload & Convert

Upload a file then create a conversion job

curl -X POST https://goconvertfile.com/api/jobs \
  -H "Authorization: Bearer gcf_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "fileKey": "uploads/1700000000-document.pdf",
    "sourceFormat": "pdf",
    "targetFormat": "docx",
    "category": "DOCUMENT"
  }'

Check Job Status

Poll or stream job status updates

curl https://goconvertfile.com/api/jobs/job_abc123 \
  -H "Authorization: Bearer gcf_live_..."

List Jobs

View your recent conversion jobs

curl https://goconvertfile.com/api/jobs?limit=10 \
  -H "Authorization: Bearer gcf_live_..."

Create API Key

Generate a new API key programmatically

curl -X POST https://goconvertfile.com/api/api-keys \
  -H "Authorization: Bearer gcf_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "name": "My Dev Key" }'

API Reference

POST/api/uploads/presign

Upload a file for conversion. Accepts multipart/form-data with a file field. Returns a fileKey for use in job creation.

Auth:

Bearer token or Turnstile (anonymous)

Request:

multipart/form-data with "file" field

Response:

{ success, uploadUrl, fileKey, publicUrl, expiresIn, category, format }

POST/api/download-url

Download a file from a remote URL and prepare it for conversion.

Auth:

Bearer token or Turnstile (anonymous)

Request:

{ "url", "sourceFormat", "turnstileToken" }

Response:

{ success, fileKey }

POST/api/jobs

Create a conversion job. After uploading or downloading a file, submit this to start processing.

Auth:

Bearer token or Turnstile (anonymous)

Request:

{ "fileKey", "sourceFormat", "targetFormat", "category", "options"? }

Response:

{ success, jobId, status }

GET/api/jobs/:id

Get the current status and result of a conversion job.

Auth:

Bearer token

Request:

—

Response:

{ success, job: { id, sourceFormat, targetFormat, category, status, resultUrl, errorMessage, createdAt, completedAt } }

GET/api/jobs/:id/stream

SSE endpoint that streams job status updates until completion or failure.

Auth:

None (public)

Request:

—

Response:

text/event-stream with JSON status updates

GET/api/jobs

List recent jobs for the authenticated user.

Auth:

Bearer token

Request:

—

Response:

{ success, jobs: Job[] }

POST/api/api-keys

Create a new API key with the given name and optional permissions.

Auth:

Bearer token

Request:

{ "name", "permissions"? }

Response:

{ success, apiKey: { id, prefix, fullKey } }

GET/api/api-keys

List all active API keys for the authenticated user.

Auth:

Bearer token

Request:

—

Response:

{ success, keys: ApiKey[] }

DELETE/api/api-keys/:id

Revoke an API key by its ID.

Auth:

Bearer token

Request:

—

Response:

{ success }

GET/api/files/:fileKey

Download a converted or uploaded file by its file key.

Auth:

None (public)

Request:

—

Response:

Binary file with Content-Disposition header

Rate Limiting

All endpoints are rate-limited per API key and IP address. Limits vary by endpoint and plan:

EndpointFree / AnonymousPro / Business
POST /api/uploads/presign10 req / 60s60 req / 60s
POST /api/jobs20 req / 60s120 req / 60s
GET /api/jobs60 req / 60s300 req / 60s
GET /api/files/:fileKey120 req / 60s600 req / 60s

Pricing

Free

For occasional use

$0
  • ✓ Up to 100MB files
  • ✓ Basic formats (100+)
  • ✓ 5 conversions / day
  • ✗ API access
Most Popular

Pro

For daily drivers

$7.99/month
  • ✓ Up to 500MB files
  • ✓ All formats (400+)
  • ✓ 500 credits / month
  • ✓ API access
  • ✓ Priority processing
  • ✓ Email support
Best for Teams

Business

For teams

$19.99/month
  • ✓ Up to 2GB files
  • ✓ 2,000 credits / month
  • ✓ Higher API limits
  • ✓ Team management
  • ✓ Dedicated support
  • ✓ 99.9% SLA
View full pricing details →

Error Codes

StatusCodeDescription
400BAD_REQUESTMissing or invalid parameters
401UNAUTHORIZEDInvalid or missing API key
402PAYMENT_REQUIREDInsufficient credits
404NOT_FOUNDJob or API key not found
429RATE_LIMITEDRate limit exceeded or daily conversion cap reached
500SERVER_ERRORInternal server error

File Expiration

Uploaded and converted files are automatically deleted after 24 hours. A cleanup process runs periodically to remove expired files from storage.

Converted files are stored in temporary storage. Download your results before they expire. Each job response includes a resultUrl field for downloading.