SecurityScorecard · Schema
customScorecardSchema
CompanyEnterpriseCybersecuritySecurity RatingsThird-Party Risk ManagementRisk ManagementAttack SurfaceCompliance
Properties
| Name | Type | Description |
|---|---|---|
| id | string | custom scorecard id |
| uuid | string | uuid to identify custom scorecard, same to id |
| name | string | name of the custom scorecard |
| description | string | description of the custom scorecard |
| managed_by | string | specify edit access levels of private (me only), team, or company |
| share_with | string | specify who can access this scorecard, if company wide or public to anyone in the platform |
| visibility_level | string | specify who can see this scorecard, if private, company or public in the platform |
| owned_by | string | specify who owns the custom scorecard, only when managedBy value is private |
| is_entity | boolean | |
| customer_id | string | the organization id of the user who created the custom scorecard |
| base | array | collection of parent scorecards whose digital footprints were filtered in order to create a custom scorecard |
| filter | object | base footprint filters that make up a custom scorecard |
| bulk | array | optional footprint filters loaded in bulk from a file (CSV) |
| created | string | created date |
| created_by | string | user who created the object |
| updated_at | string | created date |
| updated_by | string | user who updated the object |
| version | number | Version number of Recipe field |
| sources | array | Source Scorecards list |
| filters | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/security-scorecard/main/json-schema/security-scorecard-custom-scorecard-schema-schema.json",
"title": "customScorecardSchema",
"x-generated": "2026-10-14",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/security-scorecard-securityscorecard-api-openapi.yml#/components/schemas/customScorecardSchema",
"type": "object",
"properties": {
"id": {
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "custom scorecard id",
"type": "string"
},
"uuid": {
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "uuid to identify custom scorecard, same to id",
"type": "string"
},
"name": {
"type": "string",
"description": "name of the custom scorecard"
},
"description": {
"type": "string",
"description": "description of the custom scorecard"
},
"managed_by": {
"type": "string",
"description": "specify edit access levels of private (me only), team, or company"
},
"share_with": {
"type": "string",
"description": "specify who can access this scorecard, if company wide or public to anyone in the platform"
},
"visibility_level": {
"type": "string",
"description": "specify who can see this scorecard, if private, company or public in the platform"
},
"owned_by": {
"type": "string",
"description": "specify who owns the custom scorecard, only when managedBy value is private"
},
"is_entity": {
"type": "boolean"
},
"customer_id": {
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "the organization id of the user who created the custom scorecard",
"type": "string"
},
"base": {
"type": "array",
"items": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "domain of the custom scorecard"
},
"name": {
"type": "string",
"description": "name of the custom scorecard"
},
"grade": {
"type": "string",
"description": "grade of the custom scorecard"
},
"score": {
"type": "integer",
"description": "score of the custom scorecard"
}
},
"additionalProperties": false
},
"description": "collection of parent scorecards whose digital footprints were\n \n filtered in order to create a custom scorecard"
},
"filter": {
"type": "object",
"properties": {
"ips": {
"type": "array",
"items": {
"type": "string"
},
"description": "collection of footprint ip filters"
},
"domains": {
"type": "array",
"items": {
"type": "string"
},
"description": "collection of footprint domain filters"
},
"countries": {
"type": "array",
"items": {
"type": "string"
},
"description": "collection of footprint country filters"
},
"filter_toggle_setting": {
"type": "string",
"description": "filter toggle setting"
}
},
"additionalProperties": false,
"required": [
"ips",
"domains"
],
"description": "base footprint filters that make up a custom scorecard"
},
"bulk": {
"type": "array",
"items": {
"type": "object",
"properties": {
"filename": {
"type": "string",
"description": "name of the file used to load this bulk"
},
"excludes": {
"type": "boolean",
"description": "true to exclude assets matching bulk filters (defaults to false, meaning, to include)"
},
"ips": {
"type": "array",
"items": {
"type": "string"
},
"description": "collection of footprint ip filters"
},
"domains": {
"type": "array",
"items": {
"type": "string"
},
"description": "collection of footprint domain filters"
}
},
"additionalProperties": false,
"required": [
"filename"
]
},
"description": "optional footprint filters loaded in bulk from a file (CSV)"
},
"created": {
"format": "date-time",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}:\\d{2}\\.{0,1}[0-9]*Z$",
"description": "created date"
},
"created_by": {
"type": "string",
"description": "user who created the object"
},
"updated_at": {
"format": "date-time",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}:\\d{2}\\.{0,1}[0-9]*Z$",
"description": "created date"
},
"updated_by": {
"type": "string",
"description": "user who updated the object"
},
"version": {
"type": "number",
"description": "Version number of Recipe field"
},
"sources": {
"type": "array",
"items": {
"type": "string"
},
"description": "Source Scorecards list"
},
"filters": {
"type": "object",
"properties": {
"includes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"index": {
"type": "number",
"description": "index of the filter"
},
"include": {
"type": "array",
"description": "list of footprint filters to include, only one filter type is allowed, ips or domains or countries or footprint tags, over a condition (no more than one)",
"items": {
"type": "object",
"properties": {
"index": {
"type": "number",
"description": "index of the filter"
},
"condition": {
"type": "string",
"enum": [
"is",
"is not",
"not",
"includes_all"
],
"description": "condition to apply to the filter"
},
"ip": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of footprint ips filters to add. "
},
"domain": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of footprint domains filters to add"
},
"country": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of footprint countries filters to add"
},
"footprint_tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of footprint tags filters to add"
},
"associated_assets": {
"type": "array",
"items": {
"type": "string"
},
"description": "condition to apply to the filter"
}
},
"additionalProperties": false,
"description": "custom scorecard filter condition"
}
}
},
"additionalProperties": false
},
"description": "list of include filters to include"
},
"excludes": {
"type": "array",
"description": "list of footprint filters to exclude, only one filter type is allowed, ips or domains or countries or footprint tags, over a condition (no more than one)",
"items": {
"type": "object",
"properties": {
"index": {
"type": "number",
"description": "index of the filter"
},
"condition": {
"type": "string",
"enum": [
"is",
"is not",
"not",
"includes_all"
],
"description": "condition to apply to the filter"
},
"ip": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of footprint ips filters to add. "
},
"domain": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of footprint domains filters to add"
},
"country": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of footprint countries filters to add"
},
"footprint_tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of footprint tags filters to add"
},
"associated_assets": {
"type": "array",
"items": {
"type": "string"
},
"description": "condition to apply to the filter"
}
},
"additionalProperties": false,
"description": "custom scorecard filter condition"
}
},
"issues": {
"type": "object",
"properties": {
"include": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of issues to filter"
},
"exclude": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of issues to filter"
}
},
"additionalProperties": false,
"description": "list of issues to filter"
}
},
"additionalProperties": false
}
},
"additionalProperties": false,
"required": [
"id",
"uuid",
"name",
"customer_id",
"base",
"filter",
"created",
"created_by",
"version",
"sources",
"filters"
]
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/security-scorecard-custom-scorecard-schema"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.