Developers
API documentation
There is no conversion endpoint
Available today
One endpoint is live. It exposes the same conversion registry the interface is built from, so you can discover programmatically what this deployment can do.
/api/capabilitiesAvailableReturns every converter and tool, with its source and target formats, size limit, fidelity and availability. Cached aggressively; no authentication required.
curl https://www.filetools360.com/api/capabilities
{
"version": 1,
"counts": { "ready": 521, "unavailable": 23 },
"runtime": { "browser": true, "server": false },
"capabilities": [
{
"slug": "heic-to-jpg",
"kind": "conversion",
"from": "heic",
"to": "jpg",
"category": "image",
"fidelity": "lossy",
"maxBytes": 125829120,
"runtime": "browser",
"status": "ready"
}
]
}Add ?category=image or ?status=unavailable to filter. The unavailableReason field explains, in full, why a listed conversion is not offered.
Planned: server-backed conversion
These are the endpoints a deployment with conversion workers would expose. The shapes are settled; the implementation is not part of this build.
/api/v1/jobsPlannedCreates a conversion job. Returns immediately with a job id — conversion is asynchronous because a large video takes minutes, not milliseconds.
POST /api/v1/jobs
Authorization: Bearer cx_live_...
Content-Type: multipart/form-data
file=@input.mov
conversion=mov-to-mp4
options={"videoPreset":"balanced","resolution":"1080"}
201 Created
{ "id": "job_8f3a...", "status": "queued", "expiresAt": "..." }/api/v1/jobs/:idPlannedPolls job status. Returns queued, running with a progress fraction, done with download URLs, or failed with a structured error using the same taxonomy the interface shows.
/api/v1/webhooksPlannedRegisters a URL to be called when a job finishes, so you do not have to poll. Payloads would be signed so you can verify they came from FileTools360.
Error handling
The error taxonomy is already implemented and used throughout the interface, so an API would inherit it directly. Every failure carries a stable machine-readable code, a message written for a person, and actionable hints:
{
"code": "codec-unsupported",
"message": "This MKV file uses a codec FileTools360 cannot decode.",
"hints": [
"The container is supported but the codec inside it is unusual.",
"Re-export the file as H.264 MP4 and try again."
]
}Codes include too-large, empty-file, corrupt, password-required, no-text-layer, codec-unsupported, out-of-memory and archive-unsafe. They are stable enough to branch on.
Using the converters programmatically today
Since everything runs client-side, the practical integration is to link to a converter page — for example /heic-to-jpg — and let the user drop their file there. That keeps the privacy property intact: their file never reaches your servers either.