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,
"keyword_descriptions": [
{}
],
"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>"
}
],
"keyword_descriptions": [
{}
],
"keywords": [
"<string>"
],
"last_error": {
"code": "invalid_request",
"message": "<string>",
"retryable": true,
"detail": {},
"request_id": "<string>"
},
"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": ""
},
"native_metadata": {
"properties": [
{
"key": "<string>",
"value": "<string>"
}
],
"source_modified_at": "2023-11-07T05:31:56Z"
},
"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>",
"keyword_descriptions": [
{}
],
"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,
"keyword_descriptions": [
{}
],
"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>"
}
],
"keyword_descriptions": [
{}
],
"keywords": [
"<string>"
],
"last_error": {
"code": "invalid_request",
"message": "<string>",
"retryable": true,
"detail": {},
"request_id": "<string>"
},
"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": ""
},
"native_metadata": {
"properties": [
{
"key": "<string>",
"value": "<string>"
}
],
"source_modified_at": "2023-11-07T05:31:56Z"
},
"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>",
"keyword_descriptions": [
{}
],
"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
One source-grounded explanation per file keyword, when generated.
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
Source filesystem time and format-native properties captured during ingestion.
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.