{
 "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"
   }
  }
 }
}