{
  "openapi": "3.0.1",
  "info": {
    "title": "Ozon Scraper",
    "description": "Ozon products from search, links and category trees on ozon.ru, ozon.by and ozon.kz at once, with price history and changes between runs.",
    "version": "0.1",
    "x-build-id": "acNMo8SVTD5i0Cy2p"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/theshark~ozon-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-theshark-ozon-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/theshark~ozon-scraper/runs": {
      "post": {
        "operationId": "runs-sync-theshark-ozon-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/theshark~ozon-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-theshark-ozon-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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "products",
              "reviews",
              "sellers",
              "offers",
              "hotels",
              "hotel_reviews",
              "flights",
              "trains"
            ],
            "type": "string",
            "description": "What goes into the dataset.\n• products — a row per product (price, stock, seller, ~60 fields); reviews and questions inside it, up to 1000 / 500.\n• reviews — a row per review and per question of the products found (by default as many as Ozon shows — up to ~3,000 per product; «Reviews per product» limits it; questions — with «Questions per product»), plus a free summary row per product.\n• sellers — a seller profile per link (urls only): a shop link or a product link (its seller): legal name, OGRN, rating, orders, brands; with «Other sellers» — the product's competitors too.\n• offers — a row per seller of each product (buy box): price, delivery, position by price and by delivery, seller's legal info; one charge per product.\n• hotels — Ozon Travel hotels (ozon.ru): give links (urls) to a hotel search (/travel/hotels/category/oteli-v-moskve/) or a hotel; a row per hotel: stars, rating, address, coordinates, amenities, check-in/out times, rooms and rates for your dates (meal, cancellation, payment, price for the stay), price calendar. «Search results only» — cards without rooms (cheaper).\n• hotel_reviews — a row per hotel review (all by default) and a free summary row per hotel with Ozon's aspect ratings (location, cleanliness…).\n• flights — Ozon Travel flights (ozon.ru): routes in «Flights» (MOW-LED, «Москва — Сочи» or a flight search link from the site), your dates and passengers; a row per flight: departure and arrival (local time), transfers, airlines, flight numbers, aircraft, price for all passengers, baggage options, tickets left — plus a free summary row per search: how many flights Ozon found, the cheapest one, a 3-month price calendar.\n• trains — Ozon Travel train tickets (ozon.ru): routes in «Trains» («Москва — Санкт-Петербург», station codes 2000000-2004000 or a train search link from the site), your dates and passengers; a row per train: departure and arrival (local time), stations, travel time, car types with free seats and the price «from» (per seat, with and without Ozon Bank), badges (fast, branded, cheapest); with «Cars and seats» — every car: class, free lower and upper berths, price; with «Train route» — stops. Plus a free summary row per search: how many trains, the cheapest seat, cheapest by car type, a price calendar (a week before and after). Round trip — two searches.",
            "default": "products"
          },
          "queries": {
            "title": "Search queries",
            "type": "array",
            "description": "Words to search on Ozon, one per line: «носки», «iphone 17». Filters below apply to them.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "urls": {
            "title": "Ozon links",
            "type": "array",
            "description": "Any Ozon page: a product, search, category, seller, brand, collection or short ozon.ru/t/… link. Links from ozon.ru open on ozon.by and ozon.kz too.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "filters": {
            "title": "Search filters",
            "type": "object",
            "description": "Filters for search queries, as on the Ozon search page: sorting (score, new, price, price_desc, rating, discount), price_min, price_max, delivery (today, tomorrow, 3_days, 7_days), weight_min, weight_max, category (\"supermarket-25000\" — Ozon fresh), brands, sellers (ids), high_rating, discounted, new, bestsellers, brand_certified, official_store, premium_sellers, made_in_russia, installment, sale, and any other Ozon filter by its key in \"other\".",
            "default": {}
          },
          "categories": {
            "title": "Category tree (market slice)",
            "type": "array",
            "description": "Category links: the actor walks the subcategory tree and takes the first products of every lowest category — a price slice of a whole market.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "category_depth": {
            "title": "Category tree depth",
            "minimum": 0,
            "type": "integer",
            "description": "How many subcategory levels to walk down.",
            "default": 1
          },
          "category_products": {
            "title": "Products per lowest category",
            "minimum": 1,
            "type": "integer",
            "description": "How many first products (as Ozon sorts them) to take from every lowest category.",
            "default": 10
          },
          "storefronts": {
            "title": "Storefronts",
            "type": "array",
            "description": "ozon.ru, ozon.by, ozon.kz — all in one run, side by side (sheet «Storefronts» compares prices).",
            "items": {
              "type": "string",
              "enum": [
                "ru",
                "by",
                "kz"
              ],
              "enumTitles": [
                "ozon.ru",
                "ozon.by",
                "ozon.kz"
              ]
            },
            "default": [
              "ru"
            ]
          },
          "cities": {
            "title": "Delivery cities",
            "type": "array",
            "description": "Prices and delivery depend on the city. One list for all storefronts: 76 Russian cities («Москва», «Санкт-Петербург», «Казань»…), 6 in Belarus («Минск», «Гомель»…), 9 in Kazakhstan («Астана», «Алматы»…) — names in Russian, as on Ozon. A storefront without its own city here uses its capital. One row per product per city.",
            "default": [
              "Москва"
            ],
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Language",
            "enum": [
              "ru",
              "en",
              "zh-Hans",
              "kk",
              "hy",
              "uz-Latn",
              "az-Latn",
              "mn",
              "tk",
              "tr"
            ],
            "type": "string",
            "description": "Product names and texts are translated by Ozon; reviews stay as written.",
            "default": "ru"
          },
          "output_language": {
            "title": "Output language",
            "enum": [
              "en",
              "ru"
            ],
            "type": "string",
            "description": "Language of the Excel workbook, CSV, change details, run status and log. Ozon's own data (product names, characteristics, reviews) comes in the site language (the Language field).",
            "default": "en"
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "RUB",
              "USD",
              "BYN",
              "KZT",
              "ILS",
              "AMD",
              "UZS",
              "KGS",
              "AZN",
              "GEL",
              "MNT",
              "AUD",
              "DKK",
              "JPY",
              "CAD",
              "CNY",
              "MDL",
              "NOK",
              "PLN",
              "SGD",
              "TRY",
              "UAH",
              "GBP",
              "CZK",
              "SEK",
              "CHF"
            ],
            "type": "string",
            "description": "One for all storefronts. Use one currency (e.g. RUB) to compare storefronts; BYN / KZT — local prices of ozon.by / ozon.kz.",
            "default": "RUB"
          },
          "max_results": {
            "title": "Products per query or link",
            "minimum": 0,
            "type": "integer",
            "description": "0 — all. Also limited by your max total charge for the run.",
            "default": 5
          },
          "new_only": {
            "title": "Only new reviews and questions",
            "type": "boolean",
            "description": "Modes reviews and hotel_reviews: rows only for reviews (and questions) not returned by your previous runs (they are remembered in the history store). Products: «Reviews per product» is how many to look through; hotels: newest first, up to the first review already returned.",
            "default": false
          },
          "skip_details": {
            "title": "Search results only (cheaper)",
            "type": "boolean",
            "description": "Only cards from search results: price, rating, reviews, badges, delivery date. Without it every product page is opened: ~60 fields — stock, seller, variants, characteristics, description, delivery options, return policy…",
            "default": false
          },
          "light_details": {
            "title": "Light product pages (main part only)",
            "type": "boolean",
            "description": "Full mode, but from the product page only its main part: price, stock, seller, rating, promo, variants — without characteristics, description and delivery. 1 request per product instead of 3.",
            "default": false
          },
          "page_every_hours": {
            "title": "Reopen product pages every N hours",
            "minimum": 0,
            "type": "integer",
            "description": "Repeated checks: a product page is reopened only if its search card changed (price, availability, rating, reviews, stock) or the last open was N+ hours ago; otherwise the page from the last check is used (0 — always open).",
            "default": 0
          },
          "price_split": {
            "title": "Split searches by price",
            "type": "boolean",
            "description": "Every search is collected in parts by price (the ranges Ozon suggests for it, each halved), all at once — much faster and deeper for big searches. Source is «query · from–to», places and max results are per part.",
            "default": false
          },
          "report_unavailable": {
            "title": "Report unavailable product links",
            "type": "boolean",
            "description": "For product links: a row even if the product is sold out, deleted or its page did not open (status). Deleted and failed rows are free.",
            "default": false
          },
          "include_other_sellers": {
            "title": "Other sellers",
            "type": "boolean",
            "description": "All other sellers of the product with prices, place by price and by delivery speed, rating of the product at each seller. +2 requests per product.",
            "default": false
          },
          "include_month_average": {
            "title": "Ozon's average price for last month",
            "type": "boolean",
            "description": "From the «Price dropped» window — and with it «fake discount» detection.",
            "default": false
          },
          "reviews_count": {
            "title": "Reviews per product",
            "minimum": 0,
            "type": "integer",
            "description": "0 — none. 30 per page, pages in parallel on several sessions; Ozon shows up to ~3,000 per product. From 1 — also star distribution and «new bad reviews» with texts.",
            "default": 0
          },
          "reviews_sort": {
            "title": "Review order",
            "enum": [
              "usefulness_desc",
              "score_desc",
              "score_asc"
            ],
            "type": "string",
            "description": "Which reviews come first.",
            "default": "usefulness_desc"
          },
          "reviews_replies": {
            "title": "Review replies",
            "type": "boolean",
            "description": "The whole reply thread under each review: the shop and buyers. +1 request per review with replies.",
            "default": false
          },
          "questions_count": {
            "title": "Questions per product",
            "minimum": 0,
            "type": "integer",
            "description": "0 — none. Questions with all answers, 10 per request.",
            "default": 0
          },
          "media_count": {
            "title": "Customer photos and videos per product",
            "minimum": 0,
            "type": "integer",
            "description": "0 — none. The whole review gallery, 100 per request.",
            "default": 0
          },
          "include_seller_details": {
            "title": "Seller profile",
            "type": "boolean",
            "description": "Legal name, address, OGRN, working hours, brands, orders, rating, years on Ozon. +2 requests per new seller.",
            "default": false
          },
          "my_skus": {
            "title": "Tracked products (SKUs)",
            "type": "array",
            "description": "Products whose place in every search and list you want to know — looked for beyond «Products per query», up to «Pages to look for them». Example: [211356510].",
            "default": []
          },
          "my_skus_pages": {
            "title": "Pages to look for tracked products",
            "minimum": 1,
            "type": "integer",
            "description": "How many search pages to look through for tracked products.",
            "default": 10
          },
          "track_prices": {
            "title": "Price history and changes",
            "type": "boolean",
            "description": "Keep history between runs (in your named key-value store, see «History store») and report what changed since the last run: price, stock, place in search, new and dropped products, sellers, rating, bad reviews, promo, name, photo, lowest price in a period, fake discount, price target reached. Schedule the actor to monitor.",
            "default": true
          },
          "dynamics_checks": {
            "title": "Checks on history sheets",
            "minimum": 0,
            "type": "integer",
            "description": "Excel sheets «Dynamics», «Stock», «Positions», «Market» show the last N runs (0 — no sheets).",
            "default": 30
          },
          "alert_positions": {
            "title": "Place change threshold",
            "minimum": 0,
            "type": "integer",
            "description": "Report a move in search results of at least this many places (0 — off).",
            "default": 5
          },
          "alert_stock": {
            "title": "Low stock threshold",
            "minimum": 0,
            "type": "integer",
            "description": "Report when stock falls below this many items (0 — off).",
            "default": 10
          },
          "alert_other_sellers": {
            "title": "Cheaper elsewhere threshold, %",
            "minimum": 0,
            "type": "number",
            "description": "Report when another seller is cheaper by at least this many % (0 — off).",
            "default": 5
          },
          "price_period_days": {
            "title": "Period for «lowest price» and «fake discount», days",
            "minimum": 0,
            "type": "integer",
            "description": "«Lowest price in the period» and the real price for «fake discount» look this many days back (0 — off).",
            "default": 30
          },
          "alert_fake_discount": {
            "title": "Fake discount threshold, %",
            "minimum": 0,
            "type": "number",
            "description": "The crossed-out price is above the real one (the highest of the period, or Ozon's average for last month) by at least this many % (0 — off).",
            "default": 10
          },
          "alert_market_percent": {
            "title": "Market change threshold, %",
            "minimum": 0,
            "type": "number",
            "description": "«Listing got cheaper / pricier» — the median price of a search, list or category moved, «fewer in stock in the listing» — at least this many % since the last check (listings with 5+ products in stock; 0 — off).",
            "default": 10
          },
          "price_targets": {
            "title": "Price targets",
            "type": "object",
            "description": "SKU -> price (with Ozon Card, in the run currency). Reported once when the price falls to it. Example: {\"211356510\": 180}.",
            "default": {}
          },
          "save_results": {
            "title": "Excel workbook",
            "type": "boolean",
            "description": "results.xlsx in the run's key-value store: products, changes, dynamics, stock and sales estimate, positions, market, storefronts, cities, categories — with charts.",
            "default": true
          },
          "check_in": {
            "title": "Check-in date (hotels)",
            "type": "string",
            "description": "Mode hotels and hotel_reviews: YYYY-MM-DD. With check-in and check-out — rates and prices for the whole stay; without — Ozon's «from» price per night."
          },
          "check_out": {
            "title": "Check-out date (hotels)",
            "type": "string",
            "description": "YYYY-MM-DD, after check-in."
          },
          "hotel_nights": {
            "title": "Nights from run day (hotels)",
            "minimum": 0,
            "maximum": 30,
            "type": "integer",
            "description": "Instead of fixed dates — for scheduled runs: check-in «Days ahead» days after the run day, for this many nights (each run looks at «a week ahead, 2 nights»). 0 — dates from check-in / check-out.",
            "default": 0
          },
          "hotel_days_ahead": {
            "title": "Days ahead (hotels)",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "With «Nights from run day»: check-in this many days after the run day.",
            "default": 1
          },
          "adults": {
            "title": "Adults (hotels)",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Guests for hotel prices and rates.",
            "default": 2
          },
          "hotel_reviews_sort": {
            "title": "Hotel review order",
            "enum": [
              "usefulness_desc",
              "created_at_desc",
              "score_desc",
              "score_asc"
            ],
            "type": "string",
            "description": "Hotels have «newest first» (created_at_desc), unlike products.",
            "default": "usefulness_desc"
          },
          "flights": {
            "title": "Flights — routes",
            "type": "array",
            "description": "Mode flights: one route per line — IATA codes of cities or airports (MOW-LED, LED-AER) or city names («Москва — Санкт-Петербург»: the site finds the code), or a flight search link from ozon.ru/travel (it keeps its own dates, passengers and class). Flights per search — «Products per query or link».",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "departure_date": {
            "title": "Departure date",
            "type": "string",
            "description": "YYYY-MM-DD. Needed for routes of flights and trains (links have their own dates)."
          },
          "return_date": {
            "title": "Return date",
            "type": "string",
            "description": "YYYY-MM-DD, a round trip (trains: a second search back); empty — one way."
          },
          "departure_days_ahead": {
            "title": "Departure days from run day",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Instead of fixed dates — for scheduled runs: departure this many days after the run day (each run looks at «a week ahead»). 0 — the departure date above; if the departure date is set, it wins.",
            "default": 0
          },
          "return_after_days": {
            "title": "Return after days",
            "minimum": 0,
            "maximum": 180,
            "type": "integer",
            "description": "With «Departure days from run day»: return this many days after departure (0 — one way).",
            "default": 0
          },
          "passengers": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 9,
            "type": "integer",
            "description": "Passengers 12 and older (trains: 10 and older). Flight prices are for all passengers, train prices are per seat. Trains: up to 4 with a seat.",
            "default": 1
          },
          "children": {
            "title": "Children with a seat",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "Flights: 2–12 years, adults and children — up to 9. Trains: under 10, adults and children — up to 4.",
            "default": 0
          },
          "infants": {
            "title": "Children without a seat",
            "minimum": 0,
            "maximum": 9,
            "type": "integer",
            "description": "Flights: under 2, trains: under 5. Not more than adults.",
            "default": 0
          },
          "service_class": {
            "title": "Class",
            "enum": [
              "economy",
              "business",
              "first"
            ],
            "type": "string",
            "description": "Cabin class of the search: economy and comfort, business or first.",
            "default": "economy"
          },
          "flight_airlines": {
            "title": "Only these airlines",
            "type": "array",
            "description": "IATA airline codes: SU, S7, DP. Empty — all airlines.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "flight_sorting": {
            "title": "Flight order",
            "enum": [
              "best",
              "price",
              "fast",
              "departure",
              "arrival"
            ],
            "type": "string",
            "description": "Which flights come first (and are taken when «Products per query or link» limits them). The cheapest price of a search is taken among all flights received: with «Best first» and «Cheapest first» the cheapest one is always among the first 100; with other orders set «0 — all» to be sure.",
            "default": "best"
          },
          "flight_tariffs": {
            "title": "Fare options of each flight",
            "type": "boolean",
            "description": "Opens the «Choose a fare» window of every flight: fares with price, baggage, exchange, refund, seat choice, miles. +1 request per flight, so up to 20 flights per route.",
            "default": false
          },
          "trains": {
            "title": "Trains — routes",
            "type": "array",
            "description": "Mode trains: one route per line — city or station names in Russian («Москва — Санкт-Петербург»: the site finds the station codes), «Express» station codes (2000000-2004000) or a train search link from ozon.ru/travel/railway (it keeps its own date, passengers and car types). Dates and passengers — the same fields as for flights; a return date — one more search back. Trains per search — «Products per query or link».",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "train_car_types": {
            "title": "Only these car types",
            "type": "array",
            "description": "Only trains with these cars, and the cheapest seat — among them. Empty — any cars.",
            "items": {
              "type": "string",
              "enum": [
                "sitting",
                "reserved",
                "compartment",
                "luxury",
                "soft"
              ],
              "enumTitles": [
                "Seats (sitting)",
                "Platzkart (open sleeper)",
                "Coupe (4-berth)",
                "SV (2-berth)",
                "Lux"
              ]
            },
            "default": []
          },
          "train_sorting": {
            "title": "Train order",
            "enum": [
              "departure",
              "arrival",
              "duration",
              "price",
              "places"
            ],
            "type": "string",
            "description": "Which trains come first (and are taken when «Products per query or link» limits them). All trains come at once — the cheapest seat of a search is always among all of them.",
            "default": "departure"
          },
          "train_routes": {
            "title": "Train route (stops)",
            "type": "boolean",
            "description": "Opens the «Train route» window of every train: stops with arrival and departure times, stop duration, carrier, e-registration. +1 request per train, so up to 20 trains per search.",
            "default": false
          },
          "train_cars": {
            "title": "Cars and seats",
            "type": "boolean",
            "description": "Opens the «Choose a car and seats» window of every train: each car with its number, class («3Б», «2К»…), free seats, lower and upper berths, price with and without Ozon Bank, services. +2 requests per train, so up to 20 trains per search; not for trips with a transfer.",
            "default": false
          },
          "sessions": {
            "title": "Sessions per storefront",
            "minimum": 1,
            "maximum": 32,
            "type": "integer",
            "description": "Anonymous Ozon buyers working at the same time on each storefront, each with its own proxy session: 2 — about twice as fast as 1. Sessions are kept in the history store, so a browser opens for a new one only once.",
            "default": 8
          },
          "browsers": {
            "title": "Browsers at once",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "A browser (~320 MB) opens only to get a new Ozon session (they are kept in the history store, so mostly on the first run). Several at once — the first run starts faster. Capped by run memory: 1 GB — 1, 2 GB — 3, 4 GB — 7.",
            "default": 3
          },
          "history_store": {
            "title": "History store",
            "type": "string",
            "description": "Name of the key-value store in your account that keeps price history between runs. Different names — separate histories. Runs with the same store don't overlap: a second one waits up to 10 minutes for the first to finish.",
            "default": "ozon-history"
          },
          "proxy_ru": {
            "title": "Your proxy for ozon.ru",
            "type": "string",
            "description": "user:pass@host:port, residential, Russia — one per line: every Ozon session gets its own (one line — all sessions share it). Empty — the actor's built-in proxies of this country (included in the price)."
          },
          "proxy_by": {
            "title": "Your proxy for ozon.by",
            "type": "string",
            "description": "Belarus, one per line. ozon.by lets in only Belarusian IPs. Empty — the actor's built-in proxies of this country (included in the price)."
          },
          "proxy_kz": {
            "title": "Your proxy for ozon.kz",
            "type": "string",
            "description": "Kazakhstan, one per line. Empty — the actor's built-in proxies of this country (included in the price)."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}