For the complete documentation index, see llms.txt. This page is also available as Markdown.

Intake

List Intake Files

get
Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
limitinteger · min: 1 · max: 200OptionalDefault: 50
continuation_tokenintegerOptionalDefault: 0
sort_bystring · max: 64OptionalDefault: -ingested_at
statusstring · enum · nullableOptionalPossible values:
searchstring · max: 200 · nullableOptional
include_withdrawnbooleanOptionalDefault: false
Responses
200

Successful Response

application/json
has_morebooleanRequired
continuation_tokeninteger · nullableOptional
totalinteger · nullableOptional
get/v1/{workspace_id}/intake/files
GET /v1/{workspace_id}/intake/files HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "filename": "text",
      "dataset": "text",
      "schema_version": "text",
      "status": "received",
      "error_reason": "text",
      "size_bytes": 1,
      "ingested_at": "text",
      "document_id": "123e4567-e89b-12d3-a456-426614174000",
      "version": 1,
      "source_type": "text",
      "source_file_id": "text",
      "source_folder_path": "text"
    }
  ],
  "has_more": true,
  "continuation_token": 1,
  "total": 1
}

Upload Intake File

post
Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Body
datasetstring · min: 2 · max: 63RequiredPattern: ^[a-z0-9][a-z0-9_-]*[a-z0-9]$
filestringRequired
document_idstring · uuid · nullableOptional
Responses
201

Successful Response

application/json

A file in the Files list (intake-ui-mvp-design.md §5.1).

idstring · uuidRequired

file_id — used for download.

filenamestringRequired
datasetstringRequired

Schema slug (UI label "Schema").

schema_versionstring · nullableOptional

The contract version this file validated against (e.g. v1).

statusstring · enumRequiredPossible values:
error_reasonstring · nullableOptional

Null unless rejected/failed.

size_bytesintegerRequired
ingested_atstringRequired

ISO-8601 timestamp the file was received.

document_idstring · uuid · nullableOptional

The document this version belongs to (§5.9). Null for snapshot/CSV rows; set for documents — the console groups versions by it and the version chain.

versioninteger · nullableOptional

The file's version number (per-document for documents, per-dataset for snapshot). Lets the UI render a document's version history.

source_typestring · nullableOptional

Origin of the document this version belongs to — manual for console uploads, google_shared_drive for the Drive connector (V269). Null for snapshot/CSV rows.

source_file_idstring · nullableOptional

The source's stable external id (e.g. the Google Drive file id) for the document. Lets the console show provenance and confirm a re-synced file bumped the same document. Null for manual uploads and snapshot rows.

source_folder_pathstring · nullableOptional

Where the file lived within the mapped Drive folder tree (V279) — the relative path, folder names joined by / (e.g. clinical/notes); '' at the mapped root. Lets the console show the original folder structure. Null for manual uploads and snapshot rows.

post/v1/{workspace_id}/intake/files
POST /v1/{workspace_id}/intake/files HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 85

{
  "dataset": "text",
  "file": "text",
  "document_id": "123e4567-e89b-12d3-a456-426614174000"
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "filename": "text",
  "dataset": "text",
  "schema_version": "text",
  "status": "received",
  "error_reason": "text",
  "size_bytes": 1,
  "ingested_at": "text",
  "document_id": "123e4567-e89b-12d3-a456-426614174000",
  "version": 1,
  "source_type": "text",
  "source_file_id": "text",
  "source_folder_path": "text"
}

Download Intake File

get
Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
file_idstring · uuidRequired
Responses
200

Successful Response

application/json
anyOptional
get/v1/{workspace_id}/intake/files/{file_id}/download
GET /v1/{workspace_id}/intake/files/{file_id}/download HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

List Intake Datasets

get
Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
limitinteger · min: 1 · max: 200OptionalDefault: 50
continuation_tokenintegerOptionalDefault: 0
sort_bystring · max: 64OptionalDefault: name
searchstring · max: 200 · nullableOptional
Responses
200

Successful Response

application/json
has_morebooleanRequired
continuation_tokeninteger · nullableOptional
totalinteger · nullableOptional
get/v1/{workspace_id}/intake/datasets
GET /v1/{workspace_id}/intake/datasets HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "items": [
    {
      "name": "text",
      "schema_version": "text",
      "field_count": 1,
      "file_type": "text",
      "accepted_file_types": [
        "text"
      ],
      "ingestion_mode": "text",
      "limits": {
        "max_size_mb": 1
      }
    }
  ],
  "has_more": true,
  "continuation_token": 1,
  "total": 1
}

List Intake Sources

get
Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
limitinteger · min: 1 · max: 200OptionalDefault: 50
continuation_tokenintegerOptionalDefault: 0
sort_bystring · max: 64OptionalDefault: -created_ts
Responses
200

Successful Response

application/json
has_morebooleanRequired
continuation_tokeninteger · nullableOptional
totalinteger · nullableOptional
get/v1/{workspace_id}/intake/sources
GET /v1/{workspace_id}/intake/sources HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "source_type": "text",
      "display_name": "text",
      "drive_id": "text",
      "folders": [
        {
          "folder_id": "text",
          "dataset": "text",
          "contains_phi": true
        }
      ],
      "impersonate_subject": "text",
      "status": "text",
      "created_ts": "text"
    }
  ],
  "has_more": true,
  "continuation_token": 1,
  "total": 1
}

Register Intake Source

post
Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Body

Register a Google Shared Drive intake source (design §3).

The credential is not part of the wire contract and nothing needs provisioning: the source authenticates as the unified platform-infra intake service account, impersonated from the pod's workload identity. Grant access Drive-side — share the folder with that SA's email, or set impersonate_subject for the DWD model. drive_id is optional (resolved at sync if omitted).

display_namestring · min: 1 · max: 200Required
drive_idstring · max: 256 · nullableOptional
impersonate_subjectstring · max: 320 · nullableOptional
Responses
201

Successful Response

application/json

A registered intake source (Sources list).

idstring · uuidRequired

source_id.

source_typestringRequired
display_namestringRequired
drive_idstring · nullableOptional
impersonate_subjectstring · nullableOptional

DWD impersonation subject, if this source authenticates via domain-wide delegation.

statusstringRequired
created_tsstringRequired

ISO-8601 timestamp.

post/v1/{workspace_id}/intake/sources
POST /v1/{workspace_id}/intake/sources HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 140

{
  "display_name": "text",
  "drive_id": "text",
  "folders": [
    {
      "folder_id": "text",
      "dataset": "text",
      "contains_phi": true
    }
  ],
  "impersonate_subject": "text"
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "source_type": "text",
  "display_name": "text",
  "drive_id": "text",
  "folders": [
    {
      "folder_id": "text",
      "dataset": "text",
      "contains_phi": true
    }
  ],
  "impersonate_subject": "text",
  "status": "text",
  "created_ts": "text"
}

Sync Intake Source

post
Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
source_idstring · uuidRequired
Responses
201

Successful Response

application/json
post/v1/{workspace_id}/intake/sources/{source_id}/sync
POST /v1/{workspace_id}/intake/sources/{source_id}/sync HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "batches": [
    {
      "batch_id": "123e4567-e89b-12d3-a456-426614174000",
      "dataset": "text",
      "files_found": 1,
      "status": "text"
    }
  ]
}

Register Intake Schema

post
Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Body

Create Schema payload (intake-ui-mvp-design.md §5.4, §5.9).

ingestion_mode is inferred from file_type (csv/xls/xlsx → snapshot; else document) — not part of the wire contract. Snapshot datasets require primary_key + schema; document datasets take an optional document_processing config and ignore primary_key/schema. The backend applies the other hidden defaults (on_schema_change=additive, schema_version auto).

namestring · min: 2 · max: 63RequiredPattern: ^[a-z0-9][a-z0-9_-]*[a-z0-9]$
file_typestring · min: 1 · max: 16RequiredPattern: ^[a-z0-9]+$
accepted_file_typesstring[] · max: 16Optional

Document only — the SET of accepted file types (V265, e.g. ["pdf","docx","md"]). Empty → single-type (just file_type). file_type is included as the primary. Mixing in a tabular type (csv/xls/xlsx) is rejected; snapshot datasets are single-type.

Default: []
primary_keystring[] · max: 32Optional

Snapshot only — the canonical PK column(s). Empty/ignored for documents.

Default: []
max_size_mbinteger · nullableOptional
Responses
201

Successful Response

application/json

A registered schema in the Schemas list (intake-ui-mvp-design.md §5.3).

namestringRequired

Dataset slug (UI label "Schema").

schema_versionstringRequired
field_countintegerRequired
file_typestringRequired

Primary/representative file type (the first accepted type).

accepted_file_typesstring[]Optional

Document datasets: the full accepted-type set (V265). Empty for snapshot or legacy single-type documents (the UI falls back to file_type).

Default: []
ingestion_modestringRequired

snapshot (CSV/Excel → CDC) or document (PDF/docx → extraction).

post/v1/{workspace_id}/intake/schema/register
POST /v1/{workspace_id}/intake/schema/register HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 222

{
  "name": "text",
  "file_type": "text",
  "accepted_file_types": [
    "text"
  ],
  "primary_key": [
    "text"
  ],
  "schema": [
    {
      "name": "text",
      "type": "str"
    }
  ],
  "document_processing": {
    "retain_source": true,
    "extraction_mode": "text_extract"
  },
  "max_size_mb": 1
}
{
  "name": "text",
  "schema_version": "text",
  "field_count": 1,
  "file_type": "text",
  "accepted_file_types": [
    "text"
  ],
  "ingestion_mode": "text",
  "limits": {
    "max_size_mb": 1
  }
}

List Intake Batches

get
Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
limitinteger · min: 1 · max: 200OptionalDefault: 50
continuation_tokenintegerOptionalDefault: 0
sort_bystring · max: 64OptionalDefault: -created_ts
source_idstring · uuid · nullableOptional
Responses
200

Successful Response

application/json
has_morebooleanRequired
continuation_tokeninteger · nullableOptional
totalinteger · nullableOptional
get/v1/{workspace_id}/intake/batches
GET /v1/{workspace_id}/intake/batches HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "source_id": "123e4567-e89b-12d3-a456-426614174000",
      "dataset": "text",
      "status": "text",
      "files_found": 1,
      "created_ts": "text"
    }
  ],
  "has_more": true,
  "continuation_token": 1,
  "total": 1
}

Get Intake Batch

get
Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
batch_idstring · uuidRequired
Responses
200

Successful Response

application/json
idstring · uuidRequired

batch_id.

source_idstring · uuid · nullableOptional
datasetstringRequired
statusstringRequired

discovered | ready | processing | completed | failed.

files_foundintegerRequired
created_tsstringRequired
get/v1/{workspace_id}/intake/batches/{batch_id}
GET /v1/{workspace_id}/intake/batches/{batch_id} HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "source_id": "123e4567-e89b-12d3-a456-426614174000",
  "dataset": "text",
  "status": "text",
  "files_found": 1,
  "created_ts": "text",
  "files": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "filename": "text",
      "dataset": "text",
      "schema_version": "text",
      "status": "received",
      "error_reason": "text",
      "size_bytes": 1,
      "ingested_at": "text",
      "document_id": "123e4567-e89b-12d3-a456-426614174000",
      "version": 1,
      "source_type": "text",
      "source_file_id": "text",
      "source_folder_path": "text"
    }
  ]
}

Get Batch Processing Manifest

get

The per-file params the batch-extract job needs to process every still- received file in one run. Same workspace-scoped auth as the write-back (the job holds the batch's agent-session token). Documents only — snapshot/CSV batches process in version order via the chained per-file path, not here.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
batch_idstring · uuidRequired
Responses
200

Successful Response

application/json

Per-file extraction params for a document batch's still-received files — consumed by the batch-extract job, which runs ONCE per batch and extracts every file (instead of one run-now per file, which blows the request/gateway timeout for large batches). Authenticated by the same short-lived workspace-scoped token as the status write-back. document_processing is dataset-wide (the contract); file_type is per-file (V265 multi-type).

Source provenance mirrors the single-file path (resolve_source_identity, PHI gate): source_file_id/source_url (opaque ids) always populate; source_folder_path

  • filename (operator-named free text) populate ONLY for contains_phi=false datasets — otherwise they stay None, so PHI never leaves the Lakebase row.
get/v1/{workspace_id}/intake/batches/{batch_id}/processing-manifest
GET /v1/{workspace_id}/intake/batches/{batch_id}/processing-manifest HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "document_processing": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "files": [
    {
      "file_id": "123e4567-e89b-12d3-a456-426614174000",
      "document_id": "123e4567-e89b-12d3-a456-426614174000",
      "version": 1,
      "source_path": "text",
      "file_type": "text",
      "content_type": "text",
      "sha256": "text",
      "size_bytes": 1,
      "ingested_at": "text",
      "contract_id": "123e4567-e89b-12d3-a456-426614174000",
      "contract_version": "text",
      "source_file_id": "text",
      "source_url": "text",
      "source_folder_path": "text",
      "filename": "text"
    }
  ]
}

Process Intake Batch

post
Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
batch_idstring · uuidRequired
Responses
202

Successful Response

application/json

A source-sync batch (Batches list / detail).

idstring · uuidRequired

batch_id.

source_idstring · uuid · nullableOptional
datasetstringRequired
statusstringRequired

discovered | ready | processing | completed | failed.

files_foundintegerRequired
created_tsstringRequired
post/v1/{workspace_id}/intake/batches/{batch_id}/process
POST /v1/{workspace_id}/intake/batches/{batch_id}/process HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "source_id": "123e4567-e89b-12d3-a456-426614174000",
  "dataset": "text",
  "status": "text",
  "files_found": 1,
  "created_ts": "text"
}

Materialize Intake

post

Trigger the intake → customer-data materializer for this workspace.

Fires the materializer Databricks job (run-now); it rescans the workspace's curated intake files and (re)materializes each snapshot dataset into customer_data_<env>.<workspace_id>.<dataset>. Every write is an idempotent keyed MERGE / full overwrite, so a re-click is safe. Optionally scope to one dataset; omit for all curated snapshot datasets. Returns 202 with the job run_id (null when the job is not configured in this environment). Same auth gate as POST /batches/{batch_id}/process.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Body
datasetstring · min: 2 · max: 63 · nullableOptionalPattern: ^[a-z0-9][a-z0-9_-]*[a-z0-9]$
Responses
202

Successful Response

application/json
run_idinteger · nullableOptional
post/v1/{workspace_id}/intake/materialize
POST /v1/{workspace_id}/intake/materialize HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 18

{
  "dataset": "text"
}
{
  "run_id": 1
}

Update Intake Dataset

post

Run the customer-facing dataset update flow.

This is the one-click orchestration path for the console: check mapped Drive folders, prepare any newly landed files, and publish immediately when no preparation is needed. If preparation is async, the run remains durable and is advanced by file write-backs or by refresh.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
datasetstring · min: 2 · max: 63RequiredPattern: ^[a-z0-9][a-z0-9_-]*[a-z0-9]$
Responses
202

Successful Response

application/json

Durable status for one dataset update action.

run_idstring · uuidRequired
datasetstringRequired
statusstring · enumRequiredPossible values:
source_idsstring · uuid[]Required
batch_idsstring · uuid[]Required
materialize_run_idinteger · nullableOptional
errorstring · nullableOptional
created_atstringRequired
updated_atstringRequired
completed_atstring · nullableOptional
post/v1/{workspace_id}/intake/datasets/{dataset}/update
POST /v1/{workspace_id}/intake/datasets/{dataset}/update HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "run_id": "123e4567-e89b-12d3-a456-426614174000",
  "dataset": "text",
  "status": "checking_drive",
  "source_ids": [
    "123e4567-e89b-12d3-a456-426614174000"
  ],
  "batch_ids": [
    "123e4567-e89b-12d3-a456-426614174000"
  ],
  "materialize_run_id": 1,
  "error": "text",
  "created_at": "text",
  "updated_at": "text",
  "completed_at": "text"
}

Get Intake Update Run

get
Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
run_idstring · uuidRequired
Responses
200

Successful Response

application/json

Durable status for one dataset update action.

run_idstring · uuidRequired
datasetstringRequired
statusstring · enumRequiredPossible values:
source_idsstring · uuid[]Required
batch_idsstring · uuid[]Required
materialize_run_idinteger · nullableOptional
errorstring · nullableOptional
created_atstringRequired
updated_atstringRequired
completed_atstring · nullableOptional
get/v1/{workspace_id}/intake/update-runs/{run_id}
GET /v1/{workspace_id}/intake/update-runs/{run_id} HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "run_id": "123e4567-e89b-12d3-a456-426614174000",
  "dataset": "text",
  "status": "checking_drive",
  "source_ids": [
    "123e4567-e89b-12d3-a456-426614174000"
  ],
  "batch_ids": [
    "123e4567-e89b-12d3-a456-426614174000"
  ],
  "materialize_run_id": 1,
  "error": "text",
  "created_at": "text",
  "updated_at": "text",
  "completed_at": "text"
}

List Intake Materializations

get

Per-dataset materialization status for the workspace's Destinations tab.

Lists each registered dataset alongside its customer-data destination table's status — materialized (with row count + last-write time) or not_materialized (no table yet). The dataset list + pagination mirror GET /datasets (the contracts registry); the destination status is read from the customer_data_<env> catalog via the SQL warehouse. Member read.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
limitinteger · min: 1 · max: 200OptionalDefault: 50
continuation_tokenintegerOptionalDefault: 0
sort_bystring · max: 64OptionalDefault: name
searchstring · max: 200 · nullableOptional
Responses
200

Successful Response

application/json
has_morebooleanRequired
continuation_tokeninteger · nullableOptional
totalinteger · nullableOptional
get/v1/{workspace_id}/intake/materializations
GET /v1/{workspace_id}/intake/materializations HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "items": [
    {
      "dataset": "text",
      "ingestion_mode": "text",
      "status": "materialized",
      "row_count": 1,
      "last_materialized_at": "text"
    }
  ],
  "has_more": true,
  "continuation_token": 1,
  "total": 1
}

Write Back Intake File Status

post

Advance a file's status from the async CDC/extraction job (P4).

The job authenticates with the workspace's API key (Bearer) over the standard Databricks→platform-api path — so RLS scopes the update to that workspace. Moves the row to its terminal verdict and records the curated/cdc paths. For a batch-sourced file, advances its batch (chain the next snapshot version + roll up) once the verdict is terminal.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
file_idstring · uuidRequired
Body

Status advance written by the async CDC job (P4).

The job posts the terminal verdict after conform/validate/diff. error_reason must be PHI-safe (the engine reports column + type + counts only — never cell values). curated_path/cdc_path are set only on a clean verdict.

statusstring · enumRequiredPossible values:
error_reasonstring · max: 2000 · nullableOptional
curated_pathstring · min: 1 · max: 1024 · nullableOptionalPattern: ^[A-Za-z0-9/._-]+$
cdc_pathstring · min: 1 · max: 1024 · nullableOptionalPattern: ^[A-Za-z0-9/._-]+$
Responses
200

Successful Response

application/json

A file in the Files list (intake-ui-mvp-design.md §5.1).

idstring · uuidRequired

file_id — used for download.

filenamestringRequired
datasetstringRequired

Schema slug (UI label "Schema").

schema_versionstring · nullableOptional

The contract version this file validated against (e.g. v1).

statusstring · enumRequiredPossible values:
error_reasonstring · nullableOptional

Null unless rejected/failed.

size_bytesintegerRequired
ingested_atstringRequired

ISO-8601 timestamp the file was received.

document_idstring · uuid · nullableOptional

The document this version belongs to (§5.9). Null for snapshot/CSV rows; set for documents — the console groups versions by it and the version chain.

versioninteger · nullableOptional

The file's version number (per-document for documents, per-dataset for snapshot). Lets the UI render a document's version history.

source_typestring · nullableOptional

Origin of the document this version belongs to — manual for console uploads, google_shared_drive for the Drive connector (V269). Null for snapshot/CSV rows.

source_file_idstring · nullableOptional

The source's stable external id (e.g. the Google Drive file id) for the document. Lets the console show provenance and confirm a re-synced file bumped the same document. Null for manual uploads and snapshot rows.

source_folder_pathstring · nullableOptional

Where the file lived within the mapped Drive folder tree (V279) — the relative path, folder names joined by / (e.g. clinical/notes); '' at the mapped root. Lets the console show the original folder structure. Null for manual uploads and snapshot rows.

post/v1/{workspace_id}/intake/files/{file_id}/status
POST /v1/{workspace_id}/intake/files/{file_id}/status HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 83

{
  "status": "received",
  "error_reason": "text",
  "curated_path": "text",
  "cdc_path": "text"
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "filename": "text",
  "dataset": "text",
  "schema_version": "text",
  "status": "received",
  "error_reason": "text",
  "size_bytes": 1,
  "ingested_at": "text",
  "document_id": "123e4567-e89b-12d3-a456-426614174000",
  "version": 1,
  "source_type": "text",
  "source_file_id": "text",
  "source_folder_path": "text"
}

Last updated

Was this helpful?