Banking-grade encryption99.9% uptime
Business Data9 min read

Commercial Registration Search API: Find and Verify Businesses Instantly

Search Bahrain's commercial registry by company name, activity, status, and more. Edge's CR Search API returns structured business data for due diligence, market research, and compliance workflows.

Edge Team

Edge Team

Not every business verification starts with a CR number. Sometimes you have a company name, an industry sector, or a partial piece of information and need to find matching businesses in Bahrain's commercial registry. That is the problem Edge's Commercial Registration Search API solves.

While the CR Lookup API retrieves detailed data for a specific CR number you already have, the Search API lets you query the registry with flexible filters — company name, commercial activity, registration status, legal form, and more. It is the difference between looking up a contact by phone number versus searching your address book by name.

For developers building due diligence platforms, compliance tools, market research applications, or onboarding systems, the Search API is the discovery layer that feeds into deeper verification workflows.

Lookup vs. Search: Understanding the Difference

These two APIs serve different stages of the same workflow:

CR Lookup API CR Search API
Input Exact CR number Name, filters, keywords
Output Full company profile List of matching companies
Use case "Tell me everything about CR 12345-1" "Find companies named 'Gulf' in the IT sector"
Analogy Dictionary lookup by word Google search by query

In practice, most KYB and due diligence workflows use both: Search to discover and identify companies, then Lookup to pull complete details on the ones that matter.

Search Capabilities

The CR Search API supports multiple query parameters that can be combined to narrow results precisely.

Search by Company Name

The most common search pattern. Provide a full or partial company name and the API returns all matching registrations.

curl -X GET "https://api.edge.bh/v1/cr/search?name=gulf+technology" \
  -H "X-Api-Key: your_api_key_here" \
  -H "Accept: application/json"

Name search supports both Arabic and English company names. The matching is fuzzy enough to handle minor variations (e.g., "Gulf Tech" will match "Gulf Technology Solutions WLL") while still returning relevant results.

Search by Commercial Activity

Every Bahrain CR is tagged with one or more ISIC activity codes. You can search by activity code or activity description to find all companies registered for a specific type of business.

curl -X GET "https://api.edge.bh/v1/cr/search?activity=6201" \
  -H "X-Api-Key: your_api_key_here" \
  -H "Accept: application/json"

This returns all companies with ISIC code 6201 (Computer programming activities) — useful for market sizing, competitor analysis, or sector-specific due diligence.

Filter by Status

Not all registered companies are active. The status filter lets you narrow results to only active companies, or specifically find expired or suspended registrations.

curl -X GET "https://api.edge.bh/v1/cr/search?name=solutions&status=active" \
  -H "X-Api-Key: your_api_key_here" \
  -H "Accept: application/json"

Available status values: active, expired, suspended, cancelled.

Filter by Legal Form

Search within specific entity types — useful when you only want to find WLLs (With Limited Liability), BSCs (Bahraini Shareholding Companies), or sole proprietorships.

curl -X GET "https://api.edge.bh/v1/cr/search?legal_form=WLL&activity=6201" \
  -H "X-Api-Key: your_api_key_here" \
  -H "Accept: application/json"

Combining Filters

Filters are additive. Combine name, activity, status, and legal form to build precise queries:

curl -X GET "https://api.edge.bh/v1/cr/search?name=digital&status=active&legal_form=WLL&activity=6201" \
  -H "X-Api-Key: your_api_key_here" \
  -H "Accept: application/json"

This query finds active WLL companies with "digital" in their name that are registered for computer programming activities.

Response Structure

The Search API returns a paginated list of matching companies with summary information for each:

{
  "success": true,
  "data": {
    "results": [
      {
        "cr_number": "12345-1",
        "company_name_en": "Gulf Digital Solutions WLL",
        "company_name_ar": "حلول الخليج الرقمية ش.ذ.م.م",
        "status": "Active",
        "legal_form": "WLL",
        "registration_date": "2020-06-15",
        "expiry_date": "2028-06-14",
        "activities": [
          {
            "code": "6201",
            "description_en": "Computer programming activities"
          }
        ]
      },
      {
        "cr_number": "67890-1",
        "company_name_en": "Digital Bay Technologies WLL",
        "company_name_ar": "تقنيات الخليج الرقمي ش.ذ.م.م",
        "status": "Active",
        "legal_form": "WLL",
        "registration_date": "2022-01-10",
        "expiry_date": "2027-01-09",
        "activities": [
          {
            "code": "6201",
            "description_en": "Computer programming activities"
          },
          {
            "code": "6202",
            "description_en": "Computer consultancy activities"
          }
        ]
      }
    ],
    "pagination": {
      "current_page": 1,
      "per_page": 20,
      "total": 47,
      "total_pages": 3
    }
  },
  "credits_used": 1,
  "credits_remaining": 4998
}

Each result includes enough information to identify and triage the company. For full details — owners, capital, address — use the CR number with the CR Lookup API.

Pagination

Search results are paginated to keep response times fast and payloads manageable. Use the page and per_page parameters to navigate through results:

# Get page 2 with 50 results per page
curl -X GET "https://api.edge.bh/v1/cr/search?activity=6201&page=2&per_page=50" \
  -H "X-Api-Key: your_api_key_here" \
  -H "Accept: application/json"

The response includes pagination metadata (total, total_pages, current_page) so your application can render pagination controls or iterate through all results programmatically.

Building a Complete KYB Workflow

The real power of the Search API emerges when you combine it with other Edge services in a structured workflow. Here is how a typical Know Your Business pipeline works:

Step 1: Discovery (Search API)

A compliance officer or automated system searches for a business by name. The Search API returns a list of potential matches.

// Search for the company
const searchResponse = await fetch(
  "https://api.edge.bh/v1/cr/search?name=bahrain+trading&status=active",
  {
    headers: {
      "X-Api-Key": process.env.EDGE_API_KEY,
      "Accept": "application/json",
    },
  }
);

const searchResults = await searchResponse.json();
const matches = searchResults.data.results;

console.log(`Found ${searchResults.data.pagination.total} matching companies`);

Step 2: Identification (Human or Automated)

From the search results, the correct company is identified — either by a human reviewer selecting from a list, or by automated matching logic that compares the results against application data.

// Automated matching: find the best match based on name similarity
const targetName = "Bahrain Trading Company";
const bestMatch = matches.find(
  (company) =>
    company.company_name_en.toLowerCase().includes("bahrain trading")
);

if (!bestMatch) {
  console.error("No matching company found — flag for manual review");
}

Step 3: Detailed Verification (Lookup API)

Once identified, pull the full company profile using the CR Lookup API.

// Get full details for the matched company
const lookupResponse = await fetch(
  `https://api.edge.bh/v1/cr/lookup?cr_number=${bestMatch.cr_number}`,
  {
    headers: {
      "X-Api-Key": process.env.EDGE_API_KEY,
      "Accept": "application/json",
    },
  }
);

const companyDetails = await lookupResponse.json();
const company = companyDetails.data;

// Extract owners for sanctions screening
const owners = company.owners.map((owner) => ({
  name: owner.name_en,
  nationality: owner.nationality,
}));

Step 4: Sanctions Screening

Check the company name and each owner against global sanctions lists using Edge's Sanctions Screening API.

// Screen each owner against sanctions lists
for (const owner of owners) {
  const screenResponse = await fetch(
    `https://api.edge.bh/v1/sanctions/screen?name=${encodeURIComponent(owner.name)}`,
    {
      headers: {
        "X-Api-Key": process.env.EDGE_API_KEY,
        "Accept": "application/json",
      },
    }
  );

  const screenResult = await screenResponse.json();

  if (screenResult.data.matches.length > 0) {
    console.warn(`Potential sanctions match for ${owner.name}`);
    // Escalate to compliance team
  }
}

Step 5: Decision

With verified company data and sanctions screening results, your system has the information needed to approve, reject, or escalate the business relationship.

This entire pipeline — from search to decision — can run in under five seconds, replacing a process that traditionally takes hours or days of manual work.

Real-World Use Cases

Due Diligence for Financial Services

Banks, insurance companies, and investment firms in Bahrain perform due diligence on corporate clients as a regulatory requirement. The Search API enables compliance teams to quickly find and verify companies, especially when the client provides incomplete information (e.g., just a company name without the CR number).

Market Research and Competitive Analysis

Consultancies, investors, and strategy teams use the Search API to map business landscapes. Want to know how many active fintech companies are registered in Bahrain? How many restaurants opened in the last two years? Which sectors have the most new registrations? The Search API with activity filters gives you that data programmatically.

import requests

# Count active companies by sector
sectors = {
    "IT Services": "6201",
    "Financial Services": "6411",
    "Restaurants": "5610",
    "Construction": "4100",
    "Retail Trade": "4711",
}

for sector_name, isic_code in sectors.items():
    response = requests.get(
        "https://api.edge.bh/v1/cr/search",
        params={"activity": isic_code, "status": "active", "per_page": 1},
        headers={"X-Api-Key": "your_api_key_here"},
    )
    total = response.json()["data"]["pagination"]["total"]
    print(f"{sector_name}: {total} active companies")

Vendor and Supplier Verification

Procurement teams at large enterprises need to verify that their vendors are legitimate, active businesses. The Search API lets them confirm vendor existence and status before issuing purchase orders, reducing the risk of contracting with expired or fictitious entities.

Regulatory and Audit Workflows

Regulators and auditors can use the Search API to systematically review companies within specific sectors. Instead of requesting data manually from MOICT, they can programmatically pull the information needed for sector reviews, market studies, or compliance audits.

CRM and Data Enrichment

If your CRM contains company names but lacks CR numbers and structured registration data, you can use the Search API to enrich those records. Batch-process your company list, match results, and populate your CRM with verified registration data — improving data quality across your organization.

Integration with Country Data

For businesses that operate across the GCC, the CR Search API pairs well with Edge's Country Data API. While the CR Search API gives you business-level data specific to Bahrain, the Country Data API provides country-level context — currency, dialing codes, regulatory information — useful for multi-market platforms that need to contextualize business data.

Performance and Reliability

The Search API is designed for both interactive and batch use cases:

  • Response times: Typical search queries return in under 500ms, making the API suitable for real-time user interfaces where results populate as the user types.
  • Pagination: Large result sets are paginated efficiently, so you never have to wait for the entire dataset to load.
  • Consistent availability: The API is built on infrastructure designed for financial services, with uptime and reliability as primary concerns.

Getting Started

  1. Sign up at app.edge.bh to create your organization.
  2. Generate an API key from the dashboard.
  3. Start searching — try a simple name search to see the response format.
  4. Build your workflow — combine Search with CR Lookup and Sanctions Screening for end-to-end KYB.

The credit-based pricing model means you only pay for the searches you run. There are no monthly minimums or per-user fees. Visit the Edge Dashboard to see current pricing and start integrating today.

Frequently Asked Questions

Can I search for companies by name in Arabic?

Yes. The Search API supports both Arabic and English company names. You can search using Arabic text, and the results will include both the Arabic and English registered names for each company. This is particularly useful for compliance teams who receive company names in Arabic from local documentation.

How is the Search API different from the Lookup API?

The Search API finds companies based on flexible criteria — name, activity, status, legal form — and returns a list of matches. The Lookup API retrieves the full detailed profile for a specific CR number. Use Search when you need to discover or identify a company, and Lookup when you need complete data on a company you have already identified.

How many results can the Search API return?

The API returns up to 100 results per page (configurable via the per_page parameter, default 20). There is no limit on the total number of results — large result sets are paginated, and you can iterate through all pages using the page parameter. Each search query consumes one credit regardless of the number of results returned.

Can I use the Search API for batch processing?

Yes. The API is designed for both interactive (real-time UI) and batch (background processing) use cases. For batch jobs — such as enriching a CRM database or conducting a sector-wide review — you can paginate through results and make sequential calls. Just be mindful of your credit balance for large batch operations.

What happens if my search returns no results?

The API returns a successful response with an empty results array and a total count of 0. This is not an error — it simply means no companies matched your query. Try broadening your search by removing filters or using partial name matches.

Can I combine this with other Edge APIs for a complete KYB workflow?

Absolutely. The recommended KYB workflow is: (1) Search API to discover and identify the business, (2) Lookup API to get full company details and ownership data, (3) Sanctions Screening API to check owners and the company against global watchlists. This three-step pipeline automates what traditionally takes hours of manual compliance work.

Start building with Edge

Get 500 free API credits instantly. No credit card required. Full access to IBAN validation, sanctions screening, exchange rates, and all 12 services.

Trusted by fintechs and banks across the GCC.