Black Flag Alert Open API v2 API

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

Operations 7

POST /api/v2/signup V2 Signup #
GET /api/v2/company/{company_number} V2 Company #
GET /api/v2/company/{company_number}/narrative V2 Narrative #
GET /api/v2/contacts/{company_number} V2 Contacts #
POST /api/v2/batch V2 Batch #
GET /api/v2/usage V2 Usage #
GET /api/v2/health V2 Health #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/blackflagalert-com:black-flag-alert-open-api-v2-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

blackflagalert-com-api-openapi.json Raw ↑
{
 "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"
   }
  }
 }
}