# Singapore BOA Registered Architects Scraper (`scrapers_lat/singapore-boa-architects-scraper`) Actor

Scrape the official Singapore Board of Architects (BOA) register from the data.gov.sg open data portal. Get registered architect name, registration number, firm name, firm address and firm phone. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/scrapers\_lat/singapore-boa-architects-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Business, Lead generation, Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

<!-- actor-banner -->
[![Singapore BOA Registered Architects Scraper](https://scrapers.lat/banners/singapore-boa-architects-scraper.png)](https://console.apify.com/actors/gesFeKCvSkkSiiikG/input)
<!-- /actor-banner -->

## Singapore BOA Registered Architects Scraper

> Pull the official Singapore Board of Architects (BOA) register straight from the data.gov.sg open data portal. Every registered architect with their registration number, firm name, firm address and firm phone. No login, no API key.

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify&logoColor=white)
![Coverage](https://img.shields.io/badge/Coverage-Singapore-blue)
![Maintained](https://img.shields.io/badge/Maintained-Yes-brightgreen)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)

<br>

### What you get

One record per architect holding a current practising certificate under the Singapore Board of Architects, taken from the official Register of Architects published on data.gov.sg. The full register holds roughly 1,900 architects.

- **name**: the architect's full name
- **regNo**: the BOA registration number
- **firmName**: the architecture firm the architect practises with
- **firmAddress**: the firm's registered address
- **firmPhone**: the firm's contact phone number
- **source**: the origin of the record
- **observedAt**: when this record was collected

### How it works

| Input | What it does |
|---|---|
| `searchQuery` | Filter the register by architect name or firm name (for example Aamer, DP Architects). Leave empty to pull everyone. |
| `sortByNewest` | Read from the end of the register first. Off returns the published order (alphabetical by name). |
| `maxItems` | Cap the number of records collected. |

The data comes from the official Singapore open data portal as a single clean export. There is no login, no API key and no rate-limit dance for the user to worry about.

### Use cases

| Use case | Who it is for |
|---|---|
| Build a lead list of Singapore architecture firms | Construction, materials and proptech sales teams |
| Verify an architect's registration and firm | Developers, contractors and compliance teams |
| Map firm coverage and contact details | Real estate and design procurement |
| Enrich a CRM with firm phone and address | RevOps and data teams |
| Research the Singapore architecture market | Analysts and researchers |

### Frequently Asked Questions

**Where does the data come from?**
The official data.gov.sg "Register of Architects" dataset, managed by the Board of Architects (BOA). It lists architects currently holding a practising certificate.

**Does it need a login or API key?**
No. It reads the public open data portal with no account and no key.

**Does it include firm contact details?**
Yes. Each record carries the firm name, firm address and firm phone where the Board publishes them.

**How fresh is it?**
The source dataset is refreshed by the Board of Architects on a rolling basis. The actor always downloads the latest published export at run time.

<!-- example-tasks -->
### Example use cases

Ready-to-run example tasks, each preconfigured for a common scenario. Open one and press run, or use it as a template:

- [DP Architects Singapore Registered Architects](https://apify.com/scrapers_lat/singapore-boa-architects-scraper/examples/sg-boa-dp-architects): Find registered architects practising with DP Architects in Singapore from the official Board of Architects register, with firm phone and address.
- [RSP Architects Singapore Registered Architects](https://apify.com/scrapers_lat/singapore-boa-architects-scraper/examples/sg-boa-rsp-architects): List registered architects at RSP Architects in Singapore from the official Board of Architects register, with registration number and firm contact.
- [WOHA Singapore Registered Architects](https://apify.com/scrapers_lat/singapore-boa-architects-scraper/examples/sg-boa-woha-architects): Find registered architects practising with WOHA in Singapore from the official Board of Architects register, with firm address and phone.
- [ONG&ONG Singapore Registered Architects](https://apify.com/scrapers_lat/singapore-boa-architects-scraper/examples/sg-boa-ong-ong-architects): List registered architects at ONG&ONG in Singapore from the official Board of Architects register, with registration number, firm phone and address.
- [Surbana Jurong Singapore Registered Architects](https://apify.com/scrapers_lat/singapore-boa-architects-scraper/examples/sg-boa-surbana-architects): Find registered architects at Surbana Jurong in Singapore from the official Board of Architects register, with firm contact and address.
- [ADDP Architects Singapore Registered Architects](https://apify.com/scrapers_lat/singapore-boa-architects-scraper/examples/sg-boa-addp-architects): List registered architects at ADDP Architects in Singapore from the official Board of Architects register, with registration number and firm contact.
- [P&T Group Singapore Registered Architects](https://apify.com/scrapers_lat/singapore-boa-architects-scraper/examples/sg-boa-pnt-architects): Find registered architects at P&T Group in Singapore from the official Board of Architects register, with firm phone, address and registration number.
- [Aamer Architects Singapore Registered Architects](https://apify.com/scrapers_lat/singapore-boa-architects-scraper/examples/sg-boa-aamer-architects): Find registered architects at Aamer Architects in Singapore from the official Board of Architects register, with firm contact and address.
- [Full Singapore Board of Architects Register](https://apify.com/scrapers_lat/singapore-boa-architects-scraper/examples/sg-boa-full-register): Export the complete Singapore Board of Architects register of practising architects, each with firm name, firm address and firm phone.
- [Newest Singapore Registered Architects](https://apify.com/scrapers_lat/singapore-boa-architects-scraper/examples/sg-boa-newest-architects): Track the most recently added architects on the official Singapore Board of Architects register, with firm name, address and phone.

<!-- /example-tasks -->

<!-- x402 -->
### Export, API and AI agents (x402 + MCP)

Export the scraped data to **JSON, CSV or Excel**, pull it as a **dataset** through the Apify **API**, or wire it into your app with **no code**. This web scraper and data extractor also works for bulk data extraction and scheduled runs.

For AI agents: this Actor is available on **x402**, Apify's agentic payment standard built with Coinbase. An AI agent can discover, pay for and run it on its own with a funded wallet and a single HTTP request: no account, no subscription, no API key and no human in the loop. It also runs as an **MCP** tool inside Claude, Cursor and other AI clients out of the box. Learn more about [x402 agentic payments on Apify](https://docs.apify.com/platform/integrations/x402).
<!-- /x402 -->

<!-- related-actors -->
### Related scrapers

Need data from the same space? Here are other scrapers we build and maintain:

- [Singapore GeBIZ Government Contracts Scraper](https://apify.com/scrapers_lat/singapore-gebiz-contracts-scraper): Singapore government awarded contracts with supplier, agency and amount.
- [Singapore PEB Registered Engineers Scraper](https://apify.com/scrapers_lat/singapore-peb-engineers-scraper): Professional engineers registered with the PE Board with firm and contact details.
- [ACRA Singapore Company Scraper](https://apify.com/scrapers_lat/acra-singapore-company-scraper): Singapore corporate entities from the ACRA registry.

<!-- /related-actors -->

<!-- scrapers-lat-cta -->
### More scrapers at scrapers.lat

This actor is built and maintained by [scrapers.lat](https://scrapers.lat), where we publish scrapers for public platforms across the world: real estate, jobs, e-commerce, company registries and government data. Browse the full catalog, see live sample output for each one, or ask us for a custom scraper at [scrapers.lat](https://scrapers.lat).

---

> This actor is an independent tool and has no affiliation with the Board of Architects or the Government of Singapore. It only accesses data published openly on data.gov.sg. Use it in accordance with the portal's terms.
<!-- /scrapers-lat-cta -->

# Actor input Schema

## `searchQuery` (type: `string`):

Filter the register by architect name or firm name (for example "Aamer", "DP Architects", "Urban Redevelopment Authority"). Leave empty to pull the full register.
## `sortByNewest` (type: `boolean`):

Return records from the end of the register first. Turn off to read in the published order (alphabetical by name).
## `maxItems` (type: `integer`):

Maximum number of architect records to collect. The full register holds roughly 1,900 architects. Optional.

## Actor input object example

```json
{
  "sortByNewest": false,
  "maxItems": 1000
}
````

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "searchQuery": "",
    "maxItems": 1000
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/singapore-boa-architects-scraper").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 = {
    "searchQuery": "",
    "maxItems": 1000,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/singapore-boa-architects-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "searchQuery": "",
  "maxItems": 1000
}' |
apify call scrapers_lat/singapore-boa-architects-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapers_lat/singapore-boa-architects-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Singapore BOA Registered Architects Scraper",
        "description": "Scrape the official Singapore Board of Architects (BOA) register from the data.gov.sg open data portal. Get registered architect name, registration number, firm name, firm address and firm phone. Export to JSON, CSV or Excel.",
        "version": "0.1",
        "x-build-id": "vFn38RuVh5fSinAJO"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers_lat~singapore-boa-architects-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers_lat-singapore-boa-architects-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapers_lat~singapore-boa-architects-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers_lat-singapore-boa-architects-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapers_lat~singapore-boa-architects-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers_lat-singapore-boa-architects-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchQuery": {
                        "title": "Search keyword",
                        "type": "string",
                        "description": "Filter the register by architect name or firm name (for example \"Aamer\", \"DP Architects\", \"Urban Redevelopment Authority\"). Leave empty to pull the full register."
                    },
                    "sortByNewest": {
                        "title": "Newest first",
                        "type": "boolean",
                        "description": "Return records from the end of the register first. Turn off to read in the published order (alphabetical by name).",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of architect records to collect. The full register holds roughly 1,900 architects. Optional."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
