REST API Overview
The Fused platform API is an HTTP API. Everything the Python SDK and Workbench do goes through it, so any language that can make an HTTP request can create UDFs, run jobs, manage files, and automate Fused.
For the conceptual introduction — including the separate udf.ai endpoints for calling shared UDFs — see REST API in the Guide.
Base URL
https://www.fused.io/server/v1
Every path in this reference is relative to that base URL. Requests and responses are JSON unless noted otherwise.
Authentication
Pass credentials in the Authorization header. Two schemes are available:
Authorization: Bearer <access_token>
Authorization: Fused-Service-Token <service_account_token>
Bearer— a personal access token that acts as you. Retrieve one from an authenticated SDK session withfused.api.access_token().Fused-Service-Token— a long-lived machine credential that acts as your team's environment. See Service Accounts.
Endpoint scopes
Each endpoint accepts one or both credential types. This reference labels every endpoint with its scope:
| Scope | Accepts | Notes |
|---|---|---|
| User | Bearer only | Acts on resources owned by the signed-in user. A service account token is rejected. |
| Environment | Bearer or Fused-Service-Token | Acts on your team's execution environment. Suitable for automation. |
| User or environment | Bearer or Fused-Service-Token | Resolves to whichever identity you present. |
| By token | No header — the token in the path | Authorization is carried by the canvas or UDF token in the URL. |
| Public or authorized | Either, or none | Public resources are readable with no credentials; reaching private ones requires them. |
| Public | None | No credentials required. |
"Environment" is your team's execution environment — the container for your team's UDFs, files, and quota. A service account token always resolves to an environment, never to an individual user, which is why user-scoped endpoints reject it.
Errors
The API uses standard HTTP status codes:
| Status | Meaning |
|---|---|
401 Unauthorized | Missing, malformed, or expired credentials |
403 Forbidden | Authenticated, but not allowed to access this resource — including presenting a service account token to a user-scoped endpoint |
404 Not Found | Resource does not exist, or you cannot see it |
422 Unprocessable Entity | Request validation failed, or UDF execution failed |
Validation errors return a detail array identifying each offending field:
{
"detail": [
{
"loc": ["body", "name"],
"msg": "Field required",
"type": "missing"
}
]
}
Other errors return a detail string.
Example request
curl -H "Authorization: Fused-Service-Token $FUSED_SERVICE_ACCOUNT_TOKEN" \
"https://www.fused.io/server/v1/execution-env/self"
Reference
| Section | Covers |
|---|---|
| UDFs | Creating, reading, updating, and deleting UDFs |
| Canvases | Canvases, sharing, and TOML import/export |
| Running UDFs | Executing UDFs by token, as tiles, or ad hoc |
| Batch jobs | Submitting long-running jobs, status, results, and logs |
| Files | Cloud file storage: list, upload, download, signed URLs |
| Environment | Execution environment, usage, and service accounts |
| Scheduled UDFs | Cron schedules for UDFs |
| Secrets | User secrets |
| Session tokens | Minting and revoking session tokens |
| Account | The signed-in user |