# Singapore ACRA Company Lookup — UEN & Business Registry (`cynix_dev/sg-acra-company-lookup`) Actor

Search Singapore's official ACRA business registry by company name or exact UEN. Get entity name, UEN, status (Registered/Deregistered), type, issue date and registered address as typed JSON rows. Covers 2.1M entities. No API key.

- **URL**: https://apify.com/cynix\_dev/sg-acra-company-lookup.md
- **Developed by:** [Cynix Dev](https://apify.com/cynix_dev) (community)
- **Categories:** Developer tools, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Singapore ACRA Company Lookup — UEN & Business Registry

Search **Singapore's official ACRA business registry** — 2 million+ companies, foreign branches, LLPs and businesses — by name or exact **UEN**. Get entity type, registration status, issue date and registered address in clean JSON. No API key.

### What it does

Every company operating in Singapore must register with the Accounting and Corporate Regulatory Authority (ACRA) and receive a Unique Entity Number (UEN). This Actor queries the official registry dataset published on data.gov.sg, so results come straight from the source — no scraping, no third-party reseller.

Run a fuzzy name search (`"dbs securities"`) to discover entities, or pass exact UENs to enrich a list you already have. Filter by registration status (Registered / Deregistered) and entity type (Local Company, Foreign Company Branch, LLP, …).

### Features

- **Official source** — the ACRA entities dataset published on data.gov.sg, queried directly over its datastore API.
- **Name search and UEN lookup** — fuzzy matching for discovery, exact UEN mode for enrichment.
- **Status and type filters** — restrict to Registered entities, or a specific entity type like Local Company.
- **No API key, no proxy, no browser** — plain HTTP against a public endpoint; runs are fast and cheap.
- **Deduplicated output** — one record per UEN even across paginated pages.
- **Flat, spreadsheet-ready records** — clean fields, no nested surprises.

### What people use it for

- KYB / vendor onboarding — verify that a Singapore counterparty is registered and active before signing.
- Lead enrichment — attach registry status and entity type to a CRM list of Singapore companies.
- Credit and risk checks — flag counterparties whose ACRA status is Deregistered.
- Market research — count and profile entities matching an industry keyword.
- Investor due diligence — confirm the legal identity behind a trading name.

### Where the data comes from

ACRA publishes its entities dataset as open data on data.gov.sg. The Actor queries it through the platform's datastore search API, which supports full-text queries (`q=`), exact filters, offset pagination and a total count — everything needed for both discovery and enrichment without touching a private API.

#### Status values you will see

- **Registered** — the entity is live and in good standing.
- **Deregistered** — struck off, dissolved or ceased. Useful as a red flag.

#### Entity types

Local Company, Foreign Company Branch, LLP (Limited Liability Partnership), LP, Business Firm and more. Use `entityTypeFilter` with a substring such as `Local Company` to narrow results.

### Input

`searchMode` picks the strategy. For `name` mode set `query`; for `uen` mode fill `uens` with exact Unique Entity Numbers.

#### Input example

```json
{}
```

### Output

One record per entity. `status` reflects the current UEN status; `registered_street` and `registered_postal_code` come from the registered address on file.

Every dataset record contains: `uen`, `entity_name`, `entity_type`, `status`, `issue_date`, `registered_postal_code`.

Export the dataset as JSON, CSV, Excel, XML or JSONL from the Console, or pull it programmatically through the Apify API and any of the official clients.

### How to use it

1. Click **Try for free** (or **Start** if you already have an Apify account).
2. Fill in the input fields described above — the defaults already produce a working run.
3. Press **Start** and watch the log; results stream into the dataset as they are found.
4. When the run finishes, open the **Output/Storage** tab and export as JSON, CSV or Excel.

Runs can be scheduled (hourly, daily, weekly) and wired into Slack, Google Sheets, Zapier, Make, webhooks or your own backend through Apify integrations. Everything the Console does is also available over the [Apify API](https://docs.apify.com/api/v2).

### FAQ

#### Do I need any API key?

No. The registry dataset is public open data served by data.gov.sg.

#### Is this official ACRA BizFile data?

It is derived from ACRA's open-data publication. For legally binding extracts or certified good-standing searches, use ACRA's paid BizFile service directly.

#### How current is the data?

The dataset is refreshed by data.gov.sg on ACRA's publishing schedule — typically daily to weekly.

#### Can I search by partial UEN?

UEN mode expects exact UENs. Partial identifiers are better handled with a name search.

#### Does the proxy need to be on?

No. The endpoint is a public government API that does not block datacenter IPs.

### Other Actors by cynix\_dev

| Actor | What it does |
| --- | --- |
| [Company Tech Stack & Hiring Intelligence](https://apify.com/cynix_dev/company-tech-intel) | Detect technologies from company websites, extract tech requirements from job postings, discover competitors. |
| [Job Postings — ATS Boards Extractor](https://apify.com/cynix_dev/job-postings-ats) | Pull live job postings straight from companies' public applicant-tracking boards — Greenhouse, Lever, Ashby, SmartRecruiters, and … |
| [SEC EDGAR Filings Extractor](https://apify.com/cynix_dev/sec-edgar-filings) | Search and extract SEC EDGAR filings: full-text search across all filings or company filing histories by CIK. |
| [WHOIS & DNS Enrichment](https://apify.com/cynix_dev/whois-enrichment) | Enrich domains with structured WHOIS data (registrar, registration/expiration dates, status, nameservers) and optional DNS … |
| [News & Press Release Monitor](https://apify.com/cynix_dev/news-press-monitor) | Watch company newsrooms, blogs, and press pages and get one clean record per article — with new-item detection between runs, so a … |
| [Company Tech Stack & Hiring Intelligence](https://apify.com/cynix_dev/company-tech-intel) | Detect technologies from company websites, extract tech requirements from job postings, discover competitors. |
| [Job Postings — ATS Boards Extractor](https://apify.com/cynix_dev/job-postings-ats) | Pull live job postings straight from companies' public applicant-tracking boards — Greenhouse, Lever, Ashby, SmartRecruiters, and … |

### Legal and responsible use

This Actor collects only publicly available information. You are responsible for how you use the data, including compliance with the target site's Terms of Service, robots directives, copyright, and data protection law such as GDPR and CCPA. Do not use it to gather personal data without a lawful basis.

### Support and feedback

Found a bug, hit a site change, or need an extra field? Open a ticket on the **Issues** tab of this Actor — issues are read and fixed. Feature requests and custom-scraper enquiries are welcome through the same channel.

# Actor input Schema

## `searchMode` (type: `string`):

name: full-text search across entity names. uen: exact lookup of one or more UENs.

## `query` (type: `string`):

Text to search for in entity names, e.g. 'dbs securities' or 'kopitiam'. Used in name mode.

## `uens` (type: `array`):

Exact UEN identifiers to look up, e.g. \['197501025K', '53058636C']. Used in uen mode.

## `statusFilter` (type: `string`):

Limit results to entities with this registration status. 'any' returns all statuses.

## `entityTypeFilter` (type: `string`):

Optional substring match on entity type, e.g. 'Local Company', 'Sole Proprietorship'. Empty = all types.

## `limit` (type: `integer`):

Maximum number of records to return (1-10000).

## Actor input object example

```json
{
  "searchMode": "name",
  "query": "dbs securities",
  "uens": [
    "197501025K"
  ],
  "statusFilter": "any",
  "limit": 100
}
```

# Actor output Schema

## `dataset` (type: `string`):

Dataset containing all scraped records.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "query": "dbs securities",
    "uens": [
        "197501025K"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("cynix_dev/sg-acra-company-lookup").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "query": "dbs securities",
    "uens": ["197501025K"],
}

# Run the Actor and wait for it to finish
run = client.actor("cynix_dev/sg-acra-company-lookup").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "dbs securities",
  "uens": [
    "197501025K"
  ]
}' |
apify call cynix_dev/sg-acra-company-lookup --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,cynix_dev/sg-acra-company-lookup"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/CqKFuDgoTb85HoYVq/builds/QUcNjETvSPQfNLPqE/openapi.json
