janction-jp Files API

The Files API from janction-jp — 7 operation(s) for files.

Operations 7

POST /v1/files Upload a scene #
GET /v1/files/lookup Find an earlier upload by sha256 #
GET /v1/files/{file_id} Scene details #
POST /v1/files/url Upload File From Url #
POST /v1/files/{file_id}/assets Add companion files to a scene #
POST /v1/files/{file_id}/manifest Scene Manifest #
POST /v1/files/{file_id}/assets/urls Add assets by URL or Poly Haven id #

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/janction-jp:janction-jp-files-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

janction-jp-files-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: JANCTION Render Files API
  description: 'JANCTION Render is a cloud GPU render farm for Blender that AI agents call as an MCP server or HTTP API: .blend, bpy scripts and 3D files (glTF/FBX/USD/OBJ) in, frames or an MP4 out, on JANCTION NVIDIA GPUs. No key yet? POST /v1/try renders a first preview and returns a key. Flow: POST /v1/keys -> POST /v1/files -> POST /v1/estimate -> POST /v1/jobs -> GET /v1/jobs/{id} -> GET /v1/jobs/{id}/artifacts/{name}. The same service is an MCP server at /mcp. Human guide: /blender-render-api. Agent guide: /llms.txt.'
  version: 0.4.211
  x-limits:
  - id: frames_per_call
    value: 3000
    unit: frames
    applies_to:
    - render_final
    - POST /v1/jobs
    - POST /v1/estimate
    alternative: split the range into several calls of up to 3,000 frames (frame_start / frame_end)
  - id: frames_per_part
    value: 240
    unit: frames
    applies_to:
    - render_final
    - POST /v1/jobs
    alternative: 'nothing to do: a final longer than 240 frames runs as parts under one job id and comes back as one video'
  - id: resolution_free_time
    value: 2073600
    unit: pixels_per_frame
    applies_to:
    - render_final
    - POST /v1/jobs
    alternative: buy any credit to open 3840x2160, or render at 1920x1080 and upscale
    display: 1920x1080
  - id: resolution_prepaid_credit
    value: 8294400
    unit: pixels_per_frame
    applies_to:
    - render_final
    - POST /v1/jobs
    alternative: 'no larger frame is offered: render the shot as several cameras or crops and join them'
    display: 3840x2160
  - id: preview_resolution
    value: 921600
    unit: pixels_per_frame
    applies_to:
    - render_preview
    - render_review
    alternative: previews are scaled down to this size; use render_final for the full size
    display: 1280x720
  - id: preview_frames
    value: 4
    unit: frames
    applies_to:
    - render_preview
    alternative: use render_final with a frame range for more frames
  - id: job_gpu_time
    value: 36000
    unit: gpu_seconds
    applies_to:
    - render_final
    - POST /v1/jobs
    alternative: split the frames over several jobs, or lower samples / resolution (render_estimate tells the time first)
  - id: upload_one_request
    value: 100
    unit: MB
    applies_to:
    - POST /v1/files
    - https://render.janction.jp/upload form
    alternative: 'larger files: the CLI and the local (stdio) MCP send them in resumable parts (POST /v1/uploads), the https://render.janction.jp/upload page does the same in a browser, or pass a public https link as scene_url'
  - id: upload_by_link
    value: 512
    unit: MB
    applies_to:
    - scene_url
    - POST /v1/files/url
    alternative: put the file on the https://render.janction.jp/upload page (resumable parts) instead
  - id: asset_size
    value: 128
    unit: MB
    applies_to:
    - assets
    - asset_urls
    - POST /v1/files/{id}/assets
    alternative: lower the texture resolution, compress it, or pack it into the .blend
  - id: script_size
    value: 2
    unit: MB
    applies_to:
    - scene_script
    - .py scenes
    alternative: 'keep data out of the script: send it as assets or build the scene into a .blend'
  - id: remote_mcp_local_files
    value: false
    unit: boolean
    applies_to:
    - remote MCP (Claude.ai, ChatGPT and other connectors)
    alternative: 'a remote MCP server cannot read files on the user''s computer: the user drops the file on https://render.janction.jp/upload and passes the link it shows as scene_url, or uses the CLI, the local (stdio) MCP server or the Blender add-on'
  - id: upload_link_lifetime
    value: 12
    unit: hours
    applies_to:
    - https://render.janction.jp/upload links
    alternative: use the link within this time (a job that uses it keeps the scene); upload again after it expires
  - id: files_kept
    value: 24
    unit: hours_after_last_use
    applies_to:
    - scenes
    - results
    - download links
    alternative: download the results before then; a key that has paid 500 JPY or more in total keeps them 7 days (normally); asking for the job again gives fresh links while the files are kept
  - id: blend_resumable_upload
    value: 1024
    unit: MB
    applies_to:
    - POST /v1/uploads
    - CLI
    - local (stdio) MCP
    - https://render.janction.jp/upload
    alternative: a key that has paid 500 JPY or more in total sends up to 5120 MB (saving a card alone does not open it; keys that had it through a saved card before 2026-10-14 keep it)
    paid: 5120
    with_card_or_credit: 5120
    with_card_or_credit_note: former name of paid, kept for older readers
servers:
- url: https://render.janction.jp
security:
- ApiKeyAuth: []
tags:
- name: Files
paths:
  /v1/files:
    post:
      summary: Upload a scene
      operationId: upload_file_v1_files_post
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_upload_file_v1_files_post'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Upload File V1 Files Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      description: 'multipart/form-data with one `file`: a .blend, a bpy Python script (.py), or a 3D file (glTF/GLB, FBX, USD/USDC/USDZ, OBJ, STL, PLY, Alembic). Returns scene_id. Scripts are checked statically; network, subprocess and similar modules are rejected (400 script_blocked). One request carries up to 100 MB; larger files go in resumable parts (POST /v1/uploads), through the https://render.janction.jp/upload page, or as an https link (POST /v1/files/url, up to 512 MB).'
      tags:
      - Files
  /v1/files/lookup:
    get:
      summary: Find an earlier upload by sha256
      description: Query `sha256`; returns the scene_id if this key already uploaded the same bytes.
      operationId: lookup_file_v1_files_lookup_get
      parameters:
      - name: sha256
        in: query
        required: false
        schema:
          type: string
          default: ''
          title: Sha256
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Lookup File V1 Files Lookup Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Files
  /v1/files/{file_id}:
    get:
      summary: Scene details
      operationId: get_file_v1_files__file_id__get
      parameters:
      - name: file_id
        in: path
        required: true
        schema:
          type: string
          title: File Id
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Get File V1 Files  File Id  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Files
  /v1/files/url:
    post:
      summary: Upload File From Url
      operationId: upload_file_from_url_v1_files_url_post
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Upload File From Url V1 Files Url Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  description: https link to a .blend, .py or 3D file
                  format: uri
                  type: string
                asset_urls:
                  items:
                    type: string
                  type: array
              required:
              - url
      tags:
      - Files
  /v1/files/{file_id}/assets:
    post:
      summary: Add companion files to a scene
      description: 'multipart `files`: textures, .bin buffers, .mtl and similar that the scene references.'
      operationId: upload_assets_v1_files__file_id__assets_post
      parameters:
      - name: file_id
        in: path
        required: true
        schema:
          type: string
          title: File Id
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_upload_assets_v1_files__file_id__assets_post'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Upload Assets V1 Files  File Id  Assets Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Files
  /v1/files/{file_id}/manifest:
    post:
      summary: Scene Manifest
      operationId: scene_manifest_v1_files__file_id__manifest_post
      parameters:
      - name: file_id
        in: path
        required: true
        schema:
          type: string
          title: File Id
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Scene Manifest V1 Files  File Id  Manifest Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Files
  /v1/files/{file_id}/assets/urls:
    post:
      summary: Add assets by URL or Poly Haven id
      description: '{"urls": ["https://...", "polyhaven:wooden_table_02"]}; Poly Haven files land under / next to the scene.'
      operationId: add_assets_urls_v1_files__file_id__assets_urls_post
      parameters:
      - name: file_id
        in: path
        required: true
        schema:
          type: string
          title: File Id
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Add Assets Urls V1 Files  File Id  Assets Urls Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Files
components:
  schemas:
    Body_upload_assets_v1_files__file_id__assets_post:
      properties:
        files:
          items:
            type: string
            contentMediaType: application/octet-stream
          type: array
          title: Files
      type: object
      required:
      - files
      title: Body_upload_assets_v1_files__file_id__assets_post
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    Body_upload_file_v1_files_post:
      properties:
        file:
          type: string
          contentMediaType: application/octet-stream
          title: File
      type: object
      required:
      - file
      title: Body_upload_file_v1_files_post
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
externalDocs:
  url: https://render.janction.jp/llms.txt
  description: Guides for agents (llms.txt) and humans (/blender-render-api)