{
  "openapi": "3.0.1",
  "info": {
    "title": "Pazar3 Property Scraper",
    "description": "Scrape Pazar3.mk property ads in North Macedonia: price, area, rooms, city, agency or private seller, photos. Flats, houses, land, sale and rent.",
    "version": "1.0",
    "x-build-id": "SdUxpxDyo7dZMC1v7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~pazar3-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-pazar3-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~pazar3-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-pazar3-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~pazar3-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-pazar3-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": "🎯 Mode",
            "enum": [
              "search",
              "detail"
            ],
            "type": "string",
            "description": "🎯 **PICK A MODE:**\n- **🔍 Property Search** reads Pazar3 results pages, about 50 adverts a page, using the filters below or the results pages you paste.\n- **📄 Property Detail** opens the advert addresses you paste in Advert URLs and returns each one in full.\n\n💡 **TIP:** to get full adverts from a search, stay in Property Search and tick Open each advert in full.",
            "default": "search"
          },
          "propertyType": {
            "title": "🏠 Property type",
            "enum": [
              "apartment",
              "house",
              "land",
              "holiday-home",
              "commercial",
              "room",
              "roommate",
              "garage",
              "abroad",
              "all"
            ],
            "type": "string",
            "description": "🏠 **PROPERTY TYPE:** which kind of property to search. Apartments are the largest section: about 56,000 flats were for sale in Skopje alone on 2026-10-05.\n\n💡 **TIP:** pick All property types to cover every section at once.",
            "default": "apartment"
          },
          "dealType": {
            "title": "🏷️ Sale or rent",
            "enum": [
              "sale",
              "rent",
              "wanted-to-buy",
              "wanted-to-rent",
              "exchange",
              "all"
            ],
            "type": "string",
            "description": "🏷️ **SALE OR RENT:** which side of the market. For rentals the price is the monthly rent the advertiser asks.\n\n⚠️ **NOTE:** commercial premises have no Exchange section on Pazar3, so that combination is refused before the run is charged for any property.",
            "default": "sale"
          },
          "city": {
            "title": "📍 Town",
            "enum": [
              "all",
              "skopje",
              "bitola",
              "kumanovo",
              "prilep",
              "tetovo",
              "ohrid",
              "veles",
              "stip",
              "strumica",
              "gostivar",
              "kocani",
              "kicevo",
              "struga",
              "kavadarci",
              "gevgelija",
              "radovis",
              "debar",
              "kriva-palanka",
              "sveti-nikole",
              "negotino",
              "delcevo",
              "vinica",
              "resen",
              "probistip",
              "berovo",
              "kratovo",
              "krusevo",
              "makedonski-brod",
              "demir-hisar",
              "valandovo"
            ],
            "type": "string",
            "description": "📍 **TOWN:** one of the 30 towns Pazar3 lists, or all of North Macedonia.\n\n💡 **TIP:** for one municipality of Skopje, such as Centar, Karpoš or Aerodrom, open it on pazar3.mk and paste the results address into Search page URLs. Search rows also carry the municipality when the advert names one, so a Skopje-wide run can be split later.",
            "default": "skopje"
          },
          "advertiser": {
            "title": "👤 Placed by",
            "enum": [
              "all",
              "private",
              "business"
            ],
            "type": "string",
            "description": "👤 **PLACED BY:** Pazar3 marks every advert as placed by a private person or by a business. About 56% of sale adverts come from private sellers; rentals split about half and half.\n\n🔒 **PRIVACY:** no phone numbers and no private persons' names are collected. Agencies and businesses come with their name and Pazar3 page.",
            "default": "all"
          },
          "maxResults": {
            "title": "🔢 Properties to collect",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "🔢 **HOW MANY PROPERTIES:** up to 5,000 per run. Pazar3's robots.txt asks for 20 seconds between requests and this actor keeps to it, so expect about 50 properties every 20 seconds: 100 take under a minute, 1,000 about 7 minutes, 5,000 about 34 minutes.\n\n💎 **PAID plans:** the full 5,000 per run. FREE plan runs return up to 25 properties.",
            "default": 100
          },
          "includeDetails": {
            "title": "📄 Open each advert in full",
            "type": "boolean",
            "description": "📄 **FULL ADVERTS:** also open each advert page for the full description, floor area, rooms, street, condition, heating, amenities, view count and every photo. Billed as one Property Detail on top of the search row.\n\n⏱️ **LIMIT:** each advert page also waits 20 seconds, so up to 100 adverts are opened per run (about 34 minutes). Any beyond that come back as search rows.",
            "default": false
          },
          "searchUrls": {
            "title": "🔗 Search page URLs",
            "type": "array",
            "description": "🔗 **RESULTS PAGES:** paste Pazar3 property results pages to use instead of the filters above, for example https://www.pazar3.mk/oglasi/zivealista/stanovi/prodazba/skopje/centar\n\n✅ The address is used as it is, filters included.\n📋 Use Bulk edit to paste several, one per line.\n⚠️ Ignored in Property Detail mode.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "listingUrls": {
            "title": "🔗 Advert URLs",
            "type": "array",
            "description": "📄 **ADVERT ADDRESSES** for Property Detail, one per line, for example https://www.pazar3.mk/oglas/zivealista/stanovi/prodazba/skopje/centar/prostran-4-soben-stan-od-85-m-vo-czentar-kaj-zebra/9095366\n\n⏱️ Up to 100 adverts per run, one every 20 seconds.\n⚠️ Ignored in Property Search mode.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}