Home
Civitai
Civitai Orchestration API — Blobs
Civitai Orchestration API — Blobs
Civitai Orchestration API — Blobs. Upload, head, refresh, and retrieve blob references used as workflow inputs/outputs. NSFW moderation runs on upload. Self-contained Naftiko capability.
Civitai Orchestration API — Blobs is a Naftiko capability published by Civitai , one of 13 capabilities the APIs.io network indexes for this provider. It bundles 4 operations across the POST and GET methods rooted at /v2/consumer/blobs.
The capability includes 2 read-only operations and 1 state-changing operation. Lead operation: Get a presigned blob upload URL . Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko .
Tagged areas include Civitai, Orchestration, Blobs, and Uploads.
What You Can Do
POST
Uploadblob
— Upload blob.
/v2/consumer/blobs
GET
Getbloburl
— Get presigned upload URL.
/v2/consumer/blobs/upload-url
GET
Getblob
— Get blob.
/v2/consumer/blobs/{blobId}
POST
Refreshblob
— Refresh blob.
/v2/consumer/blobs/{blobId}/refresh
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Civitai Orchestration API — Blobs
description: 'Civitai Orchestration API — Blobs. Upload, head, refresh, and retrieve blob references used
as workflow inputs/outputs. NSFW moderation runs on upload. Self-contained Naftiko capability.'
tags:
- Civitai
- Orchestration
- Blobs
- Uploads
created: '2026-05-25'
modified: '2026-05-25'
binds:
- namespace: env
keys:
CIVITAI_API_KEY: CIVITAI_API_KEY
capability:
consumes:
- type: http
namespace: orchestration-blobs
baseUri: https://orchestration.civitai.com
description: Civitai Orchestration Blobs.
resources:
- name: blobs
path: /v2/consumer/blobs
operations:
- name: uploadblob
method: POST
description: Upload a blob with NSFW moderation.
outputRawFormat: json
outputParameters:
- { name: result, type: object, value: $. }
inputParameters:
- { name: body, in: body, type: object, required: true }
- name: blob-upload-url
path: /v2/consumer/blobs/upload-url
operations:
- name: getbloburl
method: GET
description: Get a presigned blob upload URL.
outputRawFormat: json
outputParameters:
- { name: result, type: object, value: $. }
inputParameters:
- { name: mimeType, in: query, type: string, required: true }
- { name: sizeBytes, in: query, type: integer }
- name: blob
path: /v2/consumer/blobs/{blobId}
operations:
- name: getblob
method: GET
description: Get blob metadata.
outputRawFormat: json
outputParameters:
- { name: result, type: object, value: $. }
inputParameters:
- { name: blobId, in: path, type: string, required: true }
- name: headblob
method: HEAD
description: Head blob.
outputRawFormat: raw
outputParameters:
- { name: result, type: object, value: $. }
inputParameters:
- { name: blobId, in: path, type: string, required: true }
- name: blob-refresh
path: /v2/consumer/blobs/{blobId}/refresh
operations:
- name: refreshblob
method: POST
description: Refresh a blob's signed URL.
outputRawFormat: json
outputParameters:
- { name: result, type: object, value: $. }
inputParameters:
- { name: blobId, in: path, type: string, required: true }
authentication:
type: apikey
key: Authorization
value: 'Bearer {{env.CIVITAI_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: orchestration-blobs-rest
port: 8080
description: REST adapter for Orchestration Blobs.
resources:
- path: /v2/consumer/blobs
name: blobs
operations:
- method: POST
name: uploadblob
description: Upload blob.
call: orchestration-blobs.uploadblob
with: { body: rest.body }
outputParameters: [{ type: object, mapping: $. }]
- path: /v2/consumer/blobs/upload-url
name: blob-upload-url
operations:
- method: GET
name: getbloburl
description: Get presigned upload URL.
call: orchestration-blobs.getbloburl
with:
mimeType: rest.query.mimeType
sizeBytes: rest.query.sizeBytes
outputParameters: [{ type: object, mapping: $. }]
- path: /v2/consumer/blobs/{blobId}
name: blob
operations:
- method: GET
name: getblob
description: Get blob.
call: orchestration-blobs.getblob
with: { blobId: rest.path.blobId }
outputParameters: [{ type: object, mapping: $. }]
- path: /v2/consumer/blobs/{blobId}/refresh
name: blob-refresh
operations:
- method: POST
name: refreshblob
description: Refresh blob.
call: orchestration-blobs.refreshblob
with: { blobId: rest.path.blobId }
outputParameters: [{ type: object, mapping: $. }]
- type: mcp
namespace: orchestration-blobs-mcp
port: 9090
transport: http
description: MCP adapter for Orchestration Blobs.
tools:
- name: civitai-get-blob-upload-url
description: Get a presigned blob upload URL.
hints: { readOnly: true, destructive: false, idempotent: true }
call: orchestration-blobs.getbloburl
with:
mimeType: tools.mimeType
sizeBytes: tools.sizeBytes
outputParameters: [{ type: object, mapping: $. }]
- name: civitai-get-blob
description: Get blob metadata.
hints: { readOnly: true, destructive: false, idempotent: true }
call: orchestration-blobs.getblob
with: { blobId: tools.blobId }
outputParameters: [{ type: object, mapping: $. }]
- name: civitai-refresh-blob
description: Refresh blob signed URL.
hints: { readOnly: false, destructive: false, idempotent: true }
call: orchestration-blobs.refreshblob
with: { blobId: tools.blobId }
outputParameters: [{ type: object, mapping: $. }]