curl --request GET \
--url https://ndi-api.nace.ai/v1/workspaces/{workspace_id}/files/{file_id}/metadata \
--header 'X-API-Key: <api-key>'{
"file": {
"created_at": "2023-11-07T05:31:56Z",
"file_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"file_name": "<string>",
"file_type": "<string>",
"ingestion_status": "discovered",
"observed_hash": "<string>",
"path": "<string>",
"size_bytes": 123,
"updated_at": "2023-11-07T05:31:56Z",
"version": 123,
"workspace_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"access_label": "<string>",
"access_label_source": "inherited",
"category": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"graph_inclusion": "auto",
"ingested_at": "2023-11-07T05:31:56Z",
"ingested_hash": "<string>",
"labels": {}
},
"lane": "<string>",
"documents": [
{
"category": "<string>",
"page_end": 123,
"page_start": 123,
"path": "<string>",
"subcategory": "<string>",
"summary": "<string>",
"access_label": "<string>",
"access_label_reason": "<string>",
"access_label_source": "inherited",
"char_count": 123,
"is_freeform_subcategory": false,
"keywords": [
"<string>"
]
}
],
"duration_ms": 123,
"extracted_fields": [
{
"path": "<string>",
"status": "found",
"citations": [
{
"location": {
"page": 2,
"kind": "page_region",
"polygons": [
[
[
123,
123
]
]
]
},
"source_text": "<string>"
}
],
"confidence": 123,
"value": "<string>"
}
],
"keywords": [
"<string>"
],
"last_error": {
"code": "invalid_request",
"message": "<string>",
"request_id": "<string>",
"retryable": true,
"detail": {}
},
"media": {
"duration_ms": 123,
"modality": "audio",
"timeline_path": "<string>",
"transcript_path": "<string>",
"frame_count": 0,
"frames_dir": "<string>",
"keywords": [
"<string>"
],
"marlin_events": [
{
"end_ms": 123,
"start_ms": 123,
"text": ""
}
],
"marlin_summary": "",
"speakers": [
{
"id": "<string>",
"label": "<string>"
}
],
"speech_segment_count": 0,
"summary": ""
},
"outputs": [
{
"created_at": "2023-11-07T05:31:56Z",
"generation": 123,
"kind": "opensearch_doc",
"output_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"path": "<string>"
}
],
"page_count": 123,
"representations": {
"knowledge_graph": false,
"organized_files": false,
"search_index": false
},
"sheet_names": [
"<string>"
],
"sheets": [
{
"sheet_name": "<string>",
"categories": [
{
"category": "<string>",
"subcategory": "<string>",
"is_freeform_subcategory": false
}
],
"char_count": 123,
"column_count": 0,
"error": "<string>",
"jsonl_path": "<string>",
"keywords": [
"<string>"
],
"markdown_path": "<string>",
"max_column": 0,
"max_row": 0,
"non_empty_cell_count": 0,
"parquet_path": "<string>",
"row_count": 0,
"summary": ""
}
],
"summary": "<string>"
}{
"error": {
"code": "invalid_request",
"detail": null,
"message": "Request body has extra fields that this operation does not accept.",
"request_id": "req-01j9k2n3p4q5r6s7t8v9",
"retryable": false
}
}{
"error": {
"code": "invalid_request",
"detail": null,
"message": "Request body has extra fields that this operation does not accept.",
"request_id": "req-01j9k2n3p4q5r6s7t8v9",
"retryable": false
}
}get_file_metadata
Return ingestion-derived metadata for a file. Cost class: fast.
representations answers “is this file actually searchable right now”,
which ingestion_status alone cannot: a file can be ingested while its
graph generation is still building.
curl --request GET \
--url https://ndi-api.nace.ai/v1/workspaces/{workspace_id}/files/{file_id}/metadata \
--header 'X-API-Key: <api-key>'{
"file": {
"created_at": "2023-11-07T05:31:56Z",
"file_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"file_name": "<string>",
"file_type": "<string>",
"ingestion_status": "discovered",
"observed_hash": "<string>",
"path": "<string>",
"size_bytes": 123,
"updated_at": "2023-11-07T05:31:56Z",
"version": 123,
"workspace_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"access_label": "<string>",
"access_label_source": "inherited",
"category": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"graph_inclusion": "auto",
"ingested_at": "2023-11-07T05:31:56Z",
"ingested_hash": "<string>",
"labels": {}
},
"lane": "<string>",
"documents": [
{
"category": "<string>",
"page_end": 123,
"page_start": 123,
"path": "<string>",
"subcategory": "<string>",
"summary": "<string>",
"access_label": "<string>",
"access_label_reason": "<string>",
"access_label_source": "inherited",
"char_count": 123,
"is_freeform_subcategory": false,
"keywords": [
"<string>"
]
}
],
"duration_ms": 123,
"extracted_fields": [
{
"path": "<string>",
"status": "found",
"citations": [
{
"location": {
"page": 2,
"kind": "page_region",
"polygons": [
[
[
123,
123
]
]
]
},
"source_text": "<string>"
}
],
"confidence": 123,
"value": "<string>"
}
],
"keywords": [
"<string>"
],
"last_error": {
"code": "invalid_request",
"message": "<string>",
"request_id": "<string>",
"retryable": true,
"detail": {}
},
"media": {
"duration_ms": 123,
"modality": "audio",
"timeline_path": "<string>",
"transcript_path": "<string>",
"frame_count": 0,
"frames_dir": "<string>",
"keywords": [
"<string>"
],
"marlin_events": [
{
"end_ms": 123,
"start_ms": 123,
"text": ""
}
],
"marlin_summary": "",
"speakers": [
{
"id": "<string>",
"label": "<string>"
}
],
"speech_segment_count": 0,
"summary": ""
},
"outputs": [
{
"created_at": "2023-11-07T05:31:56Z",
"generation": 123,
"kind": "opensearch_doc",
"output_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"path": "<string>"
}
],
"page_count": 123,
"representations": {
"knowledge_graph": false,
"organized_files": false,
"search_index": false
},
"sheet_names": [
"<string>"
],
"sheets": [
{
"sheet_name": "<string>",
"categories": [
{
"category": "<string>",
"subcategory": "<string>",
"is_freeform_subcategory": false
}
],
"char_count": 123,
"column_count": 0,
"error": "<string>",
"jsonl_path": "<string>",
"keywords": [
"<string>"
],
"markdown_path": "<string>",
"max_column": 0,
"max_row": 0,
"non_empty_cell_count": 0,
"parquet_path": "<string>",
"row_count": 0,
"summary": ""
}
],
"summary": "<string>"
}{
"error": {
"code": "invalid_request",
"detail": null,
"message": "Request body has extra fields that this operation does not accept.",
"request_id": "req-01j9k2n3p4q5r6s7t8v9",
"retryable": false
}
}{
"error": {
"code": "invalid_request",
"detail": null,
"message": "Request body has extra fields that this operation does not accept.",
"request_id": "req-01j9k2n3p4q5r6s7t8v9",
"retryable": false
}
}Authorizations
Response
Successful Response
Ingestion-derived metadata for a source file.
representations answers "is this file actually searchable right now",
which ingestion_status alone cannot: a file can be ingested while its
graph generation is still building.
outputs lists every live derivation (retired_at IS NULL) so a
caller knows exactly what exists at each instant without racing against a
re-ingestion in progress.
A source file. The derived tree is platform-owned and has no CRUD surface.
Show child attributes
Show child attributes
Which ingestion lane processed this file.
Show child attributes
Show child attributes
For audio/video; null for document formats.
Show child attributes
Show child attributes
Lane-level keywords extracted during ingestion.
The most recent ingestion error, if any.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
For document formats; null for spreadsheets and media.
Whether each representation is current for a file.
Answers "is this file actually searchable right now", which
ingestion_status alone cannot: a file can be ingested while its graph
generation is still building.
Show child attributes
Show child attributes
For workbook formats; null for everything else.
Show child attributes
Show child attributes
Lane-level summary extracted during ingestion.