# Philkotse Philippines Car Listings

> Search Philkotse.com, the Philippines' car marketplace: used and brand-new cars from dealers and private sellers. Filter by make, model, condition, body type, transmission, colour, region and city, price, model year and mileage; sort by best match, newest or price. Nothing is required: no parameters browses every car on the site.
> ReefAPI engine `philkotse` · 5 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/philkotse/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed calls are free except verified SHEIN NOT_FOUND on product/detail and price (4 credits).
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http). Send the key as `Authorization: Bearer <key>`, or put it in the URL (`?key=<key>`) when the client has no header field, as ChatGPT does.

## Endpoints

### POST https://api.reefapi.com/philkotse/v1/search — 2 credits
Search Philkotse.com, the Philippines' car marketplace: used and brand-new cars from dealers and private sellers. Filter by make, model, condition, body type, transmission, colour, region and city, price, model year and mileage; sort by best match, newest or price. Nothing is required: no parameters browses every car on the site.

**Parameters:**
- `make` (string, optional) — Car make: the site's slug, its numeric id or its name — e.g. `toyota`, `mitsubishi`, `mercedes-benz`, `Ford`. 103 makes; list: the `filters` action.
- `model` (string, optional) — Model slug inside `make` — e.g. `vios`, `fortuner`, `hilux` (from the `models` action). Requires make.
- `condition` (enum, optional, default "all") — New cars, used cars or both. [one of: all, used, new]
- `body_type` (enum, optional) — Body type as the site classifies it. [one of: commercial, coupe, hatchback, minivan, mpv, pickup, sedan, suv, van, wagon]
- `transmission` (enum, optional) — Gearbox. [one of: automatic, manual, cvt, automanual, shiftable_automatic]
- `color` (enum, optional) — Exterior colour as the seller declared it. [one of: beige, black, blue, brightsilver, brown, cream, golden, grayblack, green, grey, orange, pearlwhite, pink, purple, red, silver, skyblue, white, yellow, other]
- `region` (string, optional) — Province / region: slug, id or name — e.g. `metro-manila`, `cebu`, `pampanga`, `Davao del Sur`. 82 regions; list: the `filters` action.
- `city` (string, optional) — City slug inside `region` — e.g. `makati`, `quezon-city`, `pasig` (from the `cities` action). Requires region.
- `min_price` (integer, optional) — Minimum price in Philippine pesos.
- `max_price` (integer, optional) — Maximum price in Philippine pesos.
- `min_year` (integer, optional) — Oldest model year.
- `max_year` (integer, optional) — Newest model year.
- `min_mileage` (integer, optional) — Minimum odometer reading in km (used cars).
- `max_mileage` (integer, optional) — Maximum odometer reading in km (used cars).
- `sort` (enum, optional, default "relevance") — Result order — the four the site itself offers. [one of: relevance, newest, price_asc, price_desc]
- `page` (integer, optional, default 1) — Result page, 18 listings per full page.
- `include_pii` (boolean, optional, default true) — Accepted for compatibility; this API never masks anything. Seller names, phone numbers and e-mails are returned exactly as the listing page prints them.

**Returns:** {source_url, page, total_pages, has_more, sort, filters_applied, related_dropped, expired_count, listings[]}. Each listing: {listing_id, url, title, condition, year, transmission, mileage_km, location, region, city, price_php, previous_price_php, currency, image, services[], is_premium_dealer, is_expired, seller_id, seller_phone}.

**Example request body:**
```json
{
  "make": "toyota",
  "condition": "used",
  "sort": "newest"
}
```

### POST https://api.reefapi.com/philkotse/v1/listing — 2 credits
One Philkotse car listing in full: price and previous price, financing terms (down payment, months, monthly), make, model, year, body type, colour, transmission, mileage, plate ending, every photo, the seller's description and feature list, and the seller block — name, phone, e-mail, address, location, certified / premium-dealer flags and profile link.

**Parameters:**
- `listing_id` (integer, optional) — The `listing_id` of a `search` row (e.g. 900736). Either this or `url`.
- `url` (string, optional) — A philkotse.com listing URL (…-aid9007362). Either this or `listing_id`.
- `include_pii` (boolean, optional, default true) — Accepted for compatibility; this API never masks anything. Seller names, phone numbers and e-mails are returned exactly as the listing page prints them.

**Returns:** {listing_id, url, title, posted_date, is_expired, condition, make, model, year, body_type, color, transmission, mileage_km, plate_ending, price_php, previous_price_php, downpayment_php, terms_months, monthly_payment_php, total_price_php, payment_terms, services[], badges[], features[], description, images[], region, location, make_id, model_id, seller{…}}. Either `listing_id` or `url` is required.

**Example request body:**
```json
{
  "url": "https://philkotse.com/honda-city-for-sale-in-makati/2018-15-vx-at-gas-aid9007362"
}
```

### POST https://api.reefapi.com/philkotse/v1/models — 1 credit
Every model Philkotse knows for one make, with the slug `search` accepts.

**Parameters:**
- `make` (string, required) — Make slug, id or name (e.g. `toyota`, `46`, `Honda`).
- `active_only` (boolean, optional, default false) — Only the models the site marks as active (current line-up). Default false = every model the site knows, including discontinued ones.

**Returns:** {make, make_id, model_count, models[{model_id, name, slug, is_active}]}

**Example request body:**
```json
{
  "make": "honda"
}
```

### POST https://api.reefapi.com/philkotse/v1/cities — 1 credit
The cities of one Philippine region, with the slug `search` accepts.

**Parameters:**
- `region` (string, required) — Region slug, id or name (e.g. `metro-manila`, `cebu`).

**Returns:** {region, region_id, city_count, cities[{city_id, name, slug}]}

**Example request body:**
```json
{
  "region": "metro-manila"
}
```

### POST https://api.reefapi.com/philkotse/v1/filters — 1 credit
The site's own filter values: 103 makes, 82 regions, 10 body types, 5 transmissions and 20 colours, with the slugs `search` accepts.

**Parameters:**
- `kind` (enum, optional) — Return only one table. [one of: makes, regions, body_types, transmissions, colors]

**Returns:** {makes[], regions[], body_types[], transmissions[], colors[]}

**Example request body:**
```json
{
  "kind": "makes"
}
```

## At scale
- **Volume:** 5M+ requests a day, measured at 60 requests a second across the fleet with no
  central bottleneck. Per-key limits are raised for high-volume accounts; volume pricing on request.
- **Missing a source:** tell us a site we do not cover and it becomes an engine. A customer asked
  for bestprice.gr on 21 Sep 2026 and it was in the catalog on 22 Sep.
- **Support:** 2 minute median time from a question in the live chat to the first answer. Setup
  help included, no support tier to buy.
- **One key, one credit pool** across every API. No per-site plans, no separate subscriptions.

## More
- Try it live, no code: https://reefapi.com/playground?engine=philkotse
- Human docs page: https://reefapi.com/docs/philkotse
- Overview page: https://reefapi.com/philkotse-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
