Base URL: https://data-marketplace-data.bakosbence.com
You get an API key after the order is confirmed. Send it on every request:
Authorization: Bearer mk_…
A missing or invalid key returns 401.
Access levels
Access is per dataset.
| Level | Latest data (GET /v1/data/{site_id}) |
History (GET /v1/data/{site_id}/historic) |
|---|---|---|
snapshot |
The scrape from when you purchased. Newer and older scrapes are not included. | Not available (403) |
weekly |
The latest scrape. | Not available (403) |
archive |
The latest scrape. | Every scrape in your access, oldest first |
GET /v1/data (all datasets at once) always returns the latest scrape you are allowed for each dataset. For full history, call /historic on each archive dataset.
Response rows
JSON responses are an array of rows. Each row wraps one scraped item:
{
"site_id": "B-026",
"scrape_id": "2026-08-12T04-00-00Z",
"schema_id": "fashion_listing",
"scraped_at": "2026-08-12T04:00:00+00:00",
"payload": { }
}
| Field | Type | Meaning |
|---|---|---|
site_id |
string | Dataset id (for example B-026) |
scrape_id |
string | Id of the scrape this row came from |
schema_id |
string | Kind of item (fashion_listing, rfp, job, and others) |
scraped_at |
string | When that scrape ran (ISO-8601 UTC) |
payload |
object | The item itself. Fields differ by dataset and schema_id; extra keys are normal. |
One request returns every row. There is no pagination.
Schemas
Each row’s payload follows the dataset’s schema_id.
| Category | Code | Schema |
|---|---|---|
| Fashion | fashion_listing |
JSON Schema |
| Procurement | rfp |
JSON Schema |
| Real estate | real_estate |
JSON Schema |
| Jobs | job |
JSON Schema |
| E-commerce | ecommerce |
JSON Schema |
| Auto | auto_classified |
JSON Schema |
| B2B | b2b |
JSON Schema |
| Travel | travel_events |
JSON Schema |
| Unknown | generic |
JSON Schema |
JSON and CSV
Data endpoints accept ?format=json (default) or ?format=csv.
format |
Content-Type |
Body |
|---|---|---|
json |
application/json |
JSON array of rows |
csv |
text/csv; charset=utf-8 |
Columns site_id,scrape_id,schema_id,scraped_at,payload. The payload column is the item encoded as a JSON string. |
GET /v1/sites is JSON only.
GET /v1/sites — list your datasets
Lists the datasets in your access.
curl -sS -H "Authorization: Bearer $API_KEY" \
"https://data-marketplace-data.bakosbence.com/v1/sites"
{
"sites": [
{
"site_id": "B-026",
"name": "Example Boutique",
"access_level": "weekly",
"frozen_scrape_id": null,
"expires_at": null
},
{
"site_id": "B-001",
"name": "Example Fashion",
"access_level": "snapshot",
"frozen_scrape_id": "2026-08-01T04-00-00Z",
"expires_at": "2026-08-20T00:00:00+00:00"
}
]
}
| Field | Meaning |
|---|---|
access_level |
snapshot, weekly, or archive |
frozen_scrape_id |
For snapshot, the scrape you purchased. Otherwise null. |
expires_at |
When this dataset access ends (ISO-8601), or null if it does not expire |
GET /v1/data/{site_id} — latest scrape
The latest scrape you are allowed to download for that dataset.
curl -sS -H "Authorization: Bearer $API_KEY" \
"https://data-marketplace-data.bakosbence.com/v1/data/B-026"
curl -sS -H "Authorization: Bearer $API_KEY" \
"https://data-marketplace-data.bakosbence.com/v1/data/B-026?format=csv" \
-o B-026.csv
| Status | When |
|---|---|
403 |
This dataset is not in your access, or access has expired |
404 |
Access is valid, but no scrape is available yet |
For archive, this still returns only the latest scrape. Use /historic for the full archive.
GET /v1/data/{site_id}/historic — archive history
Every scrape included with archive access for that dataset, oldest first.
curl -sS -H "Authorization: Bearer $API_KEY" \
"https://data-marketplace-data.bakosbence.com/v1/data/B-026/historic"
| Status | When |
|---|---|
403 |
Your access for this dataset is not archive, the dataset is not in your access, or access has expired |
404 |
No scrapes are available yet |
The same listing can appear more than once if it did not change between scrapes.
GET /v1/data — latest scrape, all datasets
The latest allowed scrape for every dataset in your access, in one JSON array or one CSV file.
curl -sS -H "Authorization: Bearer $API_KEY" \
"https://data-marketplace-data.bakosbence.com/v1/data"
curl -sS -H "Authorization: Bearer $API_KEY" \
"https://data-marketplace-data.bakosbence.com/v1/data?format=csv" \
-o all.csv
This does not include archive history. Call /v1/data/{site_id}/historic for that.
Rate limits
Limits apply per API key.
| Limit | Amount |
|---|---|
| Requests | 60 per hour |
| Large downloads | 10 per calendar day |
A response counts as a large download when the body is 1 MiB or larger (1,048,576 bytes). GET /v1/sites counts only toward the hourly request limit.
Going over a limit returns 429:
{"detail": "Hourly rate limit exceeded"}
{"detail": "Daily large-download limit exceeded"}
Hours and days are UTC.
Errors
Errors are JSON:
{"detail": "No entitlement for site"}
| Status | Meaning |
|---|---|
401 |
Missing or invalid API key |
403 |
Access disabled, dataset not in your access, access expired, or historic requested without archive |
404 |
No downloadable scrape yet |
422 |
Invalid query parameter (for example format is not json or csv) |
429 |
Hourly request limit or daily large-download limit |
Support
Email info@bakosbence.com.
Please write from a company-specific email address, or include an order identifier you received in your order confirmation email.