Sense
Sense batch
Sense multiple interactions against the same target in a single request.
For large batches (50+ items), the request returns 202 Accepted with a job ID for async tracking.
POST
/
api
/
v1
/
sense
/
batch
curl --request POST \
--url https://ibf.blankstate.ai/api/v1/sense/batch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"target": {
"type": "protocol",
"id": "customer-service-quality"
},
"interactions": [
{
"id": "call-001",
"content": "Thank you for calling, how can I help?"
},
{
"id": "call-002",
"content": "Your complaint has been noted. Goodbye."
},
{
"id": "call-003",
"content": "I completely understand your frustration. Let me escalate this and make sure we resolve it today."
}
]
}
'{
"results": [
{
"id": "call-001",
"score": 0.82,
"metamarkers": 2,
"fidelity": 0.74
},
{
"id": "call-002",
"score": 0.31,
"metamarkers": 1,
"fidelity": 0.68
},
{
"id": "call-003",
"score": 0.94,
"metamarkers": 3,
"fidelity": 0.86
}
],
"summary": {
"total": 3,
"average_score": 0.69,
"total_metamarkers": 6
},
"ics": {
"total_consumed": 6,
"total_cost_usd": 0.018
}
}{
"job_id": "job_batch_4e9f1a",
"status": "processing",
"items_queued": 150,
"estimated_seconds": 120,
"poll_url": "/api/v1/jobs/job_batch_4e9f1a"
}{
"error": {
"code": "invalid_request",
"message": "The 'interaction.content' field is required for type 'text'"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired API token. Obtain a new token from atlas.blankstate.ai"
}
}{
"error": {
"code": "quota_exhausted",
"message": "Your free ICS quota for this period has been consumed. Add a payment method at atlas.blankstate.ai to continue.",
"details": {
"quota": 50,
"used": 50,
"reset": "2026-03-01T00:00:00Z"
}
}
}Authorizations
API token from Atlas Dashboard
Body
application/json
Response
Batch complete (synchronous for small batches)
⌘I
curl --request POST \
--url https://ibf.blankstate.ai/api/v1/sense/batch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"target": {
"type": "protocol",
"id": "customer-service-quality"
},
"interactions": [
{
"id": "call-001",
"content": "Thank you for calling, how can I help?"
},
{
"id": "call-002",
"content": "Your complaint has been noted. Goodbye."
},
{
"id": "call-003",
"content": "I completely understand your frustration. Let me escalate this and make sure we resolve it today."
}
]
}
'{
"results": [
{
"id": "call-001",
"score": 0.82,
"metamarkers": 2,
"fidelity": 0.74
},
{
"id": "call-002",
"score": 0.31,
"metamarkers": 1,
"fidelity": 0.68
},
{
"id": "call-003",
"score": 0.94,
"metamarkers": 3,
"fidelity": 0.86
}
],
"summary": {
"total": 3,
"average_score": 0.69,
"total_metamarkers": 6
},
"ics": {
"total_consumed": 6,
"total_cost_usd": 0.018
}
}{
"job_id": "job_batch_4e9f1a",
"status": "processing",
"items_queued": 150,
"estimated_seconds": 120,
"poll_url": "/api/v1/jobs/job_batch_4e9f1a"
}{
"error": {
"code": "invalid_request",
"message": "The 'interaction.content' field is required for type 'text'"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired API token. Obtain a new token from atlas.blankstate.ai"
}
}{
"error": {
"code": "quota_exhausted",
"message": "Your free ICS quota for this period has been consumed. Add a payment method at atlas.blankstate.ai to continue.",
"details": {
"quota": 50,
"used": 50,
"reset": "2026-03-01T00:00:00Z"
}
}
}