GenAI API
Interactive Swagger UI — click Authorize to try requests with your GenAI API token.
See Recent Changes for what's changed in the last 6 months.
Overview
The GenAI API accepts structured data about how your organization uses AI/LLM products (ChatGPT, Claude, Gemini, etc.) — which devices and users are interacting with them, and what files/messages are involved — for analysis in the GenAI Insights Dashboard (model adoption, usage trends, and per-user/per-model drill-ins).
Base URL: https://api.esentire.com/genai
Authentication
Requests need an Authorization header carrying your GenAI API token, generated in the Atlas Platform under Settings → API Access with the GenAI Submission endpoint selected. GenAI does not support Atlas OAuth client credentials — only its own token.
curl -H 'Authorization: <token>' 'https://api.esentire.com/genai/info'
Endpoints
Submissions
Submit usage data — POST /submission
Accepts product (the AI/LLM product name, e.g. "claude") plus at least one of devices or users. Stores the submission and returns a generated submission_id/submission_time. Requires plugin-genai/genai-submit-data scope.
curl -X POST -H 'Authorization: <token>' -H 'Content-Type: application/json' \
-d '{
"product": "claude",
"devices": [{"host_name": "workstation-01.corp.net"}]
}' \
'https://api.esentire.com/genai/submission'
Validate without submitting — POST /validate-submission
Accepts the exact same body as /submission and runs the same schema validation, but never stores anything — no submission_id is generated and nothing is written to storage. Returns 200 with {"valid": true} once the body passes validation. Use this to test a payload before actually submitting it. Requires plugin-genai/genai-submit-data scope.
curl -X POST -H 'Authorization: <token>' -H 'Content-Type: application/json' \
-d '{
"product": "claude",
"devices": [{"host_name": "workstation-01.corp.net"}]
}' \
'https://api.esentire.com/genai/validate-submission'
Health & metadata
API info — GET /info
Returns the deployed API's name, title and version.
Connectivity check — GET /test
A lightweight connectivity check to verify auth without submitting data.
Both endpoints only need a valid token.
Submission Data Model
product is required. At least one of devices or users is also required (both may be included for a hybrid submission).
- devices[] — requires at least one of
host_name,ips, ormacs; optionaldomain,files[],connections[],messages[],interactions[]. - users[] — requires at least one of
nameoremail; same optional sub-objects as devices. - extra_context — optional open-ended object for additional metadata (department, project, campaign, etc.).
{
"product": "claude",
"devices": [
{
"host_name": "workstation-01.corp.net",
"messages": [
{
"sent_text": "Summarize this document",
"sent_time": "2026-08-28T14:30:00Z",
"received_text": "Summary: ..."
}
]
}
]
}
Response Format
Successful submission (POST /submission, 201)
{
"submission_id": "40799b1b-6fa7-470f-b08f-65ed75df0b46",
"submission_time": "2026-08-28T14:30:00.000Z"
}
Successful validation (POST /validate-submission, 200)
{
"valid": true
}
HTTP Status Codes
| Code | Meaning | Action |
|---|---|---|
200 |
Success | Request completed successfully |
201 |
Created | /submission stored the data successfully |
400 |
Bad Request | Body doesn't match the submission schema (missing product, or neither devices nor users) |
401 |
Unauthorized | Missing, invalid, or expired token |
500 |
Server Error | Retry after a short delay |
502 |
Bad Gateway | Upstream storage error; retry after a short delay |
Support
Email: deploymentsupport@esentire.com
Website: https://www.esentire.com
Related APIs
- Tickets API - Ticket and case management
- Findings API - Security findings
- MVS API - Vulnerability management
- Threat Intelligence API - Threat data
- Base API Reference - General API concepts