# Publi24.ro Romania classifieds

> Search Romanian classifieds by native keyword; promoted slots remain labeled. Basic first/second page only.
> ReefAPI engine `publi24` · 2 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/publi24/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/publi24/v1/search — 3 credits
Search Romanian classifieds by native keyword; promoted slots remain labeled. Basic first/second page only.

**Parameters:**
- `query` (string, required) — Keyword text, 1–200 characters.
- `page` (integer, optional, default 1) — One-based basic source page: 1 or 2. Deeper pagination is unqualified.

**Returns:** listings: canonical-path listing_id, native source_id, title, visible price amount/currency/display, source_price and disagreement flag, image, location, description excerpt and promoted flag; source total, page/last_page and bounded has_more. Search displays may be converted to RON while detail retains native currency.

**Example request body:**
```json
{
  "query": "iphone",
  "page": 1
}
```

### POST https://api.reefapi.com/publi24/v1/detail — 3 credits
Resolve the exact native canonical listing path returned as listing_id by search, with no prior cache dependency.

**Parameters:**
- `listing_id` (string, required) — Copy the complete canonical path from search listing_id. Canonical www.publi24.ro HTTPS URLs also accepted. Bare source_id and numeric IDs are not lookup inputs.

**Returns:** Listing identity, title, visible native price plus source disagreement, complete public description, images, published seller name/profile/source type, paired attributes, source location, source availability/business function and optional GTIN/null. Phone reveal, seller inventory, advanced filters and auxiliary routes excluded.

**Example request body:**
```json
{
  "listing_id": "/anunturi/electronice/telefoane-mobile/altele/anunt/cumpar-telefoane-tablete-si-laptopuri/if583d646hh57fgg2gf44ihgee5e83de.html"
}
```

## 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=publi24
- Human docs page: https://reefapi.com/docs/publi24
- Overview page: https://reefapi.com/publi24-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
