API Documentation

Everything you need to integrate UK business intelligence into your application.

Quick Start

Get up and running in under a minute:

  1. Get your API key — Sign up on the pricing page. Free tier gives you 100 lookups/month.
  2. Make your first call
    curl -X POST https://ukbusinessintel.com/api/v1/enrich \
      -H "Content-Type: application/json" \
      -H "x-api-key: ukb_your_api_key_here" \
      -d '{"business_name": "Greggs", "location": "Newcastle"}'
  3. Get back enriched data — Companies House records, Google Places ratings, website health, SSL status, and social media links in one JSON response.

Authentication

All API requests require an API key passed via the x-api-key header.

x-api-key: ukb_your_api_key_here

API keys start with ukb_ and are tied to your account. Keep them secret — do not commit them to version control or expose them in client-side code.

Requests without a valid API key will return 401 Unauthorized.

Endpoints

POST/api/v1/enrich

Main enrichment endpoint. Send a business name and location, get back a comprehensive business profile from all data sources.

POST/api/v1/keys

Create a new API key. Requires email address. Returns your API key (shown once, store it safely).

GET/api/v1/usage

Check your current usage and remaining quota for the billing period.

GET/api/v1/health

Service health check. Returns status of the API and upstream data sources.

Request

Send a JSON body to POST /api/v1/enrich with the following fields:

FieldTypeRequiredDescription
business_namestringYesThe name of the business to look up
locationstringYesCity, town, or region (e.g. "Manchester", "London")
company_numberstringNoCompanies House number for exact matching (e.g. "00032954")
domainstringNoBusiness website domain for SSL and social checks (e.g. "greggs.co.uk")

Example request body:

{
  "business_name": "Greggs",
  "location": "Newcastle",
  "company_number": "00032954",
  "domain": "greggs.co.uk"
}

Response

A successful request returns a JSON object with the following top-level sections:

companies_house

company_nameOfficial registered company name
company_numberCompanies House registration number
company_statusActive, dissolved, liquidation, etc.
company_typeType of company (ltd, plc, etc.)
registered_addressFull registered office address
date_of_creationDate the company was incorporated
sic_codesArray of SIC industry classification codes
officersArray of directors and secretaries
filing_historyRecent filings with Companies House

google_places

ratingGoogle star rating (1.0 – 5.0)
user_ratings_totalTotal number of Google reviews
formatted_addressGoogle Maps address
formatted_phone_numberBusiness phone number
websiteBusiness website URL from Google
google_maps_urlDirect link to Google Maps listing
opening_hoursWeekly opening hours (if available)

website

is_liveBoolean — whether the website is responding
status_codeHTTP status code (200, 301, 404, etc.)
urlFinal resolved URL after redirects

ssl

validBoolean — whether the SSL certificate is valid
issuerCertificate issuer (e.g. "Let's Encrypt")
expiresCertificate expiration date
days_remainingDays until certificate expires

social_media

facebookFacebook page URL (or null)
instagramInstagram profile URL (or null)
linkedinLinkedIn page URL (or null)
twitterTwitter/X profile URL (or null)

Code Examples

curl

curl -X POST https://ukbusinessintel.com/api/v1/enrich \
  -H "Content-Type: application/json" \
  -H "x-api-key: ukb_your_api_key_here" \
  -d '{
    "business_name": "Greggs",
    "location": "Newcastle"
  }'

Python (requests)

import requests

response = requests.post(
    "https://ukbusinessintel.com/api/v1/enrich",
    headers={
        "Content-Type": "application/json",
        "x-api-key": "ukb_your_api_key_here"
    },
    json={
        "business_name": "Greggs",
        "location": "Newcastle"
    }
)

data = response.json()
print(f"Company: {data['companies_house']['company_name']}")
print(f"Status: {data['companies_house']['company_status']}")
print(f"Rating: {data['google_places']['rating']}/5")

Node.js (fetch)

const response = await fetch("https://ukbusinessintel.com/api/v1/enrich", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": "ukb_your_api_key_here"
  },
  body: JSON.stringify({
    business_name: "Greggs",
    location: "Newcastle"
  })
});

const data = await response.json();
console.log(`Company: ${data.companies_house.company_name}`);
console.log(`Status: ${data.companies_house.company_status}`);
console.log(`Rating: ${data.google_places.rating}/5`);

MCP Setup (Claude Desktop / Cursor)

Add this to your Claude Desktop or Cursor MCP config:

{
  "mcpServers": {
    "uk-business-intel": {
      "command": "npx",
      "args": ["-y", "uk-business-intelligence-mcp"]
    }
  }
}

Once configured, you can ask Claude: "Look up Greggs in Newcastle" and it will call the API automatically.

Rate Limits

Rate limits are applied per API key. Exceeding the limit returns 429 Too Many Requests.

PlanRate LimitMonthly Quota
Free10 requests/min100 lookups
Starter60 requests/min1,000 lookups
Growth120 requests/min5,000 lookups
Scale120 requests/min25,000 lookups

Pricing

Start free with 100 lookups/month. No credit card required.

See the full pricing breakdown and sign up on the main pricing page.