Get a framework breakdown
GET
/compliance/frameworks/{code}
const url = 'https://api.vendorica.com/v1/compliance/frameworks/example';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.vendorica.com/v1/compliance/frameworks/example \ --header 'Authorization: Bearer <token>'The per-category and per-citation breakdown for one framework, addressed by CODE (dora, nis2, iso27001-2022, soc2, …) rather than by the per-environment uuid. byCitation names the controls mapped to each article, which is what turns “we are 78% ready” into a list of what is missing. An unknown code is a 404.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”code
required
string
Responses
Section titled “Responses”Success
Media typeapplication/json
object
success
required
boolean
data
required
object
overall
required
object
frameworkId
required
string format: uuid
code
required
string
name
required
string
controlsTotal
required
integer
controlsOk
required
integer
controlsNeedsEvidence
required
integer
controlsExpiringSoon
required
integer
controlsExpired
required
integer
controlsDeactivated
required
integer
readinessPct
required
number | null
byCategory
required
Array<object>
object
category
required
string
controlsTotal
required
integer
controlsOk
required
integer
readinessPct
required
number | null
byCitation
required
Array<object>
object
citationId
required
string format: uuid
articleRef
required
string
title
required
string
mappedControls
required
Array<object>
object
controlId
required
string format: uuid
displayId
required
string
name
required
string
status
required
string
timestamp
required
string format: date-time
requestId
string
message
string
Example
{ "success": true, "data": { "overall": { "frameworkId": "30f00833-3adc-4523-89bc-b160f80b406c", "code": "string", "name": "string", "controlsTotal": 1, "controlsOk": 1, "controlsNeedsEvidence": 1, "controlsExpiringSoon": 1, "controlsExpired": 1, "controlsDeactivated": 1, "readinessPct": 1 }, "byCategory": [ { "category": "string", "controlsTotal": 1, "controlsOk": 1, "readinessPct": 1 } ], "byCitation": [ { "citationId": "296381d3-f8a5-4c03-8c4f-d40085aac24c", "articleRef": "string", "title": "string", "mappedControls": [ { "controlId": "22050386-11e4-48cc-89c3-5ddd078cbc9b", "displayId": "string", "name": "string", "status": "string" } ] } ] }, "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H", "message": "string"}Validation error
Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{ "success": false, "error": "Bad request", "code": "BAD_REQUEST", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Unauthorized
Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{ "success": false, "error": "Unauthorized", "code": "UNAUTHORIZED", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Forbidden — missing scope
Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{ "success": false, "error": "Forbidden", "code": "FORBIDDEN", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}No framework with that code
Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{ "success": false, "error": "Resource not found", "code": "NOT_FOUND", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Rate limit exceeded
Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{ "success": false, "error": "Too many requests", "code": "TOO_MANY_REQUESTS", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}