{
  "openapi": "3.0.1",
  "info": {
    "title": "Ikman.lk Scraper - Sri Lanka Property Listings & Prices",
    "description": "Scrape ikman.lk property ads: LKR prices, beds, baths, land in perches, house size, photos, phones and GPS. Houses, land, apartments, sale and rent.",
    "version": "1.0",
    "x-build-id": "KvzywiVRVdkbG52Sc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~ikman-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-ikman-property-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/sian.agency~ikman-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-ikman-property-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/sian.agency~ikman-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-ikman-property-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": {
          "operation": {
            "title": "🎯 What do you want to scrape?",
            "enum": [
              "search",
              "detail"
            ],
            "type": "string",
            "description": "Pick one per run. Property Search returns the ads that match a district, a property section and optional bedroom count. Property Detail takes ikman.lk advert addresses and opens each one for the seller's phone, the full description, GPS and every photo.",
            "default": "search"
          },
          "propertyCategory": {
            "title": "🏠 Property section",
            "enum": [
              "houses-for-sale",
              "house-rentals",
              "apartments-for-sale",
              "apartment-rentals",
              "land-for-sale",
              "land-for-rent",
              "commercial-properties-for-sale",
              "commercial-property-rentals",
              "room-annex-rentals",
              "holiday-short-term-rental",
              "new-projects",
              "property"
            ],
            "type": "string",
            "description": "Which ikman.lk property section to read. Houses for sale is the largest residential section. All property mixes sale and rent across every section."
          },
          "location": {
            "title": "🗺️ District",
            "enum": [
              "sri-lanka",
              "ampara",
              "anuradhapura",
              "badulla",
              "batticaloa",
              "colombo",
              "galle",
              "gampaha",
              "hambantota",
              "jaffna",
              "kalutara",
              "kandy",
              "kegalle",
              "kilinochchi",
              "kurunegala",
              "mannar",
              "matale",
              "matara",
              "monaragala",
              "mullativu",
              "nuwara-eliya",
              "polonnaruwa",
              "puttalam",
              "ratnapura",
              "trincomalee",
              "vavuniya"
            ],
            "type": "string",
            "description": "One of Sri Lanka's 25 districts, or the whole country. Colombo is the densest market. A nationwide houses-for-sale search is about 18,000 ads."
          },
          "bedrooms": {
            "title": "🛏️ Bedrooms",
            "enum": [
              "any",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "10+"
            ],
            "type": "string",
            "description": "Applied on the search the site itself uses, so a 3-bedroom run only returns 3-bedroom ads. Leave on Any bedrooms when the section has no bedroom field (land, commercial, new projects).",
            "default": "any"
          },
          "maxResults": {
            "title": "🔢 Max listings",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "How many ads to return. Free accounts stop at 20. Paid accounts can take a whole district; 25 is one search page.",
            "default": 25
          },
          "minPrice": {
            "title": "💰 Min price (Rs)",
            "minimum": 0,
            "type": "integer",
            "description": "Drop ads cheaper than this, in Sri Lankan rupees. Applied after the page is read, so a tight band still walks the pages until max listings is reached. Leave empty for no floor."
          },
          "maxPrice": {
            "title": "💰 Max price (Rs)",
            "minimum": 0,
            "type": "integer",
            "description": "Drop ads dearer than this, in Sri Lankan rupees. Leave empty for no ceiling."
          },
          "includeDetails": {
            "title": "📄 Open each advert in full",
            "type": "boolean",
            "description": "Opens every matching advert for the seller's phone, the full description, GPS, land size, house size and every photo. Billed as one Property Detail on top of the search row. Off by default: the search row already has price, beds, baths, district and a thumbnail.",
            "default": false
          },
          "searchUrls": {
            "title": "🔗 Search page URLs",
            "type": "array",
            "description": "Paste ikman.lk search pages instead of using the dropdowns, for example https://ikman.lk/en/ads/colombo/houses-for-sale. One URL per line. Ignored when the operation is Property Detail.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "listingUrls": {
            "title": "🔗 Advert URLs",
            "type": "array",
            "description": "Paste ikman.lk advert addresses for Property Detail, for example https://ikman.lk/en/ad/valuable-two-story-house-for-sale-talawathugoda-for-sale-colombo-3. One URL per line.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}