{
  "openapi": "3.0.1",
  "info": {
    "title": "Singapore URA Commercial Property Caveats API",
    "description": "Track Singapore URA commercial-property transactions (caveats). Clean JSON for analysts, researchers and AI agents.",
    "version": "0.0",
    "x-build-id": "E4DFXecOMfoHF8Pov"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nexgendata~singapore-ura-commercial-property/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nexgendata-singapore-ura-commercial-property",
        "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/nexgendata~singapore-ura-commercial-property/runs": {
      "post": {
        "operationId": "runs-sync-nexgendata-singapore-ura-commercial-property",
        "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/nexgendata~singapore-ura-commercial-property/run-sync": {
      "post": {
        "operationId": "run-sync-nexgendata-singapore-ura-commercial-property",
        "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": {
          "propertyTypes": {
            "title": "Commercial property types",
            "uniqueItems": true,
            "type": "array",
            "description": "Which Singapore commercial property categories to include. 'office' — Grade-A strata office floors in Suntec, Prudential Tower, Samsung Hub, Wallich Residence Tower, Asia Square, Marina Bay Financial Centre, MBFC, plus suburban office in JTC Summit, Mapletree Business City. 'retail' — strata shop units in CCR malls (ION Orchard, Ngee Ann City, Bugis Junction, Raffles City) and suburban heartland malls (Tampines Mall, Compass One, Northpoint City, JEM, Westgate). 'industrial' — B1 / B2 strata factories in the Tai Seng / Ubi / Loyang / Jurong / Tuas industrial belt. 'shophouse' — conservation shophouses (Tanjong Pagar, Telok Ayer, Joo Chiat, Arab Street, Balestier) — a distinct CCR investment class trading at significant freehold premiums. 'mixed-use' — strata mixed-use developments (DUO, Paya Lebar Quarter, integrated developments). 'warehouse' — B2 strata warehouses. Leave empty or include 'ALL' to span every category.",
            "items": {
              "type": "string",
              "enum": [
                "ALL",
                "office",
                "retail",
                "industrial",
                "shophouse",
                "mixed-use",
                "warehouse"
              ]
            },
            "default": [
              "office",
              "retail"
            ]
          },
          "districts": {
            "title": "Postal districts (D01-D28)",
            "uniqueItems": true,
            "type": "array",
            "description": "URA divides Singapore into 28 postal districts. The CBD — D01 (Marina/Boat Quay/Raffles Place), D02 (Tanjong Pagar/Anson), D06 (Beach Road/City Hall), D07 (Middle Road/Golden Mile) — concentrates Grade-A strata office and prime conservation shophouses. The Orchard luxury retail belt is D09 (ION Orchard, Ngee Ann City, Paragon, Liat Towers); medical-suite office is in D11 (Novena). Suburban retail centres cluster in D18 (Tampines), D19 (Sengkang/Punggol/Hougang), D22 (Jurong — JEM, Westgate, JTC Summit), D27 (Yishun). The industrial / warehouse belt is D13 (Tai Seng), D14 (Geylang/Eunos), D17 (Loyang/Changi), D22 (Jurong/Tuas), D24 (Tengah), D25 (Kranji/Woodlands). Leave empty for ALL districts; pass e.g. ['D01','D02','D06','D07'] for the CBD office market only.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "dateRange": {
            "title": "Transaction date range",
            "type": "object",
            "description": "Bound caveat lodgement / contract date. Object with 'from' and 'to' fields in YYYY-MM format (e.g. {\"from\": \"2026-04\", \"to\": \"2026-05\"} for last 30 days of caveats). URA publishes commercial caveats weekly with a 2-3 week lag from lodgement. The PMI_Commercial_Transaction live service exposes approximately the most recent 12 months. Leave the entire object empty (or empty strings) for no date bound.",
            "default": {
              "from": "",
              "to": ""
            }
          },
          "min_price_sgd": {
            "title": "Minimum transacted price (SGD)",
            "minimum": 0,
            "maximum": 500000000,
            "type": "integer",
            "description": "Lower bound on caveat transacted price in SGD. Set to 5000000 to filter to institutional-scale deals (most Grade-A office floor sales, prime conservation shophouses, ION Orchard / Ngee Ann City strata shop units). Set to 10000000 for the ultra-prime segment (large strata-office floors, Tanjong Pagar trophy shophouses, full retail podium sales). Leave 0 for no lower bound.",
            "default": 0
          },
          "max_price_sgd": {
            "title": "Maximum transacted price (SGD)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Upper bound on caveat transacted price in SGD. Useful for sub-segment slicing — e.g. set to 2000000 to bound small-business industrial strata factory purchases, or 5000000 to exclude large CBD floors when researching the SME owner-occupier office demand. Leave 0 for no upper bound.",
            "default": 0
          },
          "cbd_only": {
            "title": "CBD only (D01 / D02 / D06 / D07)",
            "type": "boolean",
            "description": "Quick filter for Singapore's Central Business District: D01 Raffles Place / Marina Bay, D02 Tanjong Pagar / Anson, D06 City Hall / Beach Road, D07 Bugis / Golden Mile. These four districts capture essentially all Grade-A office strata sales, the bulk of premium retail strata, and the conservation-shophouse heartland. Standard CBRE / Knight Frank / Savills CBD office reports cover exactly this footprint.",
            "default": false
          },
          "shophouses_only": {
            "title": "Conservation shophouses only",
            "type": "boolean",
            "description": "Quick filter for the conservation shophouse asset class only — typically freehold or 999-year leasehold, gazetted under URA's Conservation Programme (D01 Telok Ayer / Boat Quay; D02 Tanjong Pagar / Duxton; D07 Kampong Glam / Arab Street; D14 Joo Chiat; D08 Little India; D12 Balestier). Shophouses trade as a distinct asset class with their own pricing dynamics, often hitting SGD 8-25M per unit. Useful for family offices, heritage-property funds, and boutique developers benchmarking the segment against CBRE / Knight Frank shophouse reports.",
            "default": false
          },
          "ura_access_key": {
            "title": "URA Data Service AccessKey (optional, for live data)",
            "type": "string",
            "description": "Optional URA Data Service AccessKey for live (real-time) commercial caveat data. Free to obtain — register at https://www.ura.gov.sg/maps/api/reg.html and URA emails the AccessKey within 1-2 business days. With a valid AccessKey, the actor calls URA's PMI_Commercial_Transaction service and returns the most recent live caveats matching your filters across all four URA batches (~12 months of data). Without an AccessKey (default) the actor returns from a packaged URA-format reference dataset covering all 28 districts and every commercial sub-segment — useful for schema validation, smoke testing, and small recurring sample pulls. Leave empty to use the packaged dataset."
          },
          "limit": {
            "title": "Max caveats returned",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Hard cap on total commercial caveats returned (1-2000). Each caveat is one URA commercial transaction record. Premium per-caveat pricing applies — Singapore commercial data is the highest-value institutional CRE tier. Most recent caveats are returned first (sorted by transaction_date descending).",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}