Fused Server API

The Server API from Fused — 8 operation(s) for server.

Operations 9

GET /server/v1/execution-env/self GET /server/v1/execution-env/self #
PUT /server/v1/files/{fileid} PUT /server/v1/files/upload #
POST /server/v1/realtime/{yourclientid} POST /server/v1/realtime/{yourClientId} #
GET /server/v1/secrets/self/user List secret keys #
POST /server/v1/secrets/self/user POST /server/v1/secrets/self/user #
GET /server/v1/secrets/self/user/{openaiApiKey} Get a secret value #
PUT /server/v1/secrets/self/user/{openaiapikey} PUT /server/v1/secrets/self/user/{openaiApiKey} #
POST /server/v1/session-token/by-access-token/fc_abcdef1234567890 POST /server/v1/session-token/by-access-token/fc_abcdef1234567890 #
POST /server/v1/user/self POST /server/v1/user/self #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/fused:fused-server-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fused-server-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fused Server API
  version: '2026-10-13'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-13: 33 operation(s) read from 7 public documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract; Fused has published no machine-readable contract that the pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 9
    documentation: 24
    pages-with-code: 6
    pages-read: 7
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-13'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://docs.fused.io/guide/data-input-outputs/export-api/tokens-endpoints
  - https://docs.fused.io/rest-api/overview
  - https://docs.fused.io/rest-api/udfs
  - https://docs.fused.io/rest-api/files
  - https://docs.fused.io/rest-api/tokens
  - https://docs.fused.io/rest-api/account
  - https://docs.fused.io/rest-api/secrets
servers:
- url: https://www.fused.io
security:
- bearer: []
tags:
- name: Server
paths:
  /server/v1/execution-env/self:
    get:
      operationId: get_server_v1_execution_env_self
      tags:
      - Server
      summary: GET /server/v1/execution-env/self
      x-source: https://docs.fused.io/rest-api/overview
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -H \"Authorization: Fused-Service-Token $FUSED_SERVICE_ACCOUNT_TOKEN \" \\ \"https://www.fused.io/server/v1/execution-env/self\" \n Reference ​ \n 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 "
  /server/v1/files/{fileid}:
    put:
      operationId: put_server_v1_files_fileid
      tags:
      - Server
      summary: PUT /server/v1/files/upload
      x-source: https://docs.fused.io/rest-api/files
      parameters:
      - name: fileid
        in: path
        required: true
        schema:
          type: string
      - name: path
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X PUT \\ -H \"Authorization: Fused-Service-Token $FUSED_SERVICE_ACCOUNT_TOKEN \" \\ --data-binary @local.parquet \\ \"https://www.fused.io/server/v1/files/upload?path=s3%3A%2F%2Fmy-bucket%2Ffile.parquet\" \n For large files, prefer a signed upload so the bytes go straight to cloud storage. \n Upload to a scratch path ​ \n POST /files/upload-temp \n Scope: environment \n Streams the body to a server-chos"
        collapsed_from: 2 example path(s) differing only at fileId
  /server/v1/realtime/{yourclientid}:
    post:
      operationId: post_server_v1_realtime_yourclientid
      tags:
      - Server
      summary: POST /server/v1/realtime/{yourClientId}
      x-source: https://docs.fused.io/guide/data-input-outputs/export-api/tokens-endpoints
      parameters:
      - name: yourclientid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostServerV1RealtimeYourclientidRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -X ''POST'' \ ''https://www.fused.io/server/v1/realtime/<your-client-id>/api/v1/run/udf'' \ -H ''accept: application/json'' \ -H ''Authorization: Bearer <BEARER_TOKEN_GOES_HERE>'' \ -H ''Content-Type: application/json'' \ -d ''{"step_config":"{\"type\":\"udf\",\"udf\":{\"type\":\"geopandas_v2\",\"name\":\"my_udf\",\"entrypoint\":\"udf\",\"parameters\":{},\"metadata\":{},\"code\":\"@fused.udf\\ndef udf(n'
  /server/v1/secrets/self/user:
    get:
      operationId: get_server_v1_secrets_self_user
      tags:
      - Server
      summary: List secret keys
      x-source: https://docs.fused.io/rest-api/secrets
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetServerV1SecretsSelfUserResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_server_v1_secrets_self_user
      tags:
      - Server
      summary: POST /server/v1/secrets/self/user
      x-source: https://docs.fused.io/rest-api/secrets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostServerV1SecretsSelfUserRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostServerV1SecretsSelfUserResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST \\ -H \"Authorization: Bearer $FUSED_ACCESS_TOKEN \" \\ -H \"Content-Type: application/json\" \\ -d '{\"key\": \"OPENAI_API_KEY\", \"value\": \"sk-...\"}' \\ \"https://www.fused.io/server/v1/secrets/self/user\" \n Returns 201 Created with {\"key\": \"OPENAI_API_KEY\"} . If the key already exists, returns 409 Conflict — use Create or update instead. \n Create or update a secret ​ \n PUT /secrets/self/user/{key"
  /server/v1/secrets/self/user/{openaiApiKey}:
    get:
      operationId: get_server_v1_secrets_self_user_openaiApiKey
      tags:
      - Server
      summary: Get a secret value
      x-source: https://docs.fused.io/rest-api/secrets
      parameters:
      - name: openaiApiKey
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetServerV1SecretsSelfUserOpenaiapikeyResponse'
      x-evidence:
        kind: documentation
  /server/v1/secrets/self/user/{openaiapikey}:
    put:
      operationId: put_server_v1_secrets_self_user_openaiapikey
      tags:
      - Server
      summary: PUT /server/v1/secrets/self/user/{openaiApiKey}
      x-source: https://docs.fused.io/rest-api/secrets
      parameters:
      - name: openaiapikey
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutServerV1SecretsSelfUserOpenaiapikeyRequest'
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutServerV1SecretsSelfUserOpenaiapikeyResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X PUT \\ -H \"Authorization: Bearer $FUSED_ACCESS_TOKEN \" \\ -H \"Content-Type: application/json\" \\ -d '{\"value\": \"sk-new-value\"}' \\ \"https://www.fused.io/server/v1/secrets/self/user/OPENAI_API_KEY\" \n Returns {\"key\": \"OPENAI_API_KEY\"} . \n Delete a secret ​ \n DELETE /secrets/self/user/{key} \n Returns {\"ok\": true} . \n See also ​ \n Secrets management — user secrets vs team secrets, and how they are"
  /server/v1/session-token/by-access-token/fc_abcdef1234567890:
    post:
      operationId: post_server_v1_session_token_by_access_token_fc_abcdef1234567890
      tags:
      - Server
      summary: POST /server/v1/session-token/by-access-token/fc_abcdef1234567890
      x-source: https://docs.fused.io/rest-api/tokens
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostServerV1SessionTokenByAccessTokenFcAbcdef1234567890Reque'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST \\ -H \"Authorization: Fused-Service-Token $FUSED_SERVICE_ACCOUNT_TOKEN \" \\ -H \"Content-Type: application/json\" \\ -d '{\"ttl\": 3600}' \\ \"https://www.fused.io/server/v1/session-token/by-access-token/fc_abcdef1234567890\" \n Response \n Field Type Description token string The canvas token the session token is bound to session_token string The session token to pass as fused_session_token expir"
  /server/v1/user/self:
    post:
      operationId: post_server_v1_user_self
      tags:
      - Server
      summary: POST /server/v1/user/self
      x-source: https://docs.fused.io/rest-api/account
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostServerV1UserSelfRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST \\ -H \"Authorization: Bearer $FUSED_ACCESS_TOKEN \" \\ -H \"Content-Type: application/json\" \\ -d '{\"handle\": \"my-handle\"}' \\ \"https://www.fused.io/server/v1/user/self\" \n Handle changes are validated: \n Status Cause 409 Conflict The handle is already taken, or is reserved 422 Unprocessable Entity The handle is an empty string 401 Unauthorized The request attempted to change a field you may"
components:
  schemas:
    GetServerV1SecretsSelfUserOpenaiapikeyResponse:
      type: object
      properties:
        key:
          type: string
          description: Secret name
        value:
          type: string
          description: Secret value
    PostServerV1UserSelfRequest:
      type: object
      properties:
        handle:
          type: string
    PutServerV1SecretsSelfUserOpenaiapikeyRequest:
      type: object
      properties:
        value:
          type: string
    PostServerV1SecretsSelfUserRequest:
      type: object
      properties:
        key:
          type: string
        value:
          type: string
    PostServerV1RealtimeYourclientidRequest:
      type: object
      properties:
        step_config:
          type: string
        dtype_in:
          type: string
        format:
          type: string
        cache:
          type: boolean
    PutServerV1SecretsSelfUserOpenaiapikeyResponse:
      type: object
      properties:
        key:
          type: string
    GetServerV1SecretsSelfUserResponse:
      type: object
      properties:
        secrets:
          type: array
          description: Array of secret keys
    PostServerV1SessionTokenByAccessTokenFcAbcdef1234567890Reque:
      type: object
      properties:
        ttl:
          type: integer
    PostServerV1SecretsSelfUserResponse:
      type: object
      properties:
        key:
          type: string
  securitySchemes:
    bearer:
      type: http
      scheme: bearer