API Quickstart

The AutoCISO REST API lets you push software composition data into your compliance workspace from CI/CD pipelines and internal tools. This guide walks you through your first authenticated request.

Prerequisites

  • An API token — see Obtaining an API Token
  • The token needs sbom:read to read and sbom:write to upload
  • Your plan must include the supply_chain_security feature

Set your token as an environment variable so you don’t hard-code credentials:

export AUTOCISO_API_TOKEN="aci_your_token_here"

Base URL

All REST endpoints are under:

https://api.autociso.io/api/v1

Use api.autociso.io for every integration. It carries only the API, so it is unaffected by changes to the marketing site or the web console.

The apex host autociso.io routes to the same backend and stays supported, so older integrations keep working unchanged. Every example on this site uses api.autociso.io.

Authentication

Every request must include your token in the Authorization header:

Authorization: Bearer aci_your_token_here

Example 1 — List your SBOMs

A simple GET that returns the Software Bills of Materials registered in your organisation. Pass q to filter by name.

curl -s \
-H "Authorization: Bearer $AUTOCISO_API_TOKEN" \
"https://api.autociso.io/api/v1/sscs/sboms"

A successful response looks like:

{
  "data": [
    {
      "id": "sbom_1hgyun41rx48",
      "name": "payment-service",
      "version": "1.4.2",
      "source": "cyclonedx",
      "componentCount": 412,
      "createdAt": "2026-03-01T09:00:00Z"
    }
  ],
  "error": null,
  "meta": null
}

Example 2 — Upload an SBOM

Upload a Software Bill of Materials file so AutoCISO can scan it for vulnerabilities and track software composition. Requires the sbom:write scope.

curl -s -X POST \
-H "Authorization: Bearer $AUTOCISO_API_TOKEN" \
-F "file=@sbom.cyclonedx.json" \
-F "name=payment-service" \
-F "version=1.4.2" \
"https://api.autociso.io/api/v1/sscs/sboms/upload"

Error handling

All responses use the same envelope. On failure, data is null and error carries a machine-readable code:

{
  "data":  null,
  "error": { "code": "MISSING_FILE", "message": "multipart field 'file' is required" }
}
StatusCodeMeaning
400INVALID_REQUESTMalformed multipart form
400MISSING_FILEThe file field was absent
400UNSUPPORTED_FORMATFile extension is not a recognised SBOM format
400PARSE_ERRORThe file could not be parsed as an SBOM
400VALIDATION_FAILEDA JSON body failed schema validation
401INVALID_TOKENToken is malformed, revoked, or expired
403FORBIDDENEndpoint does not accept API tokens, or the plan lacks supply_chain_security
403INSUFFICIENT_SCOPEToken is valid but missing the required scope
500DB_ERRORContact support

Next steps

Last reviewed: 2026-09-09

Was this page helpful?

Esc