{
  "openapi": "3.0.1",
  "info": {
    "title": "CRE Market Data API - Cap Rates, NAV, Forecasts",
    "description": "Commercial real estate research across 90 datasets: market cap rates, quality grades and rent growth, REIT net asset values and fundamentals, forecast scenarios by release, CMBS and CRE CLO deals and tranches, property sale comps, retail centre and tenant analytics, executive pay and total returns.",
    "version": "0.1",
    "x-build-id": "sIP0Yef1k4BfXGwdm"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~cre-market-data-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-cre-market-data-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~cre-market-data-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-cre-market-data-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~cre-market-data-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-cre-market-data-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": {
          "dataset": {
            "title": "Dataset",
            "enum": [
              "examples",
              "attribute-ids",
              "company-ids",
              "data-dictionary",
              "debt-entity-ids",
              "debt-ids",
              "grade-ids",
              "market-ids",
              "property-ids",
              "scenario-ids",
              "sector-ids",
              "weight-ids",
              "company-cvni",
              "company-market-breakouts",
              "company-nav-balance-sheet",
              "company-nav-geographic",
              "company-nav-operating",
              "company-nav-property",
              "company-periodicals",
              "company-property-breakouts",
              "company-special-splits",
              "company-summaries",
              "company-summaries-historical",
              "company-surprises",
              "company-tenants",
              "company-transactions",
              "sector-periodicals",
              "sector-summaries",
              "sector-summaries-historical",
              "market-company-summaries",
              "market-sector-commentary",
              "market-sector-employers",
              "market-sector-grades",
              "market-sector-periodicals",
              "market-sector-summaries",
              "market-sector-summaries-historical",
              "market-summaries-historical",
              "factor-companies",
              "factor-indices",
              "forecasts",
              "forecasts-historical",
              "macro-historical",
              "rmz-fair-value",
              "model-portfolio-companies",
              "model-portfolio-companies-historical",
              "model-portfolio-sectors-private",
              "model-portfolio-sectors-public",
              "total-returns-annualized",
              "total-returns-nareit",
              "total-returns-periodicals",
              "abs-clo-collateral",
              "abs-deals",
              "abs-entities",
              "abs-tranches",
              "clo-deals",
              "clo-entities",
              "clo-tranches",
              "cmbs-by-type",
              "cmbs-conduit-gpm",
              "cmbs-deals",
              "cmbs-entities",
              "cmbs-tranches",
              "cmbs-volume",
              "hy-entities",
              "hy-funds",
              "hy-operators",
              "hy-targets",
              "sales-comps",
              "sales-comps-volume",
              "caprates-euro-shopping-centre",
              "caprates-strip-center-market",
              "caprates-strip-center-reit",
              "retail-concentration",
              "retail-demographics",
              "retail-geographies",
              "retail-historical",
              "retail-openings-categories",
              "retail-openings-units",
              "retail-properties",
              "retail-property-historical",
              "retail-property-owners",
              "retail-property-summaries",
              "retail-property-tenants",
              "retail-tenant-features",
              "retail-tenants",
              "exec-comp-excess",
              "exec-comp-historical",
              "exec-comp-individual",
              "exec-comp-projected",
              "exec-comp-summaries"
            ],
            "type": "string",
            "description": "Which of the provider's datasets to read. Ninety of them share one query language, and each accepts its own subset of the filters below; filters that do not apply to your choice are dropped before the request and named in the log. Start with the preview dataset, which needs no credential, or with a reference dataset to find the IDs the others filter on.",
            "default": "market-sector-summaries"
          },
          "region": {
            "title": "Region",
            "enum": [
              "",
              "usa",
              "eur",
              "can",
              "apac",
              "other",
              "na",
              "eu"
            ],
            "type": "string",
            "description": "Which regional dataset to read. The provider uses two vocabularies across its own API: most endpoints take usa, eur, can, apac or other, a few take na and eu instead. Pick either spelling and it is translated into the one your dataset accepts; a region a dataset does not serve stops the run with the accepted list rather than failing at the provider.",
            "default": ""
          },
          "compIds": {
            "title": "Company IDs",
            "type": "array",
            "description": "One company ID per line. Look them up with the company IDs reference dataset, which also returns tickers and coverage flags.",
            "items": {
              "type": "string"
            }
          },
          "symbols": {
            "title": "Tickers",
            "type": "array",
            "description": "One ticker per line, as listed on the company's local exchange. An alternative to company IDs on the endpoints that accept both.",
            "items": {
              "type": "string"
            }
          },
          "sectorIds": {
            "title": "Sector IDs",
            "type": "array",
            "description": "One sector ID per line. Look them up with the sector IDs reference dataset.",
            "items": {
              "type": "string"
            }
          },
          "marketIds": {
            "title": "Market IDs",
            "type": "array",
            "description": "One market ID per line. Look them up with the market IDs reference dataset. The market commentary dataset reads the first of these from the request path rather than as a filter.",
            "items": {
              "type": "string"
            }
          },
          "marketLevelId": {
            "title": "Market level ID",
            "type": "string",
            "description": "Which geographic level the market IDs are at. Required by the market sector and forecast datasets, which will not run without it."
          },
          "marketZoomId": {
            "title": "Market zoom ID",
            "type": "string",
            "description": "Which zoom level the market summaries are aggregated to. Required by the current and historical market sector summaries."
          },
          "scenarioIds": {
            "title": "Scenario IDs",
            "type": "array",
            "description": "One forecast scenario ID per line. Required by the forecast datasets. Look them up with the scenario IDs reference dataset.",
            "items": {
              "type": "string"
            }
          },
          "releaseIds": {
            "title": "Release IDs",
            "type": "array",
            "description": "One forecast release ID per line, to pin a historical forecast run to the vintage it was published in.",
            "items": {
              "type": "string"
            }
          },
          "dealIds": {
            "title": "Deal IDs",
            "type": "array",
            "description": "One securitisation deal ID per line, for the CMBS, CRE CLO and ABS datasets.",
            "items": {
              "type": "string"
            }
          },
          "entityIds": {
            "title": "Entity IDs",
            "type": "array",
            "description": "One debt entity ID per line: servicers, trustees, underwriters and sellers. Look them up with the debt entity IDs reference dataset.",
            "items": {
              "type": "string"
            }
          },
          "propertyIds": {
            "title": "Property IDs",
            "type": "array",
            "description": "One property ID per line, for the sales comps and retail property datasets. Look them up with the property IDs reference dataset by name or address.",
            "items": {
              "type": "string"
            }
          },
          "tenantIds": {
            "title": "Tenant IDs",
            "type": "array",
            "description": "One retail tenant ID per line.",
            "items": {
              "type": "string"
            }
          },
          "ownerIds": {
            "title": "Owner IDs",
            "type": "array",
            "description": "One retail property owner ID per line.",
            "items": {
              "type": "string"
            }
          },
          "geographyIds": {
            "title": "Geography IDs",
            "type": "array",
            "description": "One retail geography ID per line.",
            "items": {
              "type": "string"
            }
          },
          "gradeIds": {
            "title": "Grade IDs",
            "type": "array",
            "description": "One market grade ID per line, for the retail cap rate datasets. Look them up with the grade IDs reference dataset.",
            "items": {
              "type": "string"
            }
          },
          "columns": {
            "title": "Columns",
            "type": "array",
            "description": "One column name per line to return instead of the full record. Leave empty for everything the dataset publishes. The data dictionary dataset lists what each column means.",
            "items": {
              "type": "string"
            }
          },
          "orderBy": {
            "title": "Order by",
            "type": "array",
            "description": "One column name per line to sort on, on the datasets that accept sorting.",
            "items": {
              "type": "string"
            }
          },
          "sortOrder": {
            "title": "Sort direction",
            "enum": [
              "",
              "asc",
              "desc"
            ],
            "type": "string",
            "description": "Ascending or descending, applied to the order by columns.",
            "default": ""
          },
          "dateStart": {
            "title": "From date",
            "type": "string",
            "description": "Earliest date to return, as YYYY-MM-DD, on the historical datasets."
          },
          "dateEnd": {
            "title": "To date",
            "type": "string",
            "description": "Latest date to return, as YYYY-MM-DD, on the historical datasets."
          },
          "yearStart": {
            "title": "From year",
            "type": "string",
            "description": "Earliest year to return on the periodical datasets, which report by year rather than by date."
          },
          "yearEnd": {
            "title": "To year",
            "type": "string",
            "description": "Latest year to return on the periodical datasets."
          },
          "years": {
            "title": "Years",
            "type": "array",
            "description": "One year per line, for the datasets that filter on a list of years rather than a range.",
            "items": {
              "type": "string"
            }
          },
          "quarter": {
            "title": "Quarter",
            "type": "string",
            "description": "Which quarter to return: 1 to 4, or 5 for the full year summary. Quarterly data is not published for every European dataset."
          },
          "period": {
            "title": "Period",
            "type": "string",
            "description": "The reporting frequency a historical dataset is read at, in the provider's own spelling, for example annual or quarterly."
          },
          "level": {
            "title": "Level",
            "type": "string",
            "description": "The aggregation level required by the older market summary datasets."
          },
          "module": {
            "title": "Retail module",
            "type": "string",
            "description": "Which retail module a request is about: properties, tenants or geographies. Required by several retail datasets."
          },
          "moduleId": {
            "title": "Retail module ID",
            "type": "string",
            "description": "The ID of the property, tenant or geography the retail module request is about."
          },
          "eventType": {
            "title": "Retail event type",
            "type": "string",
            "description": "Whether to return openings or closings, on the retail openings and closings datasets."
          },
          "sectorRetail": {
            "title": "Retail sector",
            "type": "string",
            "description": "Which retail sector the retail property datasets are read for. Required by those datasets."
          },
          "classificationType": {
            "title": "Retail classification type",
            "type": "string",
            "description": "Which classification the retail concentration dataset groups by."
          },
          "product": {
            "title": "Retail product",
            "type": "string",
            "description": "Which retail analytics product the request reads from, where the dataset serves more than one."
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Free text search, on the debt datasets that accept one."
          },
          "extraFilters": {
            "title": "Extra filters",
            "type": "array",
            "description": "One name=value line per extra filter, for the several hundred filters this API publishes that have no form field here. Repeat a name to send it more than once. A name the chosen dataset does not accept is reported in the log and not sent, rather than silently ignored by the provider.",
            "items": {
              "type": "string"
            }
          },
          "version": {
            "title": "Endpoint version",
            "type": "string",
            "description": "Overrides the endpoint version. Leave empty: each dataset already points at its own version and the ceiling differs per endpoint, so a number above it is rejected."
          },
          "pageSize": {
            "title": "Records per request",
            "type": "integer",
            "description": "How many records to ask for per request, up to the provider's ceiling of 1000. A run never asks for more rows than it is allowed to keep.",
            "default": 500
          },
          "startAt": {
            "title": "Start at record",
            "type": "integer",
            "description": "Skip this many records before collecting. Use it to resume a large dataset where a previous run stopped.",
            "default": 0
          },
          "maxResults": {
            "title": "Maximum rows",
            "type": "integer",
            "description": "Stop after this many rows.",
            "default": 100
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "type": "integer",
            "description": "How fast to call the provider. Lower this if your plan's rate limit is being hit.",
            "default": 120
          },
          "clientId": {
            "title": "Client ID",
            "type": "string",
            "description": "Your own client ID, from the client credentials page of your account. Stored encrypted and never written into the dataset."
          },
          "clientSecret": {
            "title": "Client secret",
            "type": "string",
            "description": "Your own client secret. Exchanged once for an access token, which is then cached for its full lifetime as the provider asks. Can also be supplied as the DATA_API_KEY environment secret."
          },
          "accessToken": {
            "title": "Access token",
            "type": "string",
            "description": "An access token you already hold, used instead of exchanging a client ID and secret. Useful when your own systems already mint one. It cannot be refreshed, so a run longer than its lifetime needs the client credentials instead."
          },
          "baseUrl": {
            "title": "API host",
            "type": "string",
            "description": "Overrides the host the API is called on. Leave empty unless the provider has given you a different one."
          },
          "tokenUrl": {
            "title": "Token endpoint",
            "type": "string",
            "description": "Overrides the login host the client ID and secret are exchanged at. Leave empty unless the provider has given you a different one."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}