janction-jp Jobs API

The Jobs API from janction-jp — 10 operation(s) for jobs.

Operations 14

POST /v1/jobs/{job_id}/share Share a finished render as a public page #
DELETE /v1/jobs/{job_id}/share Remove the share page #
POST /v1/jobs/{job_id}/feedback Job Feedback #
GET /v1/jobs/{job_id}/feedback Job Feedback Get #
POST /v1/jobs Submit a render job #
GET /v1/jobs List recent jobs #
GET /v1/jobs/{job_id} Job status #
DELETE /v1/jobs/{job_id} Cancel Job #
GET /v1/jobs/{job_id}/next-actions Job Next Actions #
GET /v1/jobs/{job_id}/recipe Job Recipe #
POST /v1/jobs/{job_id}/storage/save Storage Save #
POST /v1/jobs/{job_id}/cancel Cancel a job #
GET /v1/jobs/{job_id}/artifacts/{name} Download an artifact #
GET /v1/jobs/{job_id}/archive Download every file of a job as one zip #

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-jobs-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-jobs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: JANCTION Render Jobs 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: Jobs
paths:
  /v1/jobs/{job_id}/share:
    post:
      summary: Share a finished render as a public page
      description: '{title?, note?, include_script?, listed?} -> {share_id, url}; the page keeps the image/video after the job expires, until DELETE.'
      operationId: share_job_v1_jobs__job_id__share_post
      parameters:
      - name: job_id
        in: path
        required: true
        schema:
          type: string
          title: Job 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 Share Job V1 Jobs  Job Id  Share Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                note:
                  type: string
                prompt:
                  type: string
                include_script:
                  type: boolean
                listed:
                  type: boolean
      tags:
      - Jobs
    delete:
      summary: Remove the share page
      operationId: unshare_job_v1_jobs__job_id__share_delete
      parameters:
      - name: job_id
        in: path
        required: true
        schema:
          type: string
          title: Job 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 Unshare Job V1 Jobs  Job Id  Share Delete
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Jobs
  /v1/jobs/{job_id}/feedback:
    post:
      summary: Job Feedback
      operationId: job_feedback_v1_jobs__job_id__feedback_post
      parameters:
      - name: job_id
        in: path
        required: true
        schema:
          type: string
          title: Job 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 Job Feedback V1 Jobs  Job Id  Feedback Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Jobs
    get:
      summary: Job Feedback Get
      operationId: job_feedback_get_v1_jobs__job_id__feedback_get
      parameters:
      - name: job_id
        in: path
        required: true
        schema:
          type: string
          title: Job 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 Job Feedback Get V1 Jobs  Job Id  Feedback Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Jobs
  /v1/jobs:
    post:
      summary: Submit a render job
      operationId: submit_job_v1_jobs_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 Submit Job V1 Jobs Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      description: 'Body: {scene_id, kind: preview|final|info, frames: [..] (preview) or frame_start/frame_end (final), width, height, samples, engine: cycles|eevee, output: png|exr (frames) or mp4|webm|prores|gif|webp (video) or blend (the built scene as a .blend, not rendered, free), transparent (alpha background; png/exr/webm/gif/webp), notify_url (https; one JSON POST when the job finishes), fps, camera, environment: studio|sunset|overcast|night|compare, environment_strength, environment_visible, blender: 5.0|5.2, orbit, orbit_frames, orbit_elevation, orbit_target, orbit_distance, preset: product|turntable|animation (fills the camera, light, backdrop, frames and output for that purpose; what you pass wins)}. Returns job_id, status and eta.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                scene_id:
                  type: string
                  description: from POST /v1/files, POST /v1/files/url or an earlier job; or send scene_script / scene_url instead
                scene_script:
                  type: string
                  description: the scene as bpy Python code (text), used when scene_id is absent
                scene_url:
                  type: string
                  description: https link to a .blend, .py or 3D file, used when scene_id is absent
                  format: uri
                asset_urls:
                  items:
                    type: string
                  type: array
                  description: 'extra files with scene_script / scene_url: https links or ''polyhaven:<id>'' CC0 assets'
                kind:
                  enum:
                  - preview
                  - final
                  - info
                  type: string
                frames:
                  items:
                    type: integer
                  type: array
                  description: 'preview: 1-4 frame numbers'
                frame_start:
                  type: integer
                frame_end:
                  type: integer
                  description: 'final: up to 3,000 frames per call (frame_start..frame_end); longer than 240 runs as parts under one job id'
                width:
                  type: integer
                  description: 'final: at most 1920x1080 pixels per frame on free time, 3840x2160 with prepaid credit; preview: scaled to 1280x720'
                height:
                  type: integer
                  description: 'final: at most 1920x1080 pixels per frame on free time, 3840x2160 with prepaid credit; preview: scaled to 1280x720'
                samples:
                  type: integer
                fps:
                  type: integer
                output:
                  enum:
                  - auto
                  - png
                  - exr
                  - mp4
                  - webm
                  - prores
                  - gif
                  - webp
                  - blend
                  type: string
                camera:
                  type: string
                cameras:
                  items:
                    type: string
                  type: array
                environment:
                  enum:
                  - ''
                  - studio
                  - sunset
                  - overcast
                  - night
                  - compare
                  type: string
                environment_strength:
                  type: number
                environment_visible:
                  type: boolean
                blender:
                  enum:
                  - ''
                  - '5.0'
                  - '5.2'
                  type: string
                engine:
                  enum:
                  - ''
                  - cycles
                  - eevee
                  type: string
                transparent:
                  type: boolean
                orbit:
                  type: boolean
                orbit_frames:
                  type: integer
                orbit_elevation:
                  type: number
                orbit_target:
                  type: string
                orbit_distance:
                  type: number
                preset:
                  enum:
                  - ''
                  - product
                  - turntable
                  - animation
                  type: string
                max_yen:
                  type: integer
                  description: ceiling for this job; 0 = only if it fits the free time
                notify_url:
                  type: string
                  description: https; one signed POST when the job finishes
                  format: uri
      tags:
      - Jobs
    get:
      summary: List recent jobs
      operationId: list_jobs_v1_jobs_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 20
          title: Limit
      - name: summary
        in: query
        required: false
        schema:
          type: boolean
          default: false
          title: Summary
      - 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 List Jobs V1 Jobs Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Jobs
  /v1/jobs/{job_id}:
    get:
      summary: Job status
      operationId: get_job_v1_jobs__job_id__get
      parameters:
      - name: job_id
        in: path
        required: true
        schema:
          type: string
          title: Job 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 Job V1 Jobs  Job Id  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      description: status queued|running|done|failed|canceled, progress, eta, artifacts (each with view_url, a signed link that opens without a key), warnings.
      tags:
      - Jobs
    delete:
      summary: Cancel Job
      operationId: cancel_job_v1_jobs__job_id__delete
      parameters:
      - name: job_id
        in: path
        required: true
        schema:
          type: string
          title: Job 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 Cancel Job V1 Jobs  Job Id  Delete
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Jobs
  /v1/jobs/{job_id}/next-actions:
    get:
      summary: Job Next Actions
      operationId: job_next_actions_v1_jobs__job_id__next_actions_get
      parameters:
      - name: job_id
        in: path
        required: true
        schema:
          type: string
          title: Job 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 Job Next Actions V1 Jobs  Job Id  Next Actions Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Jobs
  /v1/jobs/{job_id}/recipe:
    get:
      summary: Job Recipe
      operationId: job_recipe_v1_jobs__job_id__recipe_get
      parameters:
      - name: job_id
        in: path
        required: true
        schema:
          type: string
          title: Job 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 Job Recipe V1 Jobs  Job Id  Recipe Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Jobs
  /v1/jobs/{job_id}/storage/save:
    post:
      summary: Storage Save
      operationId: storage_save_v1_jobs__job_id__storage_save_post
      parameters:
      - name: job_id
        in: path
        required: true
        schema:
          type: string
          title: Job Id
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - type: object
                additionalProperties: true
              - type: 'null'
              title: Body
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Storage Save V1 Jobs  Job Id  Storage Save Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Jobs
  /v1/jobs/{job_id}/cancel:
    post:
      summary: Cancel a job
      operationId: cancel_job_post_v1_jobs__job_id__cancel_post
      parameters:
      - name: job_id
        in: path
        required: true
        schema:
          type: string
          title: Job 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 Cancel Job Post V1 Jobs  Job Id  Cancel Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Jobs
  /v1/jobs/{job_id}/artifacts/{name}:
    get:
      summary: Download an artifact
      operationId: get_artifact_v1_jobs__job_id__artifacts__name__get
      parameters:
      - name: job_id
        in: path
        required: true
        schema:
          type: string
          title: Job Id
      - name: name
        in: path
        required: true
        schema:
          type: string
          title: Name
      - 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: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      description: sheet.png (preview), frame_0001.png / .exr..., output.mp4 / .webm / .mov / .gif / .webp, log.txt (the last part of Blender's output, kept for finished and failed jobs alike). Needs X-API-Key; without one, use the artifact's view_url.
      tags:
      - Jobs
  /v1/jobs/{job_id}/archive:
    get:
      summary: Download every file of a job as one zip
      description: 'Stored, not compressed. only=png,exr keeps those extensions. Use it for frame sequences: fetching hundreds of frames one by one runs into the rate limit (429). Needs X-API-Key.'
      operationId: get_archive_v1_jobs__job_id__archive_get
      parameters:
      - name: job_id
        in: path
        required: true
        schema:
          type: string
          title: Job Id
      - name: only
        in: query
        required: false
        schema:
          type: string
          default: ''
          title: Only
      - name: first
        in: query
        required: false
        schema:
          type: string
          default: ''
          title: First
      - name: last
        in: query
        required: false
        schema:
          type: string
          default: ''
          title: Last
      - 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: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Jobs
components:
  schemas:
    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
    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)