API Documentation
- API Keys Overview & Getting Started
- Creating & Managing API Keys
- Authentication & Scopes
- Read-Only Endpoints Reference
- Error Handling & Troubleshooting
- Best Practices & Security
- Python Integration Examples
- JavaScript Integration Examples
- Bulk Import API, AIRTA & Imported Reports
- AILP - LLM compliance SDK (@airtasystems/ailp)
Bulk Import API, AIRTA & Imported Reports
Apr 13, 2026
Overview
AIRTA Systems Imported Reports let you bring structured test results into your programs for review and compliance workflows. You can upload manually, use the Bulk Import API from automation, or use AIRTA (AI Risk Testing Agent) locally and sync results with minimal setup.
AIRTA - AI Risk Testing Agent
AIRTA is an application developers use to shift left on AI safety and security compliance testing: run agentic risk tests in your own environment early in the development lifecycle, before issues reach production.
- Run locally - execute the tool on your machine or in your dev/CI environment.
- One-click setup to AIRTA Systems - connect AIRTA to your AIRTA Systems account and import pipeline results using the bulk import flow (see the project README for the latest setup steps).
- Open source - source code and instructions: github.com/airtasystems/AIRTA.
You will need a AIRTA Systems API key with the write:bulk_import scope and a target program id. Follow Create an API key for bulk import below, then configure AIRTA as documented in the repository.
Create an API key for bulk import
Company owners and admins create keys in the app. Keys are long-lived secrets - store them like passwords.
- Sign in to AIRTA Systems with a company account that can manage API keys.
- Open API Key Management from your dashboard or account menu.
- Click Generate API key (or equivalent).
- Give the key a clear name (for example
AIRTA localorCI bulk import). - Under scopes, enable
write:bulk_import. Add any read scopes your integration needs (for exampleread:programsif the tool lists programs). - Optionally set an IP allowlist or expiration for tighter security.
- Save the key immediately when it is shown - it is displayed only once and starts with
gb_live_. - Use the key in AIRTA or in API calls as
Authorization: Bearer gb_live_….
For more detail on rotation and revocation, see Creating & Managing API Keys.
Bulk Import API endpoint
POST /api/v2/imported-reports/company
Required headers
Authorization:Bearer gb_live_X-Program-Id: your program's id (you can also setprogramIdin the JSON; body wins if both are set)Content-Type:application/json
Request body
Send the pipeline report JSON as the raw request body. Include a non-empty adversarial_results array (or results, same idea as the in-app importer). Up to 5,000 items per request; large uploads can run for several minutes.
Typical item fields
Each array element often includes fields such as id, mandate, prompt, response, risk_level, judge_reasoning, description, ok, and error, depending on your pipeline.
Responses
Successful runs often return HTTP 207 with a summary of created and failed rows. If some rows fail, the payload may include an errors array with indexes and messages.
Manual import in the app
For one-off uploads without AIRTA or the API, open Imported Reports and use Import to paste JSON or upload a file.
Example (curl)
curl -X POST https://airtasystems.com/api/v2/imported-reports/company \\
-H "Authorization: Bearer gb_live_YOUR_KEY" \\
-H "X-Program-Id: YOUR_PROGRAM_ID" \\
-H "Content-Type: application/json" \\
-d @pipeline_report.json