POST/v1/signals/exports

Create an Export Job

To create a new signals data export, send a POST request to /v1/signals/exports. To export one Harness Runtime environment, include its agent_id (type defaults to agent). To export the team's Serverless Inference Signals conversations, set type to inference and omit agent_id. You may optionally filter the export by signal_type, session_ids, start_time, and end_time. Use the export options endpoint to discover available signal types.

The export job runs asynchronously. Poll the get export endpoint to check its status. When complete, use the download endpoint to retrieve a pre-signed URL.

  • IdempotentThe SDK sends Idempotency-Key, so a retried request is only applied once.

6 body fields
typestringoptional
The scope of the export. `agent` exports Signals conversations for one Harness Runtime environment and requires `agent_id`. `inference` exports Serverless Inference Signals conversations for the whole team (team-wide; omit `agent_id`). Defaults to `agent` when `agent_id` is provided and to `inference` when it is omitted.
Allowed:agentinference
agent_idstringoptional
The environment whose data should be exported. For Harness Runtime, this is the Environment Config ID. Required when `type` is `agent`; must be omitted when `type` is `inference`.
signal_typearray<string>optional
Filter the export to only include the specified signal types. Use the export options endpoint to list available values.
session_idsarray<string>optional
Optional list of specific session IDs to include in the export.
start_timestringoptional
Include only sessions that started at or after this timestamp.
end_timestringoptional
Include only sessions that started at or before this timestamp.

7 status codes
201A single export job.
export_idstringrequired
The unique identifier for the export job.
typestringoptional
The scope of the export. `agent` covers one Harness Runtime environment; `inference` covers the team's Serverless Inference Signals conversations.
Allowed:agentinference
agent_idstringrequired
The environment whose data is being exported. For Harness Runtime, this is the Environment Config ID. Not meaningful for `inference` exports; use `type` to distinguish the export scope.
statusstringrequired
The current status of the export job.
Allowed:pendingprocessingcompletefailed
filtersobjectoptional
The filters applied to this export.
created_atintegerrequired
Unix timestamp when the export was created.
completed_atintegeroptional
Unix timestamp when the export completed, or null if still in progress.
expires_atintegeroptional
Unix timestamp when the export download link expires.
error_messagestringoptional
Error message if the export failed, or null on success.
400There was an error parsing the request body.
idstringrequired
A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be "not_found."
messagestringrequired
A message providing additional information about the error, including details to help resolve it when possible.
request_idstringoptional
Optionally, some endpoints may include a request ID that should be provided when reporting bugs or opening support tickets to help identify the issue.
401Authentication failed due to invalid credentials.
idstringrequired
A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be "not_found."
messagestringrequired
A message providing additional information about the error, including details to help resolve it when possible.
request_idstringoptional
Optionally, some endpoints may include a request ID that should be provided when reporting bugs or opening support tickets to help identify the issue.
422Unprocessable Entity
idstringrequired
A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be "not_found."
messagestringrequired
A message providing additional information about the error, including details to help resolve it when possible.
request_idstringoptional
Optionally, some endpoints may include a request ID that should be provided when reporting bugs or opening support tickets to help identify the issue.
429The API rate limit has been exceeded.
idstringrequired
A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be "not_found."
messagestringrequired
A message providing additional information about the error, including details to help resolve it when possible.
request_idstringoptional
Optionally, some endpoints may include a request ID that should be provided when reporting bugs or opening support tickets to help identify the issue.
500There was a server error.
idstringrequired
A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be "not_found."
messagestringrequired
A message providing additional information about the error, including details to help resolve it when possible.
request_idstringoptional
Optionally, some endpoints may include a request ID that should be provided when reporting bugs or opening support tickets to help identify the issue.
defaultThere was an unexpected error.
idstringrequired
A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be "not_found."
messagestringrequired
A message providing additional information about the error, including details to help resolve it when possible.
request_idstringoptional
Optionally, some endpoints may include a request ID that should be provided when reporting bugs or opening support tickets to help identify the issue.

Error handling

A 400 is returned: There was an error parsing the request body. A 401 is returned: Authentication failed due to invalid credentials. A 422 is returned: Unprocessable Entity. A 429 is returned: The API rate limit has been exceeded. A 500 is returned: There was a server error. Any other status is an error: There was an unexpected error.