Skip to main content

Files & Workflows

These endpoints let you discover the IDs you need to launch an agent: find files by name, upload new ones, and list the workflows available on your instance.

Search files by name

GET /files/search

Search files readable by the authenticated user by file name. Use the returned id as a file ID in other API calls.

Scope: developer:files · Rate limit: Standard (300 req / min)

Query parameters

ParameterTypeRequiredDefaultDescription
querystringYesCase-insensitive substring to match file names.
limitnumberNo10Number of files to return. Minimum 1, maximum 50.
cursorstringNoPagination cursor from a previous response.
integrationIdstringNoRestrict results to files from a specific integration.

Response

{
"data": [
{
"id": "019abc12-3456-7890-abcd-ef1234567890",
"name": "quarterly.pdf",
"mimeType": "application/pdf",
"parentId": null,
"path": "Project%20Alpha/reports/quarterly.pdf"
}
],
"nextCursor": null
}
FieldTypeDescription
dataarrayPage of matching files.
idstring (uuid)File ID.
namestringFile name.
mimeTypestringFile MIME type.
parentIdstring (uuid) or nullParent folder ID, or null if at root.
pathstringSlash-delimited, URL-encoded display path including integration root and file.
nextCursorstring (uuid) or nullCursor for the next page, or null when there are no more results.

Errors

StatusCause
400Missing or invalid query parameters.
401Missing or invalid API key.
403API key lacks developer:files scope.
429Standard rate limit exceeded.

Example

curl "https://<your-domain>.nomic.ai/api/v0/files/search?query=quarterly&limit=10" \
-H "Authorization: Bearer $NOMIC_API_KEY"

Upload a file

POST /files/upload

Upload a file using multipart/form-data. The file is streamed directly to storage without buffering. Ingestable file types (PDF, images, Office documents) are automatically queued for processing after upload.

Scope: developer:files · Rate limit: Heavy (30 req / min) · Max file size: 500 MB

Request

Send a multipart/form-data request with the following fields:

FieldTypeRequiredDescription
filebinaryYesThe file to upload.
pathstringNoSlash-delimited path including filename, e.g. reports/2026/quarterly.pdf. Intermediate folders are created automatically. The last segment is used as the filename.
parentIdstring (uuid)NoUUID of an existing folder to upload into.

If neither path nor parentId is provided, the file is placed at the root of your file tree.

Response

{
"id": "019abc12-3456-7890-abcd-ef1234567890",
"name": "quarterly.pdf",
"mimeType": "application/pdf",
"size": 1048576,
"fileType": "DOCUMENT",
"parentId": null,
"fileVersionId": "019abc12-3456-7890-abcd-ef1234567891",
"createdAt": "2026-04-05T12:00:00.000Z"
}
FieldTypeDescription
idstring (uuid)File ID.
namestringFile name.
mimeTypestringMIME type of the uploaded file.
sizenumberFile size in bytes.
fileTypestringAlways "DOCUMENT" for uploaded files.
parentIdstring (uuid) or nullParent folder ID, or null if at root.
fileVersionIdstring (uuid)ID of the created file version. Use this to submit a parse job.
createdAtstring (ISO 8601)Creation timestamp.

Errors

StatusCause
400Missing file field, empty file, or Content-Type is not multipart/form-data.
401Missing or invalid API key.
403API key lacks developer:files scope.
413File exceeds the 500 MB size limit.
503Upload integration not configured on this instance.

Example

curl -X POST "https://<your-domain>.nomic.ai/api/v0/files/upload" \
-H "Authorization: Bearer $NOMIC_API_KEY" \
-F "file=@drawings/floor-plan.pdf" \
-F "path=project-alpha/drawings/floor-plan.pdf"

List workflows

GET /api/v0/workflows

Scope: developer:agent · Rate limit: Standard (300 req / min)

List workflows available to the authenticated user. Use the returned id as workflowId when launching an agent. Each workflow includes its input shape (requestedFiles) so callers can build launch requests correctly.

Query parameters

ParameterTypeDefaultDescription
limitint20Max results per page (1–100).
cursorstringOpaque cursor from a previous page.
projectIduuidFilter to workflows in a project.

Response

{
"data": [
{
"id": "019def34-...",
"name": "Submittal Review",
"description": "Reviews submittals against project specifications and codes",
"requestedFiles": [
{
"name": "submittals",
"description": "Submittal PDFs to review",
"optional": false,
"multiple": true
}
]
},
{
"id": "019def35-...",
"name": "Code Compliance Check",
"description": "Checks drawings against applicable building codes",
"requestedFiles": []
}
],
"nextCursor": null
}
FieldTypeDescription
data[].iduuidWorkflow ID — pass as workflowId when launching.
data[].namestringDisplay name.
data[].descriptionstring?Optional description.
data[].requestedFilesarrayFile-input slots. Empty for prompt-only workflows.
requestedFiles[].namestringSlot name — use as the key in workflowInputs when launching.
requestedFiles[].descriptionstringWhat this slot expects.
requestedFiles[].optionalbooleanWhether the slot can be omitted.
requestedFiles[].multiplebooleanWhether the slot accepts more than one file.
nextCursorstring?Opaque cursor for the next page, or null if there are no more results.

Errors

StatusCause
401Missing or invalid API key.
403API key lacks developer:agent scope.
429Standard rate limit exceeded.

Example

curl "https://<your-domain>.nomic.ai/api/v0/workflows?limit=10" \
-H "Authorization: Bearer $NOMIC_API_KEY"