API Reference

Request conventions

Send request bodies as JSON with Content-Type: application/json, encoded as UTF-8. Endpoints that accept files take multipart/form-data instead; they say so in their body parameters.

Query parameters are strings on the wire. Booleans are written true and false, and lists are repeated or comma-separated as each endpoint describes.

JSON request
curl -X POST "$VDF_BASE_URL/agent-hub-api/api/workspaces" \
  -H "Authorization: Bearer $VDF_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "Customer support"}'

Path parameters

Paths in this reference write parameters in braces — /agent-hub-api/api/workspaces/{workspace_id}. Replace the braces and the name with the value, and percent-encode values that contain reserved characters.

Path parameter
/agent-hub-api/api/workspaces/{workspace_id}
/agent-hub-api/api/workspaces/a2c4e6f8-1234-4abc-9def-0123456789ab

Identifiers

Resources of the Chat API — users, chat sessions, documents, network triggers — use numeric identifiers. Resources of the other APIs use string identifiers; treat them as opaque, compare them exactly, and don't parse them or assume a format.

Some resources can also be addressed by a human-readable name or slug, such as an agent's name or a workspace's slug. Each endpoint states which one it expects.

Timestamps

Timestamps are in UTC and appear in one of three formats; the response examples show which one each field uses:

  • ISO 8601 with a designator — 2026-09-01T09:30:00Z — in the Data API and most Chat API resources.
  • ISO 8601 without a designator — 2026-09-01T09:30:00.412345 — in the Agent Hub API. The value is still UTC.
  • The HTTP date format — Tue, 01 Sep 2026 09:30:00 GMT — in a few older Chat API fields.

Parse timestamps with a standard date library rather than by position, and interpret values without a designator as UTC.

File uploads

Endpoints that accept files take multipart/form-data, with the file in a form field (usually file) and any other fields as ordinary form values. Let your HTTP client set the Content-Type header, including its boundary.

Multipart upload
curl -X POST "$VDF_BASE_URL/api/documents/upload" \
  -H "Authorization: Bearer $VDF_ACCESS_TOKEN" \
  -F "file=@quarterly-report.pdf"

Working within a workspace

Workspaces — Projects in the VDF AI portal — group the agents, tools, knowledge, and data connections that belong together. Many list endpoints accept a workspace filter so an integration sees only what belongs to its project, and Run an agent lets you name the workspace a run should use.

Confirm that a workspace exists and is visible to the calling user — Retrieve a workspace — before building an integration around it.