Library
Brand files.
On this page
Updated on January 1, 1970
Privacy and analytics
We use necessary technical cookies and, only with your consent, analytics and marketing pixels to improve the website and measure campaigns.
Brand files.
Updated on January 1, 1970
Searches brand files by name, category or type. Agents and external clients only see files approved for agent use; people see what their role allows.
| Field | Value |
|---|---|
| Kind | Read |
| HTTP method | POST /api/v1/library.search |
| MCP tool | library_search |
| Scope | library.read |
| Minimum role | Viewer |
| Human confirmation | No |
| Doors | Nödo, Voice, MCP, API |
| Status | Available |
| Widget | carousel |
Input
{
query?: string // ≤ 200
category?: string // ≤ 60
type?: "image" | "video" | "audio" | "document" | "logo" | "font"
cursor?: string // ≤ 512 · Opaque cursor from a previous `nextCursor`.
limit?: integer // 1–50 · default 20
}Output
{
items: Array<{
id: string // uuid
name: string
category: string | null
mimeType: string
status: "proposed" | "approved" | "archived"
createdAt: string
}>
nextCursor: string | null
}Details of one file plus a signed download URL valid for one hour. The URL is signed from the stored record, never from a caller-supplied path.
| Field | Value |
|---|---|
| Kind | Read |
| HTTP method | POST /api/v1/library.asset.get |
| MCP tool | library_asset_get |
| Scope | library.read |
| Minimum role | Viewer |
| Human confirmation | No |
| Doors | Nödo, Voice, MCP, API |
| Status | Planned |
| Widget | record |
Input
{
assetId: string // uuid
}Output
{
id: string // uuid
name: string
category: string | null
mimeType: string
status: "proposed" | "approved" | "archived"
createdAt: string
description: string | null
sizeBytes: integer // -9007199254740991–9007199254740991
url: string // uri
urlExpiresAt: string
}Approves or archives a proposed file, for example an image Nödo generated. Only approved files can be used by agents or published.
| Field | Value |
|---|---|
| Kind | Write |
| HTTP method | POST /api/v1/library.asset.review |
| MCP tool | library_asset_review |
| Scope | library.write |
| Minimum role | Admin |
| Human confirmation | Yes |
| Doors | Nödo, Voice, MCP, API |
| Status | Planned |
| Widget | review |
Input
{
assetId: string // uuid
decision: "approve" | "archive"
note?: string // ≤ 500
}Output
{
ok: true
id?: string
revision?: integer // -9007199254740991–9007199254740991
}Returns a signed upload URL for one file within the plan storage quota; call again with complete: true and the upload id to register it.
| Field | Value |
|---|---|
| Kind | Write |
| HTTP method | POST /api/v1/library.upload.create |
| MCP tool | library_upload_create |
| Scope | library.write |
| Minimum role | Admin |
| Human confirmation | No |
| Doors | API, Nödo |
| Status | Planned |
| Widget | file_request |
Input
{
step: "start"
fileName: string // ≤ 200
mimeType: string // ≤ 120
sizeBytes: integer // –9007199254740991
category?: string // ≤ 60
}
| {
step: "complete"
uploadId: string
name?: string // ≤ 200
}Output
{
uploadId: string
uploadUrl?: string // uri
assetId?: string // uuid
}