Every API here is available over the APIs.io API and to AI agents over MCP.
{
"openapi": "3.1.0",
"info": {
"title": "Black Flag Alert Open API v2",
"description": "England & Wales company credit-risk intelligence for AI agents and integrations. R-Score (0-100) combines filed accounts, filing behaviour, charges, CCJs and winding-up activity into one number. Auth: X-API-Key header. Always send a custom User-Agent header (default Python-urllib is blocked with 403 at the edge). 401 and 429 errors return machine-readable error_code and reason ('lapsed' vs 'quota') plus retry_after_seconds. Free trial key (14 days, 100 calls/day): POST /api/v2/signup. Machine summary: https://blackflagalert.com/llms.txt",
"version": "2.0.0"
},
"servers": [
{
"url": "https://blackflagalert.com"
}
],
"paths": {
"/api/v2/signup": {
"post": {
"tags": [
"open-api"
],
"summary": "V2 Signup",
"description": "Self-service free trial: issues a 14-day API key immediately.\n\nOne active trial key per email. The plaintext key is returned here ONCE\nand also emailed as a backup.",
"operationId": "v2_signup_api_v2_signup_post",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SignupRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/api/v2/company/{company_number}": {
"get": {
"tags": [
"open-api"
],
"summary": "V2 Company",
"description": "Full company profile \u2014 identical payload to /api/v1/company/{cn},\nplus a generated plain-English narrative.",
"operationId": "v2_company_api_v2_company__company_number__get",
"parameters": [
{
"name": "company_number",
"in": "path",
"required": true,
"schema": {
"type": "string",
"title": "Company Number"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/api/v2/company/{company_number}/narrative": {
"get": {
"tags": [
"open-api"
],
"summary": "V2 Narrative",
"description": "Plain-English risk narrative only (cheap, fast \u2014 no RedFlag fetch).",
"operationId": "v2_narrative_api_v2_company__company_number__narrative_get",
"parameters": [
{
"name": "company_number",
"in": "path",
"required": true,
"schema": {
"type": "string",
"title": "Company Number"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/api/v2/contacts/{company_number}": {
"get": {
"tags": [
"open-api"
],
"summary": "V2 Contacts",
"description": "Verified contact details for a company: emails (valid + catch-all only),\nphone, domain. Each successful company lookup counts against contact_limit.",
"operationId": "v2_contacts_api_v2_contacts__company_number__get",
"parameters": [
{
"name": "company_number",
"in": "path",
"required": true,
"schema": {
"type": "string",
"title": "Company Number"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/api/v2/batch": {
"post": {
"tags": [
"open-api"
],
"summary": "V2 Batch",
"description": "Batch enrichment: status, R-Score, overdue flags, charges, CCJs and\nsuggested credit exposure for up to 50 companies in one call.",
"operationId": "v2_batch_api_v2_batch_post",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BatchRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/api/v2/usage": {
"get": {
"tags": [
"open-api"
],
"summary": "V2 Usage",
"description": "This key's rolling-24h usage against its limits.",
"operationId": "v2_usage_api_v2_usage_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
}
}
}
},
"/api/v2/health": {
"get": {
"tags": [
"open-api"
],
"summary": "V2 Health",
"description": "Unauthenticated liveness probe for integrators.",
"operationId": "v2_health_api_v2_health_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
}
}
}
}
},
"components": {
"schemas": {
"BatchRequest": {
"properties": {
"company_numbers": {
"items": {
"type": "string"
},
"type": "array",
"maxItems": 50,
"minItems": 1,
"title": "Company Numbers"
}
},
"type": "object",
"required": [
"company_numbers"
],
"title": "BatchRequest"
},
"HTTPValidationError": {
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
},
"SignupRequest": {
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "Email"
},
"company_name": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
],
"title": "Company Name"
}
},
"type": "object",
"required": [
"email"
],
"title": "SignupRequest"
},
"ValidationError": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"type": "array",
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
},
"input": {
"title": "Input"
},
"ctx": {
"type": "object",
"title": "Context"
}
},
"type": "object",
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError"
}
}
}
}