{
  "openapi": "3.0.1",
  "info": {
    "title": "Property Listings API - Europe Prices, Comps, Market Data",
    "description": "Search European property listings deduplicated across every portal advertising them, with sale and rent prices side by side, full price change history, days on market, comparables, valuation price bands and market time series.",
    "version": "0.1",
    "x-build-id": "lo0rXAp2WwrnHtLjB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~european-property-listings-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-european-property-listings-api",
        "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/nabeelbaghoor~european-property-listings-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-european-property-listings-api",
        "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/nabeelbaghoor~european-property-listings-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-european-property-listings-api",
        "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": "What to do",
            "enum": [
              "propertySearch",
              "propertyById",
              "comparables",
              "valuation",
              "marketAnalysis",
              "timeSeries",
              "locationSearch",
              "references"
            ],
            "type": "string",
            "description": "Location search finds the provider's location IDs, which the search and analytics modes are addressed by, so run it first. Property search pages the deduplicated property set. Comparables finds similar properties around a target and valuation turns them into a price band. Market analysis reads the aggregate picture for an area and time series plots one measure over time.",
            "default": "locationSearch"
          },
          "locationNames": {
            "title": "Place names",
            "type": "array",
            "description": "Location search mode. One partial place name per line, for example Lisbon or Marbella. Each one returns matching locations with the numeric location IDs the other modes need.",
            "items": {
              "type": "string"
            }
          },
          "countryCodes": {
            "title": "Country codes",
            "type": "array",
            "description": "Location search mode. Narrows the suggestions to these countries.",
            "items": {
              "type": "string",
              "enum": [
                "ES",
                "PT"
              ],
              "enumTitles": [
                "Spain",
                "Portugal"
              ]
            }
          },
          "language": {
            "title": "Language",
            "enum": [
              "en",
              "es",
              "pt",
              "de"
            ],
            "type": "string",
            "description": "Location search mode. The language location names are returned in.",
            "default": "en"
          },
          "locationIds": {
            "title": "Location IDs",
            "type": "array",
            "description": "One numeric location ID per line, as returned by location search. Used by property search, market analysis and time series. In reference mode the first one narrows the sources list.",
            "items": {
              "type": "string"
            }
          },
          "propertyIds": {
            "title": "Property IDs",
            "type": "array",
            "description": "Property by ID mode. One numeric property ID per line, as returned in the propertyId column of a search.",
            "items": {
              "type": "string"
            }
          },
          "addresses": {
            "title": "Target addresses",
            "type": "array",
            "description": "Comparables and valuation modes. One address per line to centre the comparables search on. Each address is run separately.",
            "items": {
              "type": "string"
            }
          },
          "cadastralReference": {
            "title": "Spanish cadastral reference",
            "type": "string",
            "description": "Comparables and valuation modes, Spain only. An alternative to an address or coordinates, and the most precise way to name a Spanish property."
          },
          "latitude": {
            "title": "Latitude",
            "type": "string",
            "description": "An alternative to location IDs or an address. Give a longitude and a radius with it."
          },
          "longitude": {
            "title": "Longitude",
            "type": "string",
            "description": "An alternative to location IDs or an address. Give a latitude and a radius with it."
          },
          "radiusMeters": {
            "title": "Radius in metres",
            "minimum": 1,
            "type": "integer",
            "description": "How far from the point to search, in metres. Location IDs take precedence over a radius, because the provider accepts only one boundary shape per request.",
            "default": 2000
          },
          "searchOperations": {
            "title": "Market status",
            "type": "array",
            "description": "Property search mode. Which side of the market to return. Sale and rent are what is available now; sold and rented are completed, which is how to study achieved prices; hold is reserved or under offer.",
            "items": {
              "type": "string",
              "enum": [
                "sale",
                "sold",
                "sale_hold",
                "rent",
                "rented",
                "rent_hold"
              ],
              "enumTitles": [
                "For sale",
                "Sold",
                "Sale on hold",
                "For rent",
                "Rented",
                "Rent on hold"
              ]
            }
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Keeps only these types, in the provider's own spelling, for example apartment, house, villa, townhouse, penthouse, studio, duplex, country_house, plot, office or retail. Reference mode returns the full list.",
            "items": {
              "type": "string"
            }
          },
          "conditions": {
            "title": "Condition",
            "type": "array",
            "description": "Keeps only properties in these conditions.",
            "items": {
              "type": "string",
              "enum": [
                "new",
                "very-good",
                "used",
                "ruin",
                "other"
              ],
              "enumTitles": [
                "New",
                "Very good",
                "Used",
                "Ruin",
                "Other"
              ]
            }
          },
          "condition": {
            "title": "Target condition",
            "enum": [
              "new",
              "very-good",
              "used",
              "ruin",
              "other"
            ],
            "type": "string",
            "description": "Comparables and valuation modes. Describes the property being priced, rather than filtering a search."
          },
          "priceFrom": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "In the local currency of the listing."
          },
          "priceTo": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "In the local currency of the listing."
          },
          "pricePerSqmFrom": {
            "title": "Minimum price per square metre",
            "minimum": 0,
            "type": "integer",
            "description": "Often a better comparison across a city than the asking price itself."
          },
          "pricePerSqmTo": {
            "title": "Maximum price per square metre",
            "minimum": 0,
            "type": "integer",
            "description": "Often a better comparison across a city than the asking price itself."
          },
          "bedroomsFrom": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Property search, market analysis and time series modes."
          },
          "bedroomsTo": {
            "title": "Maximum bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Property search, market analysis and time series modes."
          },
          "bedrooms": {
            "title": "Target bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Comparables and valuation modes. Describes the property being priced."
          },
          "bathroomsFrom": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Property search, market analysis and time series modes."
          },
          "bathroomsTo": {
            "title": "Maximum bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Property search, market analysis and time series modes."
          },
          "bathrooms": {
            "title": "Target bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Comparables and valuation modes. Describes the property being priced."
          },
          "roomsFrom": {
            "title": "Minimum rooms",
            "minimum": 0,
            "type": "integer",
            "description": "Total rooms rather than bedrooms, which is how several of these markets quote size."
          },
          "roomsTo": {
            "title": "Maximum rooms",
            "minimum": 0,
            "type": "integer",
            "description": "Total rooms rather than bedrooms, which is how several of these markets quote size."
          },
          "rooms": {
            "title": "Target rooms",
            "minimum": 0,
            "type": "integer",
            "description": "Comparables and valuation modes. Describes the property being priced."
          },
          "totalAreaFrom": {
            "title": "Minimum total area",
            "minimum": 0,
            "type": "integer",
            "description": "In square metres, including terraces and outbuildings."
          },
          "totalAreaTo": {
            "title": "Maximum total area",
            "minimum": 0,
            "type": "integer",
            "description": "In square metres, including terraces and outbuildings."
          },
          "totalArea": {
            "title": "Target total area",
            "minimum": 0,
            "type": "integer",
            "description": "Comparables and valuation modes. In square metres. One of the strongest inputs to a price band."
          },
          "livingAreaFrom": {
            "title": "Minimum living area",
            "minimum": 0,
            "type": "integer",
            "description": "In square metres, interior only."
          },
          "livingAreaTo": {
            "title": "Maximum living area",
            "minimum": 0,
            "type": "integer",
            "description": "In square metres, interior only."
          },
          "plotAreaFrom": {
            "title": "Minimum plot area",
            "minimum": 0,
            "type": "integer",
            "description": "In square metres. Applies to houses and land."
          },
          "plotAreaTo": {
            "title": "Maximum plot area",
            "minimum": 0,
            "type": "integer",
            "description": "In square metres. Applies to houses and land."
          },
          "plotArea": {
            "title": "Target plot area",
            "minimum": 0,
            "type": "integer",
            "description": "Comparables and valuation modes. In square metres."
          },
          "constructionYearFrom": {
            "title": "Built no earlier than",
            "minimum": 1000,
            "type": "integer",
            "description": "A four digit year."
          },
          "constructionYearTo": {
            "title": "Built no later than",
            "minimum": 1000,
            "type": "integer",
            "description": "A four digit year."
          },
          "constructionYear": {
            "title": "Target construction year",
            "minimum": 1000,
            "type": "integer",
            "description": "Comparables and valuation modes. Describes the property being priced."
          },
          "daysOnMarketFrom": {
            "title": "Minimum days on market",
            "minimum": 0,
            "type": "integer",
            "description": "A high floor finds stale stock, which is where negotiation room usually is."
          },
          "daysOnMarketTo": {
            "title": "Maximum days on market",
            "minimum": 0,
            "type": "integer",
            "description": "A low ceiling finds fresh listings."
          },
          "grossYieldFrom": {
            "title": "Minimum gross yield",
            "minimum": 0,
            "type": "integer",
            "description": "Property search mode. The provider's own gross yield estimate, as a percentage."
          },
          "grossYieldTo": {
            "title": "Maximum gross yield",
            "minimum": 0,
            "type": "integer",
            "description": "Property search mode. The provider's own gross yield estimate, as a percentage."
          },
          "parkingsFrom": {
            "title": "Minimum parking spaces",
            "minimum": 0,
            "type": "integer",
            "description": "Property search mode."
          },
          "parkingsTo": {
            "title": "Maximum parking spaces",
            "minimum": 0,
            "type": "integer",
            "description": "Property search mode."
          },
          "mustHave": {
            "title": "Must have",
            "type": "array",
            "description": "Keeps only properties with all of these.",
            "items": {
              "type": "string",
              "enum": [
                "balcony",
                "elevator",
                "no_elevator",
                "garage",
                "garden",
                "parking",
                "storage",
                "swimming_pool",
                "terrace",
                "rental_license",
                "furniture",
                "rented_out",
                "life_annuity"
              ],
              "enumTitles": [
                "Balcony",
                "Elevator",
                "No elevator",
                "Garage",
                "Garden",
                "Parking",
                "Storage",
                "Swimming pool",
                "Terrace",
                "Rental licence",
                "Furnished",
                "Currently rented out",
                "Life annuity"
              ]
            }
          },
          "exclude": {
            "title": "Must not have",
            "type": "array",
            "description": "Keeps only properties without any of these. Anything named on both lists is treated as required, since that is the deliberate half of the contradiction.",
            "items": {
              "type": "string",
              "enum": [
                "balcony",
                "elevator",
                "no_elevator",
                "garage",
                "garden",
                "parking",
                "storage",
                "swimming_pool",
                "terrace",
                "rental_license",
                "furniture",
                "rented_out",
                "life_annuity"
              ],
              "enumTitles": [
                "Balcony",
                "Elevator",
                "No elevator",
                "Garage",
                "Garden",
                "Parking",
                "Storage",
                "Swimming pool",
                "Terrace",
                "Rental licence",
                "Furnished",
                "Currently rented out",
                "Life annuity"
              ]
            }
          },
          "floors": {
            "title": "Floor position",
            "type": "array",
            "description": "Keeps only properties on these floors.",
            "items": {
              "type": "string",
              "enum": [
                "no_floor",
                "ground",
                "middle",
                "top"
              ],
              "enumTitles": [
                "No floor",
                "Ground floor",
                "Middle floor",
                "Top floor"
              ]
            }
          },
          "views": {
            "title": "View",
            "type": "array",
            "description": "Keeps only properties with these views.",
            "items": {
              "type": "string",
              "enum": [
                "water",
                "landscape",
                "city",
                "golf",
                "park"
              ],
              "enumTitles": [
                "Water",
                "Landscape",
                "City",
                "Golf",
                "Park"
              ]
            }
          },
          "directions": {
            "title": "Facing direction",
            "type": "array",
            "description": "Keeps only properties facing these ways, which in southern Europe is a real price factor.",
            "items": {
              "type": "string",
              "enum": [
                "north",
                "south",
                "east",
                "west"
              ],
              "enumTitles": [
                "North",
                "South",
                "East",
                "West"
              ]
            }
          },
          "orientation": {
            "title": "Orientation",
            "enum": [
              "exterior",
              "interior"
            ],
            "type": "string",
            "description": "Whether the property faces outward from the building or into a courtyard."
          },
          "energyRatings": {
            "title": "Energy rating",
            "type": "array",
            "description": "Keeps only properties with these energy certificate ratings.",
            "items": {
              "type": "string",
              "enum": [
                "Unknown",
                "A+",
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G",
                "H"
              ],
              "enumTitles": [
                "Unknown",
                "A+",
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G",
                "H"
              ]
            }
          },
          "updatedFrom": {
            "title": "Updated since",
            "type": "string",
            "description": "Property search mode. Keeps only properties whose record changed on or after this date, as YYYY-MM-DD. This is how to run a daily delta rather than the whole set."
          },
          "createdFrom": {
            "title": "First seen since",
            "type": "string",
            "description": "Property search mode. Keeps only properties the provider first indexed on or after this date, as YYYY-MM-DD, which is how to find genuinely new stock."
          },
          "privateOnly": {
            "title": "Private sellers only",
            "type": "boolean",
            "description": "Leave this alone to ignore it. Ticked keeps only properties advertised by private owners rather than agencies."
          },
          "auctionOnly": {
            "title": "Auction properties only",
            "type": "boolean",
            "description": "Leave this alone to ignore it."
          },
          "bankOnly": {
            "title": "Bank owned only",
            "type": "boolean",
            "description": "Leave this alone to ignore it. Bank owned stock is repossessed property being sold by the lender."
          },
          "exclusiveOnly": {
            "title": "Exclusive mandates only",
            "type": "boolean",
            "description": "Leave this alone to ignore it. An exclusive property is advertised by one agency rather than several."
          },
          "withAgencies": {
            "title": "Only these agencies",
            "type": "array",
            "description": "Property search mode. One agency name per line. Reference mode returns the agency list.",
            "items": {
              "type": "string"
            }
          },
          "withoutAgencies": {
            "title": "Excluding these agencies",
            "type": "array",
            "description": "Property search mode. One agency name per line, which is how to exclude your own stock from a competitor scan.",
            "items": {
              "type": "string"
            }
          },
          "comparablesCount": {
            "title": "Number of comparables",
            "minimum": 1,
            "type": "integer",
            "description": "Comparables and valuation modes. How many similar properties to base the answer on. More comparables is a steadier estimate over a looser match.",
            "default": 10
          },
          "comparablesOperation": {
            "title": "Compare on sale or rent",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Comparables and valuation modes. Which side of the market to draw the comparables from.",
            "default": "sale"
          },
          "soldOrRentedAfter": {
            "title": "Only comparables closed after",
            "type": "string",
            "description": "Comparables and valuation modes. As YYYY-MM-DD. A tighter window tracks a moving market more closely but finds fewer comparables."
          },
          "excludeOutliers": {
            "title": "Exclude outliers",
            "type": "boolean",
            "description": "Comparables, valuation and time series modes. Drops the properties the provider considers unrepresentative, which steadies an estimate in a thin market.",
            "default": false
          },
          "businessType": {
            "title": "Analyse sale or rent",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Market analysis and time series modes. Which side of the market to analyse.",
            "default": "sale"
          },
          "dataPoint": {
            "title": "Series measure",
            "enum": [
              "avg_price",
              "avg_price_psqm",
              "available_on_market",
              "new",
              "sold_or_rented",
              "price_up",
              "price_down"
            ],
            "type": "string",
            "description": "Time series mode. Which measure to plot over time.",
            "default": "avg_price"
          },
          "dateInterval": {
            "title": "Series interval",
            "enum": [
              "week",
              "month",
              "quarter",
              "year"
            ],
            "type": "string",
            "description": "Time series mode. How the series is bucketed. A quarter smooths a thin market better than a week does.",
            "default": "month"
          },
          "seriesFrom": {
            "title": "Series from date",
            "type": "string",
            "description": "Time series mode. As YYYY-MM-DD."
          },
          "seriesTo": {
            "title": "Series to date",
            "type": "string",
            "description": "Time series mode. As YYYY-MM-DD."
          },
          "referenceLists": {
            "title": "Reference lists",
            "type": "array",
            "description": "Reference mode. The provider's own vocabularies, which is where the exact spellings for the property type and characteristic filters come from.",
            "items": {
              "type": "string",
              "enum": [
                "types",
                "features",
                "conditions",
                "agencies",
                "sources"
              ],
              "enumTitles": [
                "Property types",
                "Features",
                "Conditions",
                "Agencies",
                "Listing sources"
              ]
            }
          },
          "agencyName": {
            "title": "Agency name filter",
            "type": "string",
            "description": "Reference mode, agencies list only. A partial agency name to search for."
          },
          "orderBy": {
            "title": "Sort by",
            "enum": [
              "price",
              "price_per_sqm",
              "total_area",
              "plot_area",
              "bedrooms",
              "construction_year",
              "last_update",
              "time_on_market"
            ],
            "type": "string",
            "description": "Property search mode.",
            "default": "last_update"
          },
          "orderDirection": {
            "title": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "type": "string",
            "description": "Property search mode.",
            "default": "desc"
          },
          "maxResults": {
            "title": "Maximum rows",
            "minimum": 1,
            "type": "integer",
            "description": "The most rows this run will save and charge for. This is the spending control on both sides.",
            "default": 1000
          },
          "pageSize": {
            "title": "Results per request",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many rows to ask for at a time, up to the provider's ceiling of 100. The provider also caps paging at an offset of 50000, so a larger result set than that needs tighter filters.",
            "default": 100
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "How fast to call the provider. Lower this if your plan is metered tightly.",
            "default": 120
          },
          "baseUrl": {
            "title": "API base URL",
            "type": "string",
            "description": "Only set this if the provider has given you a different host. Leave empty to use the documented one."
          },
          "apiUsername": {
            "title": "API account email",
            "type": "string",
            "description": "Your own account email for the property listings provider. This actor is bring your own credentials: it never uses anyone else's, and both halves are stored as secrets."
          },
          "apiPassword": {
            "title": "API password",
            "type": "string",
            "description": "Your own account password for the property listings provider. Exchanged once per run for an access token rather than sent with every request."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}