Documentation

Getting Started

Getting Started

Start using the FastBusiness API

FastBusiness API allows developers to search, retrieve, generate, and refresh structured business profile data through simple JSON endpoints.

01

Overview

FastBusiness API is designed to help applications access enriched business profile information in a structured and developer-friendly format.

What the API provides

  • Business profile lookup by ID, search query, and saved profile data.
  • Structured JSON responses for use in apps, dashboards, CRMs, and internal tools.
  • Async profile generation for businesses that are not already in the database.
  • Profile refresh support when newer business information is needed.
  • Company data including identifiers, industry, location, key people, competitors, capabilities, and source links.
  • Source tracking so users can understand where profile data came from.
Best for: business intelligence tools, due diligence workflows, enrichment systems, dashboards, CRMs, and internal research automation.
02

Quick Start

Make your first request by sending a GET request to the business search endpoint.

Example Request GET
GET /api/businesses/search/?q=UGL%20Limited
cURL Example Terminal
curl -X GET "https://fastbusinessapi.com/api/businesses/search/?q=UGL%20Limited" \

-H "X-User-Email: [your@email.com](mailto:your@email.com)" 
-H "APIKEY: your_api_key" 
-H "Content-Type: application/json"

Basic flow

  1. Create or retrieve your API key from your dashboard.
  2. Send your user email and API key in the request headers.
  3. Search first using GET /api/businesses/search/?q=....
  4. If a match is found, use the returned business profile object.
  5. If no match is found, call POST /api/businesses/generate/.
  6. Use the job ID to check generation progress with GET /api/businesses/generation-jobs/{job_id}/.
  7. Use the returned JSON response inside your application.
03

Authentication

FastBusiness API uses API key authentication. Every request must include your user email and API key in the request headers.

Required Headers HTTP
X-User-Email: your@email.com

APIKEY: your_api_key
Content-Type: application/json
Header Required Description
X-User-Email Yes The email address connected to the FastBusiness account making the request.
APIKEY Yes Your private API key used to authenticate requests.
Content-Type Yes Use application/json for JSON requests.
Security note: Never expose your API key in frontend JavaScript, public GitHub repositories, mobile apps, or client-side code. Keep it on your backend server.
04

Base URL

All API requests are made from the base API URL. Combine the base URL with an endpoint path to create a full request URL.

Production Base URL
https://fastbusinessapi.com/api

Endpoint example

Combine the base URL with the endpoint path to create a full request URL.

https://fastbusinessapi.com/api/businesses/search/?q=UGL%20Limited
Local development note: When running the project locally, your local API URL will usually be http://127.0.0.1:8000/api or http://localhost:8000/api.

Core API

Business Profile API

The Core API endpoints allow developers to generate structured business profiles, search existing business records, retrieve saved profiles, and understand the JSON response format returned by FastBusiness API.

05

Generate Business Profile

Generate a structured business profile using a business name. This endpoint is used when a business does not already exist in the system or when your application needs to create a new enriched business profile.

POST /api/businesses/generate/

What this endpoint does

  • Accepts a business name in the request body.
  • Optionally accepts a website URL and country to improve matching and enrichment.
  • Checks whether a matching business profile already exists.
  • Returns an existing business profile if a strong match is found.
  • Queues a generation job if a new business profile needs to be created.
Body Field Required Type Description
business_name Yes string The name of the business you want to generate a profile for.
website_url No string The known website URL for the business. This can improve matching and profile accuracy.
country No string The country associated with the business. This can help with regional identifiers and source selection.
Example Request POST
curl -X POST "https://fastbusinessapi.com/api/businesses/generate/" \
  -H "X-User-Email: your@email.com" \
  -H "APIKEY: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "business_name": "UGL Limited",
    "website_url": "https://www.ugllimited.com",
    "country": "Australia"
  }'
Example Response — Job Queued JSON
{
  "status": "queued",
  "job_id": "job_123456",
  "message": "Business profile generation has been queued."
}
Example Response — Existing Profile JSON
{
  "status": "existing",
  "message": "A matching business profile already exists.",
  "business": {
    "id": 9,
    "business_name": "UGL Limited",
    "business_type": "private",
    "website_url": "https://www.ugllimited.com",
    "country": "Australia",
    "industry": "Construction and engineering services"
  }
}
Example Error Response JSON
{
  "error": "Missing required field: business_name"
}
Recommended flow: Search for the business first. If no existing result is found, call this endpoint to generate a new profile.
06

Search Businesses

Search for an existing business profile using a business name or search phrase. This endpoint helps developers check whether a business is already stored before generating a new profile.

GET /api/businesses/search/
Query Parameter Required Type Description
q Yes string The business name or search phrase to match against saved business profiles.
Example Request GET
curl -X GET "https://fastbusinessapi.com/api/businesses/search/?q=UGL%20Limited" \
  -H "X-User-Email: your@email.com" \
  -H "APIKEY: your_api_key" \
  -H "Content-Type: application/json"
Example Response — Match Found JSON
{
  "found": true,
  "query": "ugl limited",
  "result": {
    "id": 9,
    "business_name": "UGL Limited",
    "business_type": "private",
    "website_url": "https://www.ugllimited.com",
    "linkedin": "https://www.linkedin.com/company/ugl-limited/life/graduates",
    "abn": "85009180287",
    "acn": "009180287",
    "stock_ticker": "",
    "exchange": "",
    "employee_count": "7,850",
    "sector": "Engineering",
    "industry": "Construction and engineering services",
    "short_description": "UGL Limited is an engineering and services company that provides construction, maintenance, and asset management services.",
    "quick_company_capabilities_description": "Engineering construction, maintenance, and asset management services for rail, resources, and infrastructure sectors",
    "headquarters": "North Sydney, New South Wales",
    "country": "Australia",
    "competitors": [
      {
        "competitor": "John Holland Group Pty Ltd",
        "quick_description": "Engineering and construction services for infrastructure, rail, and transport",
        "competitive_score": 0.95
      },
      {
        "competitor": "DT Infrastructure",
        "quick_description": "Provider of rail infrastructure solutions with expertise in construction and maintenance",
        "competitive_score": 0.9
      }
    ],
    "key_people": [
      {
        "name": "Sam Goldsmith",
        "position": "Managing Director",
        "description": "Appointed Managing Director in January 2026."
      }
    ],
    "sources": [
      "https://www.ugllimited.com",
      "https://www.ugllimited.com/about-ugl/leadership",
      "https://johnholland.com.au/"
    ],
    "created_at": "2026-05-31T15:23:07.158997Z",
    "updated_at": "2026-05-31T15:23:07.159009Z"
  },
  "score": 1.4
}
Example Response — No Match JSON
{
  "found": false,
  "query": "Example Business",
  "result": null,
  "message": "No matching business profile was found."
}

When to use this endpoint

  • Before generating a new profile.
  • When checking whether a business already exists in your system.
  • When building search bars, dashboards, CRMs, or enrichment tools.
  • When avoiding duplicate generation jobs for businesses that already exist.
Match score: The top-level score field represents how strongly the search query matched the saved business profile. It is a search match score, not a data confidence score.
07

Response Format

FastBusiness API returns JSON responses. Depending on the endpoint, responses may include a business profile object, a search result, a queued job response, an existing profile response, a job status response, or an error object.

Standard response types

Your application should check the response status and key fields before using the returned data. Generation and refresh endpoints may return immediately with a queued job instead of a completed business profile.

Response Type Used By Description
Business profile object GET /api/businesses/{id}/ Returns a saved structured business profile.
Search result object GET /api/businesses/search/ Returns whether a matching business profile was found, the matched profile, and a top-level match score.
Queued job object POST /api/businesses/generate/ Returns a job ID when profile generation is queued.
Existing profile object POST /api/businesses/generate/ Returns an existing business profile when a strong match already exists.
Job status object GET /api/businesses/generation-jobs/{job_id}/ Returns the current generation or refresh job status, progress, and completed profile when available.
Error object All endpoints Returns an error message when the request fails.
Example Business Profile Response JSON
{
  "id": 9,
  "business_name": "UGL Limited",
  "business_type": "private",
  "website_url": "https://www.ugllimited.com",
  "linkedin": "https://www.linkedin.com/company/ugl-limited/life/graduates",
  "abn": "85009180287",
  "acn": "009180287",
  "stock_ticker": "",
  "exchange": "",
  "employee_count": "7,850",
  "sector": "Engineering",
  "industry": "Construction and engineering services",
  "short_description": "UGL Limited is an engineering and services company that provides construction, maintenance, and asset management services.",
  "quick_company_capabilities_description": "Engineering construction, maintenance, and asset management services for rail, resources, and infrastructure sectors",
  "headquarters": "North Sydney, New South Wales",
  "country": "Australia",
  "competitors": [
    {
      "competitor": "John Holland Group Pty Ltd",
      "quick_description": "Engineering and construction services for infrastructure, rail, and transport",
      "competitive_score": 0.95
    }
  ],
  "key_people": [
    {
      "name": "Sam Goldsmith",
      "position": "Managing Director",
      "description": "Appointed Managing Director in January 2026."
    }
  ],
  "sources": [
    "https://www.ugllimited.com",
    "https://www.ugllimited.com/about-ugl/leadership"
  ],
  "created_at": "2026-05-31T15:23:07.158997Z",
  "updated_at": "2026-05-31T15:23:07.159009Z"
}
Example Error Response JSON
{
  "error": "Please wait before generating another business profile.",
  "message": "Profile generation is limited to prevent spam and expensive duplicate processing.",
  "remaining_seconds": 87
}
08

Field Definitions

Business profile objects contain company identity, classification, location, capability, leadership, competitor, source, and metadata fields. Some fields may be empty if the data is unavailable or could not be confidently verified.

Field Type Description
id integer Unique FastBusiness business profile ID.
business_name string The official or most commonly recognised business name.
business_type string The organisation type, such as private, public, government, non-profit, subsidiary, or unknown.
website_url string The primary website URL for the business.
linkedin string The official LinkedIn company page, when available.
abn string Australian Business Number, when available.
acn string Australian Company Number, when available.
stock_ticker string The public market ticker symbol, when the business is publicly listed.
exchange string The stock exchange where the business is listed.
employee_count string Reported or estimated employee count.
sector string Broad sector classification for the business.
industry string More specific industry classification.
short_description string A short summary describing what the business does.
quick_company_capabilities_description string A short capability summary describing the products, services, or operational strengths of the business.
headquarters string The company headquarters location.
country string The primary country associated with the business.
competitors array A list of similar or competing organisations found during enrichment.
competitors[].competitor string The competitor organisation name.
competitors[].quick_description string A short explanation of why the competitor is relevant.
competitors[].competitive_score number A relevance or similarity score for the competitor.
key_people array A list of publicly identified people connected to the business.
key_people[].name string The person's name.
key_people[].position string The person's role, title, or position.
key_people[].description string Short public context about the person, when available.
sources array Source URLs used to support or build the business profile.
created_at string ISO timestamp showing when the profile was created.
updated_at string ISO timestamp showing when the profile was last updated.
score number Top-level search match score returned by search responses. This is not part of the business profile object.
Important: Empty strings do not always mean the business does not have that information. It may mean the field was unavailable, not verified, or not relevant to that company.

Data Guide

Understanding API Data

FastBusiness API returns structured business data with fields that help developers understand company identity, industry, capabilities, key people, competitors, source links, and profile metadata. This section explains match scores, unavailable fields, data sources, and supported country coverage.

09

Match Scores

Search responses may include a top-level score field. This score represents how strongly the search query matched an existing saved business profile.

How to read match scores

A higher match score generally means the search query strongly matched the returned business profile. A lower score may mean the result is a weaker match and should be reviewed before being used automatically.

Field Used By Description
score GET /api/businesses/search/ The top-level search match score returned with a found business profile.
competitors[].competitive_score Business profile responses A competitor relevance or similarity score for a specific competitor item.
Example Search Match Score JSON
{
  "found": true,
  "query": "ugl limited",
  "result": {
    "id": 9,
    "business_name": "UGL Limited"
  },
  "score": 1.4
}
Important: The top-level score field is a search match score. It is not a guarantee of business data accuracy, completeness, or reliability.
10

Unavailable Fields

Some fields may return an empty string, empty array, or short unavailable-data message when information is not available, not verified, or not relevant to the business.

Why fields may be empty

  • The business does not publicly provide the information.
  • The data is not relevant to the business type.
  • The information could not be confidently verified from available sources.
  • The business may be private, non-profit, government-owned, or not publicly listed.
  • The profile may need to be refreshed if newer information is available.
Example Empty Fields JSON
{
  "business_name": "UGL Limited",
  "stock_ticker": "",
  "exchange": "",
  "competitors": [],
  "key_people": [],
  "sources": []
}
Field Possible Reason
abn The business may not be Australian, or the ABN could not be verified.
acn The company may not have an ACN, or it was not publicly available.
stock_ticker The business may be private, non-profit, government-owned, or not publicly listed.
exchange No public listing exchange was found for the business.
linkedin An official LinkedIn company page could not be confidently identified.
competitors No relevant competitors were found or returned during enrichment.
key_people No publicly identifiable people were found or returned during enrichment.
sources No source URLs were stored or returned for the profile.
Important: An empty field does not always mean the information does not exist. It means the API did not return a verified value for that field.
11

Data Sources

Business profiles may include source URLs showing where profile information was found or which pages supported the generated business profile.

GET /api/businesses/{id}/sources/

What source data is used for

  • Showing where profile information came from.
  • Helping users verify generated company information.
  • Supporting audit trails in internal research workflows.
  • Improving transparency for business profile generation.
Example Request GET
curl -X GET "https://fastbusinessapi.com/api/businesses/9/sources/" \
  -H "X-User-Email: your@email.com" \
  -H "APIKEY: your_api_key" \
  -H "Content-Type: application/json"
Example Response JSON
{
  "business_id": 9,
  "business_name": "UGL Limited",
  "sources": [
    "https://www.ugllimited.com",
    "https://www.ugllimited.com/about-ugl/leadership",
    "https://johnholland.com.au/",
    "https://dtinfrastructure.com.au/rail/"
  ]
}
Recommended use: Display sources beside generated business data when building dashboards, due diligence tools, or internal review pages.
12

Supported Countries

FastBusiness API can return business profile data for companies across different countries, but result depth depends on public source availability, company visibility, official websites, registries, and whether enough reliable information can be found.

Country-specific fields

Some fields are tied to specific countries or legal systems. For example, abn and acn are Australian identifiers, while stock ticker and exchange fields only apply to publicly listed companies.

Country / Region Supported Data Notes
Australia Business name, website, ABN, ACN, industry, headquarters, country, key people, competitors, and sources. ABN and ACN fields are most relevant for Australian businesses.
United States Business name, website, sector, industry, ticker, exchange, headquarters, country, key people, competitors, and sources. Public company fields may be available for listed companies.
United Kingdom Business name, website, sector, industry, headquarters, country, key people, competitors, and sources. Company identifiers may be expanded in future versions.
Other countries Business name, website, sector, industry, description, headquarters, country, competitors, key people, and sources where available. Availability depends on public source coverage and data quality.
Example Country Field JSON
{
  "business_name": "UGL Limited",
  "headquarters": "North Sydney, New South Wales",
  "country": "Australia",
  "abn": "85009180287",
  "acn": "009180287"
}
Note: Supported country coverage may vary depending on the availability and quality of public business information.

Developer Reference

Build reliably with FastBusiness API

This section explains how errors work, how rate limits are applied, how to make requests from code, and how API keys should be used securely in production applications.

13

Errors

FastBusiness API returns JSON error responses when a request is missing required information, fails authentication, exceeds limits, or references a resource that cannot be found.

Common error format

Most errors include an error field. Some responses may also include a message, remaining_seconds, remaining_hours, or other fields that help your application decide what to do next.

Example Error Response JSON
{
  "error": "Missing required field: business_name"
}
Status Code Meaning Common Cause
400 Bad Request A required field, query parameter, or request value is missing or invalid.
403 Forbidden Missing or invalid API key, invalid email header, inactive subscription, or permission failure.
404 Not Found No matching business profile, lookup result, source list, or generation job was found.
429 Too Many Requests A generation cooldown, refresh cooldown, or request limit has been reached.
202 Accepted A generation or refresh job has been queued or is already running.
Missing Search Query 400
{
  "error": "Missing search query. Use ?q=company_name"
}
No Business Match Found 404
{
  "query": "Example Company",
  "found": false,
  "message": "No good match found.",
  "score": 0.28
}
Generation Job Not Found 404
{
  "error": "Generation job not found."
}
Generate Cooldown Error 429
{
  "error": "Please wait before generating another business profile.",
  "message": "Profile generation is limited to prevent spam and expensive duplicate processing.",
  "remaining_seconds": 87
}
Important: Authentication and permission errors may be returned before your endpoint logic runs. Always include the required headers on every protected request.
14

Rate Limits

Rate limits protect the API from spam, accidental loops, and expensive duplicate processing. Limits are checked against your account usage and subscription plan.

How rate limits work

  • Each request must belong to an authenticated API user.
  • The user must have an active or trial subscription.
  • Requests are checked against the account's allowed requests per minute.
  • Profile generation has a cooldown to reduce duplicate processing.
  • Profile refresh has a separate cooldown because refreshes are heavier operations.
Limit Type Applies To Behaviour
Requests per minute All protected API endpoints Checked against your subscription's max_request_per_min.
Generation cooldown POST /api/businesses/generate/ Prevents repeated generation requests within a short cooldown window.
Refresh cooldown POST /api/businesses/{id}/refresh/ Prevents the same profile from being refreshed too frequently.
Duplicate running job protection Generate and refresh endpoints If a matching job is already queued or processing, the existing job is returned.
Plan Requests Per Minute Monthly Token Allowance
Starter 5 requests per minute 50 tokens
Developer 20 requests per minute 2,000 tokens
Enterprise 50 requests per minute 10,000 tokens
Minute Rate Limit Error 403
{
  "detail": "Sorry you've exceeded the rate limit for this minute. Please wait."
}
Generate Cooldown Error 429
{
  "error": "Please wait before generating another business profile.",
  "message": "Profile generation is limited to prevent spam and expensive duplicate processing.",
  "remaining_seconds": 87
}
Refresh Cooldown Error 429
{
  "error": "This business profile was refreshed recently.",
  "message": "A business profile can only be refreshed once every 2 days.",
  "business_id": 9,
  "business_name": "UGL Limited",
  "remaining_seconds": 172000,
  "remaining_hours": 47.78
}
Developer tip: When your app receives a cooldown response, use remaining_seconds to show a countdown or delay the next request automatically.
15

Code Examples

These examples show how to call the API using cURL, Python, and JavaScript. Always keep your API key on the backend and never expose it in public frontend code.

cURL — Search Businesses Terminal
curl -X GET "https://fastbusinessapi.com/api/businesses/search/?q=UGL%20Limited" \
  -H "X-User-Email: your@email.com" \
  -H "APIKEY: your_api_key" \
  -H "Content-Type: application/json"
cURL — Generate Business Profile Terminal
curl -X POST "https://fastbusinessapi.com/api/businesses/generate/" \
  -H "X-User-Email: your@email.com" \
  -H "APIKEY: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "business_name": "UGL Limited",
    "website_url": "https://www.ugllimited.com",
    "country": "Australia"
  }'
Python — Search Businesses Python
import requests

BASE_URL = "https://fastbusinessapi.com/api"

headers = {
    "X-User-Email": "your@email.com",
    "APIKEY": "your_api_key",
    "Content-Type": "application/json",
}

response = requests.get(
    f"{BASE_URL}/businesses/search/",
    headers=headers,
    params={"q": "UGL Limited"},
    timeout=60,
)

data = response.json()

print(data)
Python — Generate and Poll Job Python
import time
import requests

BASE_URL = "https://fastbusinessapi.com/api"

headers = {
    "X-User-Email": "your@email.com",
    "APIKEY": "your_api_key",
    "Content-Type": "application/json",
}

generate_response = requests.post(
    f"{BASE_URL}/businesses/generate/",
    headers=headers,
    json={
        "business_name": "UGL Limited",
        "website_url": "https://www.ugllimited.com",
        "country": "Australia",
    },
    timeout=300,
)

generate_data = generate_response.json()

if generate_data.get("status") == "queued":
    job_id = generate_data["job_id"]

    while True:
        job_response = requests.get(
            f"{BASE_URL}/businesses/generation-jobs/{job_id}/",
            headers=headers,
            timeout=60,
        )

        job_data = job_response.json()

        print(job_data["status"], job_data.get("progress_percent"))

        if job_data["status"] in ["completed", "failed", "cancelled"]:
            break

        time.sleep(3)

elif generate_data.get("status") == "existing":
    business = generate_data["business"]

    print(business)

else:
    print(generate_data)
JavaScript — Search Businesses Node.js
const BASE_URL = "https://fastbusinessapi.com/api";

async function searchBusiness(query) {
    const url = `${BASE_URL}/businesses/search/?q=${encodeURIComponent(query)}`;

    const response = await fetch(url, {
        method: "GET",
        headers: {
            "X-User-Email": "your@email.com",
            "APIKEY": "your_api_key",
            "Content-Type": "application/json"
        }
    });

    const data = await response.json();

    console.log(data);

    return data;
}

searchBusiness("UGL Limited");
JavaScript — Generate Business Profile Node.js
const BASE_URL = "https://fastbusinessapi.com/api";

async function generateBusinessProfile() {
    const response = await fetch(`${BASE_URL}/businesses/generate/`, {
        method: "POST",
        headers: {
            "X-User-Email": "your@email.com",
            "APIKEY": "your_api_key",
            "Content-Type": "application/json"
        },
        body: JSON.stringify({
            business_name: "UGL Limited",
            website_url: "https://www.ugllimited.com",
            country: "Australia"
        })
    });

    const data = await response.json();

    console.log(data);

    return data;
}

generateBusinessProfile();
Recommended pattern: Search first. If no matching business profile is found, call the generate endpoint, then poll the generation job endpoint until the job is completed or failed.
16

API Keys

API keys identify and authenticate your requests. Every protected request must include both the email connected to the user account and an API key that belongs to that user.

GET /api/api-keys/

Required authentication headers

  • X-User-Email must contain a valid account email address.
  • APIKEY must contain a valid API key.
  • The API key must belong to the same user as the email header.
  • The account must have an active or trial subscription.
Required Headers HTTP
X-User-Email: your@email.com
APIKEY: your_api_key
Content-Type: application/json
List API Keys GET
curl -X GET "https://fastbusinessapi.com/api/api-keys/" \
  -H "X-User-Email: your@email.com" \
  -H "APIKEY: your_api_key" \
  -H "Content-Type: application/json"
Validation Step Failure Message
Missing email header Missing X-User-Email header.
Invalid email format Invalid X-User-Email header.
Unknown email Unknown X-User-Email header.
Missing API key Missing APIKEY header.
Invalid API key Invalid or unknown APIKEY header.
Email/key mismatch APIKEY does not belong to X-User-Email user.
No subscription No active subscription found.
Expired subscription Account subscription expired or invalid.
Security note: Do not expose API keys in frontend JavaScript, public GitHub repositories, screenshots, browser requests, or mobile app bundles. Treat API keys like passwords.

Support

Updates and developer support

Stay informed about API changes, new endpoints, response updates, and support options for developers building with FastBusiness API.

17

Changelog

The changelog tracks important updates to FastBusiness API, including new endpoints, response format changes, authentication updates, and improvements to business profile generation.

Current

Expanded business profile response

Business profile responses now include richer company data such as key people, competitors, company capabilities, source URLs, profile timestamps, identifiers, industry details, headquarters, and country information.

Profiles Response Format Data Fields
Current

Search response match score added

Search responses now include a top-level match score that helps developers understand how strongly the search query matched the returned saved business profile.

Search Match Score Results
Current

Business generation workflow added

Added support for queued business profile generation. Developers can submit a business name, optionally include a website URL and country, receive a job ID, and poll the generation job endpoint for progress updates.

Generate Jobs Async
Current

Refresh workflow and source tracking added

Added profile refresh support and source tracking so developers can refresh saved business profiles and display source URLs beside enriched company data.

Refresh Sources Transparency
Current

Usage, rate limit, and API key handling added

Added request authentication using user email and API key headers, subscription checks, request-per-minute rate limits, generation cooldowns, refresh cooldowns, and API key listing.

Auth Rate Limits API Keys
Current

Initial API documentation release

Added documentation for authentication, business profile generation, business search, response formats, data fields, source URLs, rate limits, API keys, support guidance, and developer code examples.

Docs API Reference Getting Started
Developer tip: Check the changelog before updating your integration, especially if your application relies on specific response fields, endpoint behaviour, or workflow assumptions.
18

Support

Use support when you need help with authentication, API keys, endpoint errors, rate limits, billing access, queued jobs, or unexpected response behaviour.

Before contacting support

  • Confirm your request includes both X-User-Email and APIKEY.
  • Check that your API key belongs to the same user email being sent in the request.
  • Make sure your account has an active or trial subscription.
  • Check whether you are being rate limited or waiting on a queued generation job.
  • Check whether a generate or refresh cooldown is active.
  • Include the endpoint, request method, status code, and error response when asking for help.
Issue What to include
Authentication issue The endpoint, request method, headers used, and the exact error message returned.
Rate limit issue The endpoint called, time of request, status code, and whether a cooldown response was returned.
Generation job issue The job_id, current job status, progress value, and the business name submitted.
Refresh issue The business profile ID, business name, status code, and any cooldown message returned.
Unexpected business data The business name, returned profile ID, source URLs, and fields that look incorrect or missing.
Missing source data The business profile ID and the response from GET /api/businesses/{id}/sources/.
Billing or plan issue Your account email and the plan or subscription status shown in your dashboard.
Helpful Support Message Example Template
Endpoint: POST /api/businesses/generate/
Business name: UGL Limited
Status code: 429
Error response:
{
  "error": "Please wait before generating another business profile.",
  "message": "Profile generation is limited to prevent spam and expensive duplicate processing.",
  "remaining_seconds": 87
}

Issue:
My app is receiving this response when trying to generate a business profile.
Unexpected Data Support Message Example Template
Endpoint: GET /api/businesses/search/?q=UGL%20Limited
Returned profile ID: 9
Field issue: competitors
Source URLs checked:
- https://www.ugllimited.com
- https://www.ugllimited.com/about-ugl/leadership

Issue:
The returned competitor data looks different from what we expected in our application.
Security note: Never send your full API key in support messages. If needed, only share the key name, the visible prefix, the last few characters, or a screenshot with the key hidden.