# Singapore COE Prices & Bidding Results Scraper (`scrapers_lat/singapore-coe-prices-scraper`) Actor

Scrape Singapore COE (Certificate of Entitlement) prices and bidding results from the official data.gov.sg open data portal. Get bidding month, vehicle class, quota, bids received and the winning premium. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/scrapers\_lat/singapore-coe-prices-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Business, Automation, Other
- **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 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.

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

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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 COE Prices & Bidding Results Scraper](https://scrapers.lat/banners/singapore-coe-prices-scraper.png)](https://console.apify.com/actors/bktGJTaWCZD0DIzZH/input)
<!-- /actor-banner -->

## Singapore COE Prices & Bidding Results Scraper

> Pull Singapore COE (Certificate of Entitlement) prices and bidding results from the official data.gov.sg open data portal. Get the winning premium, quota and bid counts for every category and every bidding exercise. No login, no API key.

**📥 [Input](https://apify.com/scrapers_lat/singapore-coe-prices-scraper/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/singapore-coe-prices-scraper/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/singapore-coe-prices-scraper/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/singapore-coe-prices-scraper/examples)**

![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 is a COE?

In Singapore you cannot simply buy a car. First you need a COE, a Certificate of Entitlement, which is the government-issued licence that grants the right to own and use a vehicle for 10 years. COEs are limited in number and sold through an open bidding exercise that runs twice a month. The winning bid price, known as the premium, is one of the most closely watched economic figures in Singapore because it directly sets the cost of owning a car and often moves by tens of thousands of dollars between exercises. This actor turns the full official record of those exercises into clean, structured data.

### COE categories

| Category | Covers |
|---|---|
| Category A | Cars up to 1600cc and 130bhp |
| Category B | Cars above 1600cc or 130bhp |
| Category C | Goods vehicles and buses |
| Category D | Motorcycles |
| Category E | Open category, usable for any vehicle type |

### How it works

| Input | What it does |
|---|---|
| `vehicleClass` | Keep only one COE category by exact name (for example Category A). |
| `month` | Keep only one bidding month by exact YYYY-MM value (for example 2024-01). |
| `searchQuery` | Free-text filter across all fields. |
| `sortByNewest` | Return the most recent bidding exercises first. |
| `maxItems` | Cap the number of records collected. |

The data comes from the official Singapore open data portal. Anonymous access is rate limited, so large pulls are paced automatically.

### Use cases

| Use case | Who it is for |
|---|---|
| Track COE premiums over time | Journalists and analysts |
| Alert on the latest bidding results | Car buyers and dealers |
| Model the cost of car ownership | Finance and research teams |
| Compare demand across categories | Automotive market researchers |
| Build a COE price history dataset | Data teams |

### Frequently Asked Questions

**What does COE mean?**
COE stands for Certificate of Entitlement, the licence you must win at auction before you are allowed to own a car in Singapore for 10 years.

**Where does the data come from?**
The official data.gov.sg COE bidding results dataset. It is the authoritative public record of every bidding exercise.

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

**How fresh is it?**
COE bidding runs twice a month and the source dataset is updated after each exercise, so new premiums appear roughly twice a month.

**What is the premium?**
The premium is the winning bid price in SGD. It is the number people mean when they talk about "the COE price".

<!-- 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:

- [Singapore COE Category A Prices and Bidding Results](https://apify.com/scrapers_lat/singapore-coe-prices-scraper/examples/singapore-coe-category-a-prices): Track Singapore COE Category A premiums for cars up to 1600cc, with quota, bids received, bids successful and month.
- [Singapore COE Category B Prices and Bidding Results](https://apify.com/scrapers_lat/singapore-coe-prices-scraper/examples/singapore-coe-category-b-prices): Track Singapore COE Category B premiums for larger cars, with quota, bids received, bids successful and bidding month.
- [Singapore COE Category C Goods Vehicles Prices](https://apify.com/scrapers_lat/singapore-coe-prices-scraper/examples/singapore-coe-category-c-goods-vehicles): Track Singapore COE Category C premiums for goods vehicles and buses, with quota, bids and premium by bidding month.
- [Singapore COE Category D Motorcycle Prices](https://apify.com/scrapers_lat/singapore-coe-prices-scraper/examples/singapore-coe-category-d-motorcycles): Track Singapore COE Category D premiums for motorcycles, with quota, bids received, bids successful and bidding month.
- [Singapore COE Category E Open Category Prices](https://apify.com/scrapers_lat/singapore-coe-prices-scraper/examples/singapore-coe-category-e-open): Track Singapore COE Category E open category premiums, with quota, bids received, bids successful and bidding month.
- [Singapore COE Latest Bidding Results All Categories](https://apify.com/scrapers_lat/singapore-coe-prices-scraper/examples/singapore-coe-latest-bidding-results): Get the latest Singapore COE bidding results across all categories, with premium, quota, bids received and successful.
- [Singapore COE Prices for June 2026 All Categories](https://apify.com/scrapers_lat/singapore-coe-prices-scraper/examples/singapore-coe-prices-june-2026): See Singapore COE premiums for June 2026 across all categories, with quota, bids received and bids successful.
- [Singapore COE Price History All Categories](https://apify.com/scrapers_lat/singapore-coe-prices-scraper/examples/singapore-coe-price-history): Download the full Singapore COE price history across all categories, with premium, quota and bids by bidding month.
- [Singapore COE Category B Prices for June 2026](https://apify.com/scrapers_lat/singapore-coe-prices-scraper/examples/singapore-coe-category-b-june-2026): See Singapore COE Category B premiums for June 2026, with quota, bids received and bids successful by bidding exercise.
- [Singapore COE Prices for May 2026 All Categories](https://apify.com/scrapers_lat/singapore-coe-prices-scraper/examples/singapore-coe-prices-may-2026): See Singapore COE premiums for May 2026 across all categories, with quota, bids received and bids successful.

<!-- /example-tasks -->

<!-- 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.

<!-- /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 Land Transport Authority 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

## `maxRecords` (type: `integer`):

Maximum number of COE bidding records to collect. The portal rate-limits anonymous access, so very large pulls are paced automatically.
## `vehicleClass` (type: `string`):

Keep only one COE category. Exact match on the vehicle class, for example "Category A" (small cars up to 1600cc / 130bhp), "Category B" (larger cars), "Category C" (goods vehicles and buses), "Category D" (motorcycles) or "Category E" (open). Leave empty for all categories.
## `month` (type: `string`):

Keep only one bidding month. Exact match in YYYY-MM format, for example "2024-01". Leave empty for the full history.
## `searchQuery` (type: `string`):

Free-text filter across all fields, for example a month or a category name. Leave empty to pull the full bidding history newest first.
## `sortByNewest` (type: `boolean`):

Return the most recent bidding exercises first. Turn off to read in the source order (oldest first).

## Actor input object example

```json
{
  "maxRecords": 1000,
  "sortByNewest": true
}
````

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

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/singapore-coe-prices-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 = {
    "maxRecords": 1000,
    "vehicleClass": "",
    "month": "",
    "searchQuery": "",
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/singapore-coe-prices-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 '{
  "maxRecords": 1000,
  "vehicleClass": "",
  "month": "",
  "searchQuery": ""
}' |
apify call scrapers_lat/singapore-coe-prices-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Singapore COE Prices & Bidding Results Scraper",
        "description": "Scrape Singapore COE (Certificate of Entitlement) prices and bidding results from the official data.gov.sg open data portal. Get bidding month, vehicle class, quota, bids received and the winning premium. Export to JSON, CSV or Excel.",
        "version": "0.1",
        "x-build-id": "B6baWAg2RjtZniN8n"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers_lat~singapore-coe-prices-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers_lat-singapore-coe-prices-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-coe-prices-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers_lat-singapore-coe-prices-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-coe-prices-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers_lat-singapore-coe-prices-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": {
                    "maxRecords": {
                        "title": "Max Records",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of COE bidding records to collect. The portal rate-limits anonymous access, so very large pulls are paced automatically."
                    },
                    "vehicleClass": {
                        "title": "Vehicle class",
                        "type": "string",
                        "description": "Keep only one COE category. Exact match on the vehicle class, for example \"Category A\" (small cars up to 1600cc / 130bhp), \"Category B\" (larger cars), \"Category C\" (goods vehicles and buses), \"Category D\" (motorcycles) or \"Category E\" (open). Leave empty for all categories."
                    },
                    "month": {
                        "title": "Month (YYYY-MM)",
                        "type": "string",
                        "description": "Keep only one bidding month. Exact match in YYYY-MM format, for example \"2024-01\". Leave empty for the full history."
                    },
                    "searchQuery": {
                        "title": "Search keyword",
                        "type": "string",
                        "description": "Free-text filter across all fields, for example a month or a category name. Leave empty to pull the full bidding history newest first."
                    },
                    "sortByNewest": {
                        "title": "Newest first",
                        "type": "boolean",
                        "description": "Return the most recent bidding exercises first. Turn off to read in the source order (oldest first).",
                        "default": true
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
