# Back Market France Scraper (`solidcode/backmarket-fr-scraper`) Actor

\[💰 $1.70 / 1K] Scrape refurbished electronics from Back Market France: price, original price, savings, condition grade, brand, model, storage, color, rating, stock and warranty. Search by keyword or paste search and category URLs.

- **URL**: https://apify.com/solidcode/backmarket-fr-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.70 / 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

## Back Market France Scraper

Pull the full Back Market France refurbished catalog at scale — current price, original new price, exact savings, condition grade, star ratings, stock status, warranty, and parsed brand, model, storage, and color for every listing. Search by keyword or paste a pre-filtered Back Market search or category URL, and get clean EUR-priced rows you can drop straight into a spreadsheet. Built for refurbished-electronics resellers, price-tracking teams, and deal aggregators who need fresh backmarket.fr listing data without copy-pasting product pages by hand.

### Why This Scraper?

- **4 refurbished condition grades, surfaced exactly as Back Market labels them** — Fair (État correct), Good (Très bon état), Excellent (Parfait état), and Premium, with the French grade shown on every row so you can compare like-for-like.
- **Original new price plus exact savings amount and percentage** — every listing carries `originalPrice`, `savings`, and `savingsPercent`, so the discount versus buying new is pre-computed for you — no math needed.
- **Brand, model, storage, and color parsed into separate fields** — "Apple", "iPhone 13", "128 Go", and the finish each land in their own column instead of being buried in the title.
- **Aggregate star rating and review count on every product** — a 0–5 `rating` and the `ratingCount` it's based on, ready for sorting by buyer confidence.
- **Up to ~1,000 results per search keyword or URL** — paginates Back Market France's full reachable result set for any query in one run.
- **3 sort orders including Price: Low to High** — collect by Relevance, Price: Low to High, or Price: High to Low to grab the cheapest stock first.
- **Paste a search URL and its filters are replayed exactly** — a search link's keyword and hash-fragment condition/price filters are honored precisely, every time. Category page links are also supported on a best-effort basis (e.g. a "Smartphone cases" page is scoped to that category when it can be read) — for precise, reliable results, lead with search URLs or keywords.
- **EUR pricing straight from Back Market France** — every price, original price, and savings figure is the live fr-fr marketplace amount in euros, no currency guesswork.
- **In-stock status and warranty length per listing** — `inStock` and `warrantyMonths` tell you what's actually buyable and how long it's covered.

### Use Cases

**Reseller & Arbitrage**
- Spot underpriced Premium and Excellent stock to flip on other marketplaces
- Compare the same model across all four condition grades to find the best margin
- Track which brands and models have the deepest discounts versus new
- Build buy lists filtered to a target price band and minimum rating

**Price Monitoring**
- Track the cheapest listed price for a model over time using Price: Low to High
- Watch savings percentages move as inventory turns over
- Alert when a watched model drops below a price threshold
- Benchmark Back Market FR prices against your own catalog

**Market Research**
- Map the refurbished smartphone, laptop, and tablet landscape on the French market
- Measure condition-grade distribution and pricing spread for a brand
- Analyze how original-new price and refurbished price relate across categories
- Identify which models hold the highest aggregate ratings

**Deal Aggregation**
- Feed the biggest savings percentages into a deals newsletter or site
- Surface high-rating, in-stock, well-warrantied products for buyer guides
- Build curated collections by brand, price band, or condition
- Refresh affiliate-style listing feeds on a schedule

**Competitive Intelligence**
- Monitor competitor pricing on the same refurbished models
- Track stock availability and warranty terms across the catalog
- Compare review counts as a proxy for sales volume by model
- Benchmark your own refurbished pricing against Back Market France

### Getting Started

#### Search by Keyword

The simplest way to start — one keyword per search:

```json
{
    "searchQueries": ["iphone 13"],
    "maxResults": 100
}
````

#### Keyword with Filters

Narrow to specific conditions, a price band, and a sort order:

```json
{
    "searchQueries": ["macbook air"],
    "conditions": ["excellent", "premium"],
    "priceFrom": 200,
    "priceTo": 800,
    "sortBy": "price-asc",
    "maxResults": 200
}
```

#### Using Back Market URLs

Paste a pre-filtered Back Market France search URL — its keyword and condition/price filters are honored exactly:

```json
{
    "startUrls": [
        "https://www.backmarket.fr/fr-fr/search?q=macbook#backbox_grade=9%20Premium&price=300&price=600"
    ],
    "maxResults": 300
}
```

Or paste a category page URL — the scraper reads the page and scopes results to that category on a best-effort basis (if the page can't be read, you'll get general Back Market results instead). For precise, reliable category results, use a search URL or keyword:

```json
{
    "startUrls": [
        "https://www.backmarket.fr/fr-fr/l/iphone-reconditionne/aabc736a-cb66-4ac0-a3b7-0f449781ed39"
    ],
    "maxResults": 200
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchQueries` | string\[] | `["iphone 13"]` | Keywords to search on Back Market France, such as "iPhone 13" or "MacBook Air". Each keyword runs its own search. Leave empty if you are pasting URLs. |
| `startUrls` | string\[] | `[]` | Paste Back Market France search or category page URLs. Search-URL filters are replayed exactly (precise and reliable); category URLs are scoped on a best-effort basis and fall back to general results if the page can't be read. Leave empty if you are using search keywords. |

#### Filters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `conditions` | select\[] | `[]` | Only include products in these refurbished conditions: Fair, Good, Excellent, or Premium. Leave empty to include all conditions. |
| `priceFrom` | integer | *(none)* | Only include products priced at or above this amount, in euros. Leave empty for no minimum. |
| `priceTo` | integer | *(none)* | Only include products priced at or below this amount, in euros. Leave empty for no maximum. |
| `sortBy` | select | `Relevance` | Order results by Relevance, Price: Low to High, or Price: High to Low. |

#### Limits

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxResults` | integer | `100` | Maximum number of products to return per search keyword or URL. Set to 0 for unlimited. Back Market returns up to about 1,000 results per keyword or URL, so each search is capped at 1,000. |

### Output

Each result is one flat product row. Here's a representative example:

```json
{
    "id": "aHR0cHM6...",
    "url": "https://www.backmarket.fr/fr-fr/p/iphone-13-128-go-minuit-debloque/...",
    "title": "iPhone 13 128 Go - Minuit - Débloqué",
    "brand": "Apple",
    "model": "iPhone 13",
    "category": "Smartphones",
    "price": 277.0,
    "currency": "EUR",
    "originalPrice": 749.0,
    "savings": 472.0,
    "savingsPercent": 63.0,
    "condition": "Très bon état",
    "color": "Minuit",
    "storage": "128 Go",
    "rating": 4.45,
    "ratingCount": 84129,
    "image": "https://images.bmstatic.com/...",
    "inStock": true,
    "warrantyMonths": 12,
    "merchantId": 1234,
    "scrapedAt": "2026-06-12T14:30:00Z"
}
```

#### Product & Pricing

| Field | Type | Description |
|-------|------|-------------|
| `id` | string | Back Market product/listing identifier |
| `url` | string | Direct product URL on backmarket.fr |
| `title` | string | Full product title |
| `price` | number | Current price in euros |
| `currency` | string | Always `EUR` |
| `originalPrice` | number | Reference new price for savings comparison |
| `savings` | number | Amount saved versus the new price (`originalPrice` − `price`) |
| `savingsPercent` | number | Percentage saved versus the new price |

#### Product Attributes

| Field | Type | Description |
|-------|------|-------------|
| `brand` | string | Brand (Apple, Samsung, Google, …) |
| `model` | string | Model name |
| `category` | string | Product category (Smartphones, Laptops, …) |
| `condition` | string | Refurbished grade (État correct, Très bon état, Parfait état, Premium) |
| `color` | string | Color / finish when available |
| `storage` | string | Storage capacity (e.g. "128 Go") when applicable |

#### Ratings, Stock & Merchant

| Field | Type | Description |
|-------|------|-------------|
| `rating` | number | Aggregate star rating, 0–5 |
| `ratingCount` | integer | Number of ratings the aggregate is based on |
| `inStock` | boolean | Whether the product is currently purchasable |
| `warrantyMonths` | integer | Warranty length in months when stated |
| `image` | string | Primary product image URL |
| `merchantId` | integer | Back Market merchant ID of the refurbisher selling the listing |
| `scrapedAt` | string | ISO 8601 timestamp of capture |

### Tips for Best Results

- **Paste a pre-filtered Back Market search URL to reuse its exact filters** — set up condition and price filters on backmarket.fr, copy the URL, and the scraper replays them precisely, including filters carried in the URL's `#` fragment.
- **Split broad searches to go deeper than ~1,000 results** — Back Market caps each keyword or URL at about 1,000 reachable results, so break a wide search ("apple") into brand-and-model or price-band searches to pull beyond the cap.
- **Use Price: Low to High to grab the cheapest stock first** — pair `sortBy: "price-asc"` with a tight `maxResults` to capture only the best-priced listings for a model.
- **Combine conditions to compare grades** — select Excellent and Premium together to see top-tier stock side by side, or run each grade separately to compare pricing by condition.
- **Sort by savings after the run** — every row carries `savingsPercent`, so sort your exported dataset by it to surface the deepest discounts versus new.
- **Start small to validate** — set `maxResults` to 20–50 on a first run to confirm the fields match your needs, then scale up.
- **Mix keywords and URLs in one run** — provide several `searchQueries` and `startUrls` together; each runs its own search and all results land in one dataset.

### Pricing

**From $1.70 per 1,000 results** — among the most affordable refurbished-catalog scrapers available, with no surprise compute bills. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.20 | $0.19 | $0.18 | $0.17 |
| 1,000 | $2.00 | $1.90 | $1.80 | $1.70 |
| 10,000 | $20.00 | $19.00 | $18.00 | $17.00 |
| 100,000 | $200.00 | $190.00 | $180.00 | $170.00 |

A "result" is any product row in the output dataset. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor is designed for legitimate market research, price monitoring, and competitive analysis of publicly listed products. Users are responsible for complying with applicable laws and Back Market's Terms of Service. Do not use extracted data for spam, harassment, or any illegal purpose, and respect intellectual property and personal data where applicable.

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords to search on Back Market France, such as 'iPhone 13' or 'MacBook Air'. Each keyword runs its own search. Leave empty if you are pasting URLs below.

## `startUrls` (type: `array`):

Paste Back Market France search or category page URLs. A search URL's keyword and condition/price filters are replayed exactly — this is the precise, reliable option. Category page URLs (for example a 'Smartphones' or 'Cases' page) are scoped on a best-effort basis; if a category page can't be read, the run returns general Back Market results instead. For category-focused results, prefer a search URL or a keyword. Leave empty if you are using search keywords above.

## `conditions` (type: `array`):

Only include products in these refurbished conditions. Leave empty to include all conditions.

## `priceFrom` (type: `integer`):

Only include products priced at or above this amount, in euros. Leave empty for no minimum.

## `priceTo` (type: `integer`):

Only include products priced at or below this amount, in euros. Leave empty for no maximum.

## `sortBy` (type: `string`):

Order in which products are collected.

## `maxResults` (type: `integer`):

Maximum number of products to return per search keyword or URL. Set to 0 for unlimited. Note: Back Market's search returns up to about 1,000 results per keyword or URL, so each search is capped at 1,000 even when this is higher or set to 0.

## Actor input object example

```json
{
  "searchQueries": [
    "iphone 13"
  ],
  "startUrls": [],
  "conditions": [],
  "sortBy": "relevance",
  "maxResults": 100
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of scraped products with key fields.

# 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 = {
    "searchQueries": [
        "iphone 13"
    ],
    "startUrls": [],
    "conditions": [],
    "sortBy": "relevance",
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/backmarket-fr-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 = {
    "searchQueries": ["iphone 13"],
    "startUrls": [],
    "conditions": [],
    "sortBy": "relevance",
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/backmarket-fr-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 '{
  "searchQueries": [
    "iphone 13"
  ],
  "startUrls": [],
  "conditions": [],
  "sortBy": "relevance",
  "maxResults": 100
}' |
apify call solidcode/backmarket-fr-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Back Market France Scraper",
        "description": "[💰 $1.70 / 1K] Scrape refurbished electronics from Back Market France: price, original price, savings, condition grade, brand, model, storage, color, rating, stock and warranty. Search by keyword or paste search and category URLs.",
        "version": "1.0",
        "x-build-id": "fbIKzavPPodiSBfj8"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~backmarket-fr-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-backmarket-fr-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/solidcode~backmarket-fr-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-backmarket-fr-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/solidcode~backmarket-fr-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-backmarket-fr-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": {
                    "searchQueries": {
                        "title": "Search Keywords",
                        "type": "array",
                        "description": "Keywords to search on Back Market France, such as 'iPhone 13' or 'MacBook Air'. Each keyword runs its own search. Leave empty if you are pasting URLs below.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "startUrls": {
                        "title": "Back Market URLs",
                        "type": "array",
                        "description": "Paste Back Market France search or category page URLs. A search URL's keyword and condition/price filters are replayed exactly — this is the precise, reliable option. Category page URLs (for example a 'Smartphones' or 'Cases' page) are scoped on a best-effort basis; if a category page can't be read, the run returns general Back Market results instead. For category-focused results, prefer a search URL or a keyword. Leave empty if you are using search keywords above.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "conditions": {
                        "title": "Condition",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Only include products in these refurbished conditions. Leave empty to include all conditions.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "fair",
                                "good",
                                "excellent",
                                "premium"
                            ],
                            "enumTitles": [
                                "Fair",
                                "Good",
                                "Excellent",
                                "Premium"
                            ]
                        }
                    },
                    "priceFrom": {
                        "title": "Minimum Price (€)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include products priced at or above this amount, in euros. Leave empty for no minimum."
                    },
                    "priceTo": {
                        "title": "Maximum Price (€)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include products priced at or below this amount, in euros. Leave empty for no maximum."
                    },
                    "sortBy": {
                        "title": "Sort Results By",
                        "enum": [
                            "relevance",
                            "price-asc",
                            "price-desc"
                        ],
                        "type": "string",
                        "description": "Order in which products are collected.",
                        "default": "relevance"
                    },
                    "maxResults": {
                        "title": "Maximum Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of products to return per search keyword or URL. Set to 0 for unlimited. Note: Back Market's search returns up to about 1,000 results per keyword or URL, so each search is capped at 1,000 even when this is higher or set to 0.",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
