API reference
The AutoCISO REST API is a JSON API over HTTPS. Every operation has its own page with parameters, response fields, errors and copy-paste examples. The OpenAPI document is published as YAML and JSON.
Base URL
https://api.autociso.io/api/v1
All paths in this reference are relative to the base URL. The published OpenAPI file now declares servers as https://api.autociso.io/api/v1 and carries the /jml/... and /sscs/... prefixes in its path keys, where it used to put /jml into the server URL. The full URLs are unchanged, so existing integrations and generated clients keep working.
Authentication
Send an API token in the Authorization header. Create tokens, and pick their scopes, as described in API Tokens. What each scope and plan allows is in Access Model & Scopes.
| Header | Value | Required |
|---|---|---|
Authorization |
Bearer <your-api-token> |
Always |
Content-Type |
application/json |
On requests with a body |
Response envelope
Responses use the envelope { data, error, meta }. On success data holds the payload, error is null and meta carries pagination or summary values. On failure data is null and error is { code, message }. The Supply Chain (SSCS) operations return a success body with data only and omit error and meta; the reference page of each operation shows its exact shape. Failures of every operation use the error codes in Errors & Rate Limits.
Pagination
List operations that paginate report it in meta. Which shape applies is stated on the operation page.
| Style | Request parameters | meta |
|---|---|---|
| Offset | limit, offset |
{ total, limit, offset } |
| Cursor | limit, cursor |
{ limit, hasMore, nextCursor } |
Cursor pagination is coming with the registry routes: no operation in this reference uses it yet. SSCS list operations return the whole list and do not paginate.
Filtering and sorting
Operations that support filters take them as filter[field][op]=value, for example filter[status][in]=OUTSTANDING,DISCREPANCY. The operators are eq, ne, gt, gte, lt, lte, in, nin, re and exists. Sorting is sort[field]=asc or sort[field]=desc, and q=term searches. Each operation page lists the fields it accepts; an unknown field is rejected with VALIDATION_FAILED.
Response headers
| Header | Status |
|---|---|
Retry-After |
Sent on 429 RATE_LIMITED, in whole seconds (at least 1). Wait that long before retrying. |
X-Request-ID |
Not yet sent by the API. |
RateLimit-* |
Not yet sent by the API. Limits are described in Errors & Rate Limits. |
Operations
71 operations. Scope is the token scope the operation requires; Plan is the lowest plan that includes it.
Off-boarding
- GETList leaver casesScope
/jml/offboarding/casesLists leaver (off-boarding) cases with a reconciled summary of their items.jml:readPlan Seed+ - GETGet a leaver caseScope
/jml/offboarding/cases/{caseId}Returns one leaver case with its reconciled summary.jml:readPlan Seed+ - GETList the items of a leaver caseScope
/jml/offboarding/cases/{caseId}/itemsLists the reconciled items of one leaver case.jml:readPlan Seed+ - GETList leaver items across cases (feed)Scope
/jml/offboarding/itemsFlat feed of reconciled leaver items across cases, for polling.jml:readPlan Seed+
On-boarding
- GETList joiner casesScope
/jml/onboarding/casesLists joiner (on-boarding) cases with a reconciled summary of their items: GRANTED when the access is detected in the inventory, ATTESTED when a person confi…jml:readPlan Seed+ - GETScope
jml:readPlan Seed+ - GETList the items of a joiner caseScope
/jml/onboarding/cases/{caseId}/itemsLists the reconciled items of one joiner case.jml:readPlan Seed+ - GETList joiner items across cases (feed)Scope
/jml/onboarding/itemsFlat feed of reconciled joiner items across cases, for polling.jml:readPlan Seed+
SBOMs
- GETScope
sbom:readPlan Growth+ - POSTCreate SBOMScope
/sscs/sbomsRegister an SBOM record without uploading a manifest, for example when components are attached by a later process.sbom:writePlan Growth+ - POSTScope
sbom:writePlan Growth+ - GETGet SBOMScope
/sscs/sboms/{sbomId}Fetch one SBOM by id, including its component count and the per-severity finding counts refreshed by the last CVE matching run.sbom:readPlan Growth+ - DELETEDelete SBOMScope
/sscs/sboms/{sbomId}Delete an SBOM together with its components and every vulnerability finding raised against it.sbom:writePlan Growth+ - GETScope
sbom:readPlan Growth+
Findings
- GETScope
sbom:readPlan Growth+ - GETFindings summaryScope
/sscs/findings/summaryCounts of open findings grouped by severity: the number behind a dashboard tile.sbom:readPlan Growth+ - PATCHScope
sbom:writePlan Growth+
Vendors
- GETScope
sbom:readPlan Growth+ - POSTScope
sbom:writePlan Growth+ - GETVendor risk summaryScope
/sscs/vendors/risk-summaryOpen findings aggregated per vendor: the third-party risk view.sbom:readPlan Growth+ - PUTScope
sbom:writePlan Growth+
Supplier questionnaires
- GETList supplier questionnairesScope
/supplier-assessment-templatesList the questionnaires of the organization, newest change first: the built-in questionnaire (always the first row of an unfiltered first page) and every aut…supplier_template:readPlan Growth+ - POSTCreate a questionnaireScope
/supplier-assessment-templatesCreate a new, empty questionnaire as a draft with one section.supplier_template:writePlan Growth+ - POSTClone a questionnaireScope
/supplier-assessment-templates/cloneCopy an existing questionnaire into a new draft of a new questionnaire.supplier_template:writePlan Growth+ - GETGet a questionnaireScope
/supplier-assessment-templates/{templateId}Fetch one questionnaire version by `templateId` with its sections, questions, options and scoring fields (`weight`, `riskValue`, `findingSeverity`, `controlI…supplier_template:readPlan Growth+ - GETGet a questionnaire versionScope
/supplier-assessment-templates/{templateId}/versions/{version}Fetch one numbered version of a questionnaire.supplier_template:readPlan Growth+ - GETCompare two questionnaire versionsScope
/supplier-assessment-templates/{templateId}/versions/{version}/diff/{otherVersion}List what changed between two versions of one questionnaire: added, removed and modified questions and options, with the before and after of each changed field.supplier_template:readPlan Growth+ - POSTValidate a draftScope
/supplier-assessment-templates/{templateId}/validateCheck the content of a questionnaire without changing anything and without a request body.supplier_template:readPlan Growth+ - POSTPreview publishing a draftScope
/supplier-assessment-templates/{templateId}/publish/previewA dry run of publishing, without a request body and without any change: the scoring impact of the draft against the latest published version (the built-in qu…supplier_template:readPlan Growth+ - POSTOpen a draft of a published questionnaireScope
/supplier-assessment-templates/{templateId}/draftReopen a published version for editing: a new draft in the same questionnaire family with a copy of its content (version0,parentVersionthe published v…supplier_template:writePlan Growth+ - PATCHEdit the title, description and modes of a draftScope
/supplier-assessment-templates/{templateId}/metaChange the title, the description and the assessment modes of a draft.supplier_template:writePlan Growth+ - POSTAdd a section to a draftScope
/supplier-assessment-templates/{templateId}/sectionsAppend an empty section to a draft.supplier_template:writePlan Growth+ - PATCHRename a section of a draftScope
/supplier-assessment-templates/{templateId}/sections/{sectionId}Replace the title of a section (title.enrequired).supplier_template:writePlan Growth+ - DELETEDelete a section of a draftScope
/supplier-assessment-templates/{templateId}/sections/{sectionId}Delete a section and its questions from a draft.supplier_template:writePlan Growth+ - POSTTranslate one questionnaire fieldScope
/supplier-assessment-templates/translateMachine-translate one piece of questionnaire text into a target language.supplier_template:writePlan Growth+ - POSTAdd a question to a section of a draftScope
/supplier-assessment-templates/{templateId}/questionsAppend a question to a section of a draft.supplier_template:writePlan Growth+ - PATCHEdit a question of a draftScope
/supplier-assessment-templates/{templateId}/questions/{questionId}Change fields of one question of a draft: `text`, `help`, `evidenceHint` (each replaces the whole localised object), `answerType`, `required`, `modes`, `doma…supplier_template:writePlan Growth+ - DELETEDelete a question of a draftScope
/supplier-assessment-templates/{templateId}/questions/{questionId}Remove a question and its options from a draft.supplier_template:writePlan Growth+ - POSTAdd an option to a choice question of a draftScope
/supplier-assessment-templates/{templateId}/questions/{questionId}/optionsAppend an answer option to asingle_selectormulti_selectquestion of a draft.supplier_template:writePlan Growth+ - PATCHEdit an option of a draft questionScope
/supplier-assessment-templates/{templateId}/questions/{questionId}/options/{optionId}Change fields of one answer option of a draft:label,riskValue(0 to 4),findingSeverity,findingandnotApplicable.supplier_template:writePlan Growth+ - DELETEDelete an option of a draft questionScope
/supplier-assessment-templates/{templateId}/questions/{questionId}/options/{optionId}Remove one answer option from a question of a draft.supplier_template:writePlan Growth+ - POSTSubmit a draft for approvalScope
/supplier-assessment-templates/{templateId}/submitSend a draft to the people who can publish it.supplier_template:writePlan Growth+ - POSTWithdraw a submitted draftScope
/supplier-assessment-templates/{templateId}/withdrawReturn a version that is awaiting approval todraftso it can be edited again.supplier_template:writePlan Growth+
API Tokens
- GETConsole session (Owner or Manager)
- POSTConsole session (Owner or Manager)
- GETList assignable token scopesConsole session (Owner or Manager)
/tokens/scopesThe scope catalogue used by the token dialog: every scope that POST /tokens accepts, its group and resource, whether it needs an expiry (and the maximum life… - DELETERevoke an API tokenConsole session (Owner or Manager)
/tokens/{tokenId}Revoke a token (not from a support session: SUPPORT_SESSION_NO_MINT).
Health
- GETNone (public)
Access
- GETScope
access_review:read
Assets
- GETScope
asset:read
Audit trail
- GETList audit trail entries (ids, codes and chain fields only)Scope
/audit-trailRequires theaudit_log:readscope.audit_log:readPlan Growth+ - GETScope
audit_log:verifyPlan Growth+
Compliance
- GETGet the compliance posture overview (scores, counts, trend)Scope
/compliance/overviewRequires thecompliance:readscope.compliance:readPlan Growth+ - GETScope
compliance:readPlan Scale+
Employees
- GETScope
employee:read - GETScope
employee:read
ISO projects
- GETScope
iso:readPlan Growth+ - GETScope
iso:readPlan Growth+ - GETList a project’s evidence metadataScope
/iso/projects/{projectId}/evidenceRequires theevidence:readscope.evidence:readPlan Growth+ - GETScope
iso:readPlan Growth+ - GETList a project’s policies with acknowledgement countsScope
/iso/projects/{projectId}/policiesRequires theiso:readscope.iso:readPlan Growth+ - GETGet a project’s audit readiness (codes and counts)Scope
/iso/projects/{projectId}/readinessRequires theiso:readscope.iso:readPlan Growth+ - GETScope
iso:readPlan Growth+ - GETList a project’s Statement of Applicability entriesScope
/iso/projects/{projectId}/soaRequires theiso:readscope.iso:readPlan Growth+
Monitoring
- GETGet a project’s continuous monitoring statusScope
/iso/projects/{projectId}/monitoringRequires thecompliance:readscope.compliance:readPlan Scale+
Risk records
- GETScope
risk:readPlan Growth+ - GETScope
risk:readPlan Growth+
Suppliers
- GETScope
supplier:read - GETScope
supplier:read - GETScope
supplier:read - GETScope
supplier:read
Was this page helpful?