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.

View in Swagger UI →

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.

View in Swagger UI →

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.

View in Swagger UI →

Connectivity check — GET /test

A lightweight connectivity check to verify auth without submitting data.

View in Swagger UI →

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).

{
  "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