Download OpenAPI specification:Download
Data ingestion layer: upload documents, run imports, query the RAG knowledge base, submit financial transaction data, and manage data room surveys, submissions, and answers.
IMPORTANT: Load all skills starting with data_room prior to interacting with this endpoint. Lists the surveys published to the authenticated company. Use this first to discover which surveys are available to answer before listing submissions, retrieving a submission subsection, or submitting answers. Takes no parameters. Authenticated via Coolset satellite authentication: the Coolset user is mapped to its data room user, user group and account, and surveys are scoped to that account and the company's publishable application.
| tags | string tags |
| limit | integer Number of results to return per page. |
| offset | integer The initial index from which to return the results. |
{- "count": 0,
- "results": [
- {
- "id": 0,
- "type": "chart",
- "title": "string",
- "display_type": "bar",
- "is_progress_visible_in_survey_overview": true,
- "tags": [
- {
- "id": 0,
- "name": "string",
- "slug": "string"
}
], - "application_survey_id": 0,
- "survey_export_data": { }
}
]
}IMPORTANT: Load all skills starting with data_room prior to interacting with this endpoint. Lists the published surveys together with the authenticated company's submissions for each. Use this to find a submission's id (and whether a submission already exists for a survey) before retrieving a subsection or creating one. Optionally filter with tags (comma-separated survey tag names) and context__contains (a JSON value matched against each submission's context). Authenticated via Coolset satellite authentication; submissions are scoped to the company's data room user group.
| tags | string tags |
| context__contains | string context__contains |
| limit | integer Number of results to return per page. |
| offset | integer The initial index from which to return the results. |
{- "count": 0,
- "results": [
- {
- "id": 0,
- "version": 0,
- "is_active_version": true,
- "survey_id": "string",
- "survey_export_data": { },
- "survey_submissions": { }
}
]
}IMPORTANT: Load all skills starting with data_room prior to interacting with this endpoint. Creates a survey submission for the authenticated company from an application survey and query context — use this to start a submission for a given context (e.g. company and year) when one does not yet exist. Provide application_survey_id and query_context (a list of {context_object, context_value, precision}); the submission's context is derived from the query context. Authenticated via Coolset satellite authentication; the submission is attributed to the company's data room user and user group.
| application_survey_id required | integer (Application survey id) |
| query_context required | object (Query context) |
{- "application_survey_id": 0,
- "query_context": { }
}{- "id": 0,
- "application_survey_id": 0,
- "context": { },
- "query_context": { },
- "edited_at": "2019-08-24T14:15:22Z"
}IMPORTANT: Load all skills starting with data_room prior to interacting with this endpoint. Fetches a single, scoped subsection of a survey submission for the authenticated company. A submission can be very large (up to ~3000 nested surveys), so this never returns the whole tree: the survey_id selects a survey within the submission and the optional survey_block_id narrows it further to a block subtree — fetch only the part currently on screen.
Address the subsection with the compound key survey_submission_id:survey_id[:survey_block_id] (the survey_block_id segment is optional; when omitted the survey root is used). The response includes the submission's answer/block/survey data and the survey skeleton for that subsection.
Re-fetch after writing answers: answers are submitted through the data point endpoint (create_data_point) using a field_id and a context similar to the submission's. Those writes can change visibility conditions and recompute formula fields, so the returned subsection reflects the latest evaluated state.
Authenticated via Coolset satellite authentication; the submission is scoped to the company's data room user group.
| id required | string Compound key: survey_submission_id:survey_id[:survey_block_id] (survey_block_id is optional) |
{- "id": 0,
- "version": 0,
- "is_active_version": true,
- "survey_id": "string",
- "survey_export_data": { },
- "survey_submissions": { }
}IMPORTANT: Load all skills starting with data_room prior to interacting with this endpoint. Creates or updates a single data point (one answer) for the authenticated company, identified by field_id plus the answer context. Provide value (the answer) and optionally status; pass document_ids to attach source documents — referenced documents become on-change rules so the answer is re-evaluated when a document changes. The data point is propagated to any matching survey submissions, which triggers formulas and visibility/lock conditions that may show, hide or lock other questions or nested surveys. Re-fetch the affected survey submission subsection afterwards to see the recomputed state. Authenticated via Coolset satellite authentication; the data point is attributed to the company's data room user and user group.
| context required | object (Context) |
| value required | string (Value) |
| field_id required | string (Field id) [ 1 .. 125 ] characters |
| status required | string (Status) Enum: "not_started" "in_progress" "ready_for_review" "ready_for_audit" "suggested" |
| document_ids | Array of integers |
{- "context": { },
- "value": "string",
- "field_id": "string",
- "status": "not_started",
- "document_ids": [
- 0
]
}{- "id": 0,
- "context": { },
- "value": "string",
- "field_id": "string",
- "content_type": 0,
- "object_id": 0,
- "user": 0,
- "user_group": 0,
- "updated_at": "2019-08-24T14:15:22Z",
- "value_edited_at": "2019-08-24T14:15:22Z",
- "status": "not_started",
- "status_user": 0,
- "status_edited_at": "2019-08-24T14:15:22Z",
- "pulse_params": "string",
- "document_ids": [
- 0
]
}Returns all documents for the authenticated company, including file metadata, upload status, and associated entities.
Search (search): full-text search across name and description.
Filters:
name, name__icontainsdescription__icontainssource, source__incontent_type, content_type__inupload_statusidentifiers__identifier, identifiers__identifier__in, identifiers__identifier__containsuploaded_at, uploaded_at__gte, uploaded_at__ltecreated_at, created_at__gte, created_at__lteupdated_at, updated_at__gte, updated_at__lteOrdering (ordering): name, source, content_type, upload_status, created_at, updated_at (prefix with - for descending). Default: -created_at.
| name | string name |
| name__icontains | string name__icontains |
| description__icontains | string description__icontains |
| source | string source |
| source__in | string source__in |
| identifiers__identifier | string identifiers__identifier |
| identifiers__identifier__in | string identifiers__identifier__in |
| identifiers__identifier__contains | string identifiers__identifier__contains |
| content_type | string content_type |
| content_type__in | string content_type__in |
| upload_status | string Enum: "pending" "uploading" "completed" "failed" upload_status |
| uploaded_at | string uploaded_at |
| uploaded_at__gte | string uploaded_at__gte |
| uploaded_at__lte | string uploaded_at__lte |
| created_at | string created_at |
| created_at__gte | string created_at__gte |
| created_at__lte | string created_at__lte |
| updated_at | string updated_at |
| updated_at__gte | string updated_at__gte |
| updated_at__lte | string updated_at__lte |
| search | string A search term. |
| ordering | string Which field to use when ordering the results. |
| limit | integer Number of results to return per page. |
| offset | integer The initial index from which to return the results. |
{- "count": 0,
- "results": [
- {
- "id": 0,
- "name": "string",
- "description": "string",
- "source": "string",
- "file_path": "string",
- "file_size": 0,
- "content_type": "string",
- "upload_status": "pending",
- "uploaded_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company_id": 0,
- "user_company_id": 0,
- "pulse_params": {
- "identifier": "string",
- "model_identifier": "string"
}, - "identifiers": [
- "string"
], - "identifiers_details": [
- {
- "id": 0,
- "identifier": "string",
- "user_company_id": 0
}
]
}
]
}Creates a new document record and returns a signed upload URL. After uploading the file to the signed URL, call the confirm_upload endpoint to mark the upload as complete.
| name required | string (Name) [ 1 .. 510 ] characters |
| description | string or null (Description) |
| content_type required | string (Content type) Enum: "application/pdf" "application/msword" "application/vnd.openxmlformats-officedocument.wordprocessingml.document" "application/vnd.ms-excel" "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" "application/vnd.ms-powerpoint" "application/vnd.openxmlformats-officedocument.presentationml.presentation" "image/jpeg" "image/png" "image/gif" "image/webp" "text/plain" "text/csv" "application/rtf" "application/vnd.oasis.opendocument.text" "application/vnd.oasis.opendocument.spreadsheet" "application/vnd.oasis.opendocument.presentation" Content type used to derive file extension |
| identifiers | Array of strings[ items non-empty ] List of identifier strings |
{- "name": "string",
- "description": "string",
- "content_type": "application/pdf",
- "identifiers": [
- "string"
]
}{- "id": 0,
- "name": "string",
- "description": "string",
- "content_type": "application/pdf",
- "source": "string",
- "company_id": 0,
- "user_company_id": 0,
- "identifiers": [
- "string"
]
}Returns metadata for a single document by ID (does not include file contents).
| id required | string |
{- "id": 0,
- "name": "string",
- "description": "string",
- "source": "string",
- "file_path": "string",
- "file_size": 0,
- "content_type": "string",
- "upload_status": "pending",
- "uploaded_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company_id": 0,
- "user_company_id": 0,
- "pulse_params": {
- "identifier": "string",
- "model_identifier": "string"
}, - "identifiers": [
- "string"
], - "identifiers_details": [
- {
- "id": 0,
- "identifier": "string",
- "user_company_id": 0
}
]
}Partially update a document's metadata fields (e.g. name, description).
| id required | string |
| name required | string (Name) [ 1 .. 510 ] characters |
| description | string or null (Description) |
{- "name": "string",
- "description": "string"
}{- "name": "string",
- "description": "string"
}Confirms that the file has been uploaded to the signed URL. Marks the document status as completed and triggers downstream processing.
| id required | string |
| name required | string (Name) [ 1 .. 510 ] characters |
| description | string or null (Description) |
| source required | string (Source) [ 1 .. 20 ] characters |
| file_path required | string (File path) [ 1 .. 1024 ] characters GCS path: gs://bucket/path |
| content_type | string or null (Content type) <= 255 characters |
object (PulseParams) | |
| identifiers | Array of strings[ items non-empty ] List of identifier strings |
{- "name": "string",
- "description": "string",
- "source": "string",
- "file_path": "string",
- "content_type": "string",
- "pulse_params": {
- "identifier": "string",
- "model_identifier": "string"
}, - "identifiers": [
- "string"
]
}{- "id": 0,
- "name": "string",
- "description": "string",
- "source": "string",
- "file_path": "string",
- "file_size": 0,
- "content_type": "string",
- "upload_status": "pending",
- "uploaded_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company_id": 0,
- "user_company_id": 0,
- "pulse_params": {
- "identifier": "string",
- "model_identifier": "string"
}, - "identifiers": [
- "string"
], - "identifiers_details": [
- {
- "id": 0,
- "identifier": "string",
- "user_company_id": 0
}
]
}Generates a time-limited signed URL for downloading the document file. Only available for documents with completed uploads.
| id required | string |
{- "id": 0,
- "name": "string",
- "description": "string",
- "source": "string",
- "file_path": "string",
- "file_size": 0,
- "content_type": "string",
- "upload_status": "pending",
- "uploaded_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company_id": 0,
- "user_company_id": 0,
- "pulse_params": {
- "identifier": "string",
- "model_identifier": "string"
}, - "identifiers": [
- "string"
], - "identifiers_details": [
- {
- "id": 0,
- "identifier": "string",
- "user_company_id": 0
}
]
}Returns a paginated list of financial transactions for the authenticated company. Transactions are the raw financial data that can be classified as carbon emissions. Use the 'search' parameter to search across vendor_name, ledger, and description. Filter with query parameters:
| id | string id |
| id__in | string id__in |
| vendor_name | string vendor_name |
| vendor_name__icontains | string vendor_name__icontains |
| vendor_name__istartswith | string vendor_name__istartswith |
| vendor_name__iendswith | string vendor_name__iendswith |
| vendor_name__isnull | string vendor_name__isnull |
| ledger | string ledger |
| ledger__icontains | string ledger__icontains |
| ledger__istartswith | string ledger__istartswith |
| ledger__iendswith | string ledger__iendswith |
| journal | string journal |
| journal__icontains | string journal__icontains |
| journal__istartswith | string journal__istartswith |
| journal__iendswith | string journal__iendswith |
| journal__isnull | string journal__isnull |
| description | string description |
| description__icontains | string description__icontains |
| description__istartswith | string description__istartswith |
| description__iendswith | string description__iendswith |
| description__isnull | string description__isnull |
| source | string Enum: "codat" "chift" "lune" "regreener" "csv" source |
| integration_id | string integration_id |
| integration__name | string integration__name |
| integration__name__icontains | string integration__name__icontains |
| integration__name__istartswith | string integration__name__istartswith |
| integration__name__iendswith | string integration__name__iendswith |
| date | string date |
| date__gte | string date__gte |
| date__lte | string date__lte |
| net_amount | string net_amount |
| net_amount__gt | string net_amount__gt |
| net_amount__lt | string net_amount__lt |
| net_amount__gte | string net_amount__gte |
| net_amount__lte | string net_amount__lte |
| tags | string tags |
| confidence_status | string Enum: "confident" "needs_attention" confidence_status |
| classified | string classified |
| search | string A search term. |
| ordering | string Which field to use when ordering the results. |
| limit | integer Number of results to return per page. |
| offset | integer The initial index from which to return the results. |
{- "count": 0,
- "results": [
- {
- "id": 0,
- "net_amount": 0,
- "currency": "string",
- "vendor_name": "string",
- "date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "ledger": "string",
- "journal": "string",
- "description": "string",
- "tags": [
- "string"
], - "status": "new",
- "source": "codat",
- "total_co2_kg": "string",
- "emissions": "string"
}
]
}Returns transaction rows aggregated by one or more dimensions (ledger, vendor_name, journal, source, currency). Pair with delimit_by=yearly|monthly|daily to also bucket by a truncated period date. Use this endpoint to discover unique bundles of unclassified transactions before driving bulk classification: combine classified=false with a multi-valued group_by and ordering=-count to process the largest bundles first.
| id | string id |
| id__in | string id__in |
| vendor_name | string vendor_name |
| vendor_name__icontains | string vendor_name__icontains |
| vendor_name__istartswith | string vendor_name__istartswith |
| vendor_name__iendswith | string vendor_name__iendswith |
| vendor_name__isnull | string vendor_name__isnull |
| ledger | string ledger |
| ledger__icontains | string ledger__icontains |
| ledger__istartswith | string ledger__istartswith |
| ledger__iendswith | string ledger__iendswith |
| journal | string journal |
| journal__icontains | string journal__icontains |
| journal__istartswith | string journal__istartswith |
| journal__iendswith | string journal__iendswith |
| journal__isnull | string journal__isnull |
| description | string description |
| description__icontains | string description__icontains |
| description__istartswith | string description__istartswith |
| description__iendswith | string description__iendswith |
| description__isnull | string description__isnull |
| source | string Enum: "codat" "chift" "lune" "regreener" "csv" source |
| integration_id | string integration_id |
| integration__name | string integration__name |
| integration__name__icontains | string integration__name__icontains |
| integration__name__istartswith | string integration__name__istartswith |
| integration__name__iendswith | string integration__name__iendswith |
| date | string date |
| date__gte | string date__gte |
| date__lte | string date__lte |
| net_amount | string net_amount |
| net_amount__gt | string net_amount__gt |
| net_amount__lt | string net_amount__lt |
| net_amount__gte | string net_amount__gte |
| net_amount__lte | string net_amount__lte |
| tags | string tags |
| confidence_status | string Enum: "confident" "needs_attention" confidence_status |
| classified | string classified |
| group_by | Array of strings Default: "ledger" Items Enum: "ledger" "vendor_name" "journal" "source" "currency" Fields to group transactions by |
| delimit_by | string Enum: "yearly" "monthly" "daily" Truncate transaction date into a period bucket |
| limit | integer Number of results to return per page. |
| offset | integer The initial index from which to return the results. |
| ordering | string Enum: "count" "-count" "total_net_amount" "-total_net_amount" Field to order by (prefix with '-' for descending) |
{- "count": 0,
- "results": [
- {
- "count": 0,
- "total_net_amount": 0,
- "period": "2019-08-24T14:15:22Z",
- "ledger": "string",
- "vendor_name": "string",
- "journal": "string",
- "source": "string",
- "currency": "string"
}
]
}Returns a paginated list of data import runs for the authenticated company, ordered by most recent first. Each run includes its status, source, and processing results.
| ordering | string Which field to use when ordering the results. |
| search | string A search term. |
| limit | integer Number of results to return per page. |
| offset | integer The initial index from which to return the results. |
{- "count": 0,
- "results": [
- {
- "id": 0,
- "run_id": "dded282c-8ebd-44cf-8ba5-9a234973d1ec",
- "company_id": 0,
- "results": { },
- "document": 0,
- "model_identifier": "string",
- "tags": [
- "string"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Initiates a new data import run for bulk data ingestion.
| results required | object (Results) Results of the data exchange run |
| document_id required | integer (Document id) Associated document ID |
| model_identifier required | string (Model identifier) non-empty Associated model identifier |
| dry_run | boolean (Dry run) Default: true Whether to run the data exchange run in dry run mode |
| tags | Array of strings[ items [ 1 .. 100 ] characters ] Default: [] Tags to attach to every imported row. Forwarded to the import event. |
{- "results": { },
- "document_id": 0,
- "model_identifier": "string",
- "dry_run": true,
- "tags": [ ]
}{- "results": { },
- "document_id": 0,
- "model_identifier": "string",
- "dry_run": true,
- "tags": [ ],
- "id": 0,
- "run_id": "dded282c-8ebd-44cf-8ba5-9a234973d1ec",
- "company_id": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Returns a single data import run by ID with full processing details.
| id required | string |
{- "id": 0,
- "run_id": "dded282c-8ebd-44cf-8ba5-9a234973d1ec",
- "company_id": 0,
- "results": { },
- "document": 0,
- "model_identifier": "string",
- "tags": [
- "string"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Returns query logs for the authenticated company, ordered by most recent first.
Filters:
query_lookup_key — exact matchquery_lookup_key__in — comma-separated list of keysquery_lookup_key__istartswith — prefix match (case-insensitive)| query_lookup_key | string query_lookup_key |
| query_lookup_key__in | string query_lookup_key__in |
| query_lookup_key__istartswith | string query_lookup_key__istartswith |
| limit | integer Number of results to return per page. |
| offset | integer The initial index from which to return the results. |
{- "count": 0,
- "results": [
- {
- "id": 0,
- "query_lookup_key": "string",
- "query_text": "string",
- "mode": "retrieval",
- "results_count": 2147483647,
- "response_time_ms": 2147483647,
- "success": true,
- "error_message": "string",
- "metadata": { },
- "created_at": "2019-08-24T14:15:22Z"
}
]
}Executes a retrieval or generation query against the authenticated company's corpus. Accepts query_text, mode (retrieval or generation), top_k, vector_distance_threshold, optional file_ids to scope the search by Vertex AI file name, and optional document_ids to scope the search by Document ID.
| query_text required | string (Query text) [ 1 .. 5000 ] characters Natural language query |
| query_lookup_key | string or null (Query lookup key) [ 1 .. 255 ] characters Optional key for retrieving this query log later |
| mode | string (Mode) Default: "retrieval" Enum: "retrieval" "generation" Query mode: retrieval_only or generation |
| top_k | integer (Top k) [ 1 .. 50 ] Default: 10 Number of chunks to retrieve |
| vector_distance_threshold | number or null (Vector distance threshold) [ 0 .. 1 ] Similarity threshold (0-1) |
| file_ids | Array of strings or null[ items non-empty ] Optional list of Vertex AI file names to filter search |
| document_ids | Array of integers or null Optional list of Document IDs to scope the search to specific documents |
| model_name | string (Model name) non-empty Default: "gemini-2.5-flash" Gemini model to use for generation mode |
{- "query_text": "string",
- "query_lookup_key": "string",
- "mode": "retrieval",
- "top_k": 10,
- "vector_distance_threshold": 1,
- "file_ids": [
- "string"
], - "document_ids": [
- 0
], - "model_name": "gemini-2.5-flash"
}{- "query_text": "string",
- "query_lookup_key": "string",
- "mode": "retrieval",
- "top_k": 10,
- "vector_distance_threshold": 1,
- "file_ids": [
- "string"
], - "document_ids": [
- 0
], - "model_name": "gemini-2.5-flash"
}