{
  "openapi": "3.0.1",
  "info": {
    "title": "TrustMark Retrofit Installer Scraper: PAS 2030/2035 Leads",
    "description": "Export TrustMark's register of UK retrofit installers: PAS 2035 retrofit coordinators and assessors, PAS 2030 insulation and heating installers and MCS heat-pump/solar firms, with licence number, certification body, phone (99.7%), website and address. By trade and postcode. $4 per 1,000.",
    "version": "0.1",
    "x-build-id": "Kfo5n0HiDNhj040UL"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapersdelight~trustmark-uk-tradespeople-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapersdelight-trustmark-uk-tradespeople-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/scrapersdelight~trustmark-uk-tradespeople-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapersdelight-trustmark-uk-tradespeople-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/scrapersdelight~trustmark-uk-tradespeople-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapersdelight-trustmark-uk-tradespeople-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": {
          "trades": {
            "title": "Trades",
            "type": "array",
            "description": "TrustMark trades to search. Each name expands to EVERY TrustMark trade id carrying it (e.g. 'Loft Insulation' covers its PAS 2030:2019, PAS 2030:2023 and Licence Plus routes). Retrofit measures are listed first. Leave empty and set 'Compliance standards' instead to search by standard. Several trades are OR-ed.",
            "items": {
              "type": "string",
              "enum": [
                "Retrofit Coordinator",
                "Retrofit Assessor",
                "Energy Efficiency Retrofit Inspectors",
                "Air Source Heat Pump",
                "Ground Source Heat Pump",
                "Solar Panel Installer",
                "Battery Storage",
                "Cavity Wall Insulation",
                "External Wall Insulation",
                "Internal Wall Insulation",
                "Loft Insulation",
                "Room In Roof Insulation",
                "Floor Insulation",
                "Flat Roof Insulation",
                "Pitched Roof Insulation",
                "Park Home Insulation",
                "Hybrid Wall Insulation",
                "Draught Proofing",
                "Heating Controls",
                "Gas Boiler",
                "Oil Boiler",
                "Electric Storage Heater",
                "Domestic Energy Assessors",
                "Aerial & Satellite",
                "Air Conditioning",
                "Air Tightness Tester",
                "Bathrooms",
                "Bedrooms",
                "Biomass Boiler",
                "Blinds, Shutters, Window Dressing",
                "Builders",
                "Carpenters",
                "Carpet & Upholstery Cleaners",
                "Cavity Wall Insulation Extraction",
                "Cavity Wall Internal Insulation",
                "Conservatories",
                "Conservatory Roof",
                "Damp Proofing & Timber Treatment Specialists",
                "Data & WiFi Networking Specialists",
                "Drainage Engineers",
                "Drive & Patio Contractors",
                "Electric Vehicle Charging",
                "Electric Vehicle Charging Point Installers",
                "Electrician",
                "Exhaust Air Heat Pump",
                "Exhaust Air Heat Pump Design",
                "Fence Installers",
                "Fencing Specialist",
                "Flood Specialists",
                "Flooring",
                "Flue Gas Heat Recovery",
                "Gas Absorption Heat Pump",
                "Gas Absorption Heat Pump Design",
                "Gas Engineer",
                "Ground Source Heat Pump Design",
                "Guttering/Soffits/Fascias",
                "Handyperson",
                "Heat Pump Design",
                "Heating & Hot Water Insulation",
                "Heating Engineers",
                "Home Adaptations - Elderly & Disabled",
                "Home Security",
                "Hot Water Systems",
                "Hot Water Tank Insulation",
                "Hybrid Heat Pump",
                "Hydroelectricity (Micro Hydro)",
                "Independent Damp and Timber Surveyor",
                "Independent Surveillance Assessment of Pre-Installation Building Inspections",
                "Insulated Shutters",
                "Interior Design Services",
                "Invasive weed control",
                "Kitchens",
                "Landscapers",
                "Leadwork Specialists",
                "Legionella Risk Assesor",
                "Lighting",
                "Loft Boarding",
                "Loft Conversions",
                "Mechanical Ventilation with Heat Recovery (MVHR)",
                "Micro Combined Heat and Power (Micro CHP)",
                "Painters & Decorators",
                "Pest Controller",
                "Plasterers & Renderers",
                "Plumbers",
                "Professional Garden Designer",
                "Professional Gardener",
                "Professional Painters & Decorators",
                "Roof Insulation",
                "Roofers",
                "Security Installers",
                "Smart Home & Entertainment",
                "Solar Assisted Heat Pump",
                "Solar Assisted Heat Pump Design",
                "Solar blind, shutters and shading devices",
                "Spray Foam Assessor",
                "Stairlifts",
                "Structural Repair",
                "Tilers",
                "Tree Inspections",
                "Tree Surgeons",
                "Under Floor Heating",
                "Velux Window Installer",
                "Velux Window Repairs",
                "Ventilation Installers",
                "Wall Insulation",
                "Warm Air Heating",
                "Waterproofing Specialists",
                "Wind Turbine Installers",
                "Window & Door Installers"
              ]
            },
            "default": [
              "Retrofit Coordinator"
            ]
          },
          "complianceStandards": {
            "title": "Compliance standards",
            "type": "array",
            "description": "Search by the installation standard a trade is certified to, read from TrustMark's own trade table: 'PAS 2035' = Retrofit Assessors and Retrofit Coordinators; 'PAS 2030' = PAS 2030:2019 and PAS 2030:2023 installers (insulation, heating and other retrofit measures); 'MCS' = MCS installation standards (MIS 3001-3012: heat pumps, solar PV, battery, biomass). Combined with 'Trades' as an OR.",
            "items": {
              "type": "string",
              "enum": [
                "PAS 2035",
                "PAS 2030",
                "MCS",
                "Licence Plus",
                "CPS",
                "INS-001",
                "Industry Standard"
              ]
            }
          },
          "allTrades": {
            "title": "All trades (whole register)",
            "type": "boolean",
            "description": "Ignore 'Trades' and 'Compliance standards' and search every TrustMark-registered business (about 14,200 licences nationwide). Combine with Max results = 0 for a full register export.",
            "default": false
          },
          "postcodes": {
            "title": "UK postcodes or areas",
            "type": "array",
            "description": "Search around each location: a full UK postcode (SW1A 1AA), an outward code (M1, BS8) or 'latitude,longitude'. Each location is its own search; results are merged and deduplicated by TrustMark Licence Number. Leave empty to search the whole UK.",
            "items": {
              "type": "string"
            }
          },
          "radiusMiles": {
            "title": "Radius (miles)",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Search radius around each postcode. Leave empty for TrustMark's own default, measured at 30 miles."
          },
          "searchBy": {
            "title": "Match businesses by",
            "enum": [
              "located",
              "serviceArea"
            ],
            "type": "string",
            "description": "'Where the business is located' (TrustMark's default) or 'Where the business provides its services' (its declared coverage area).",
            "default": "located"
          },
          "includeNationalBusinesses": {
            "title": "Include national businesses",
            "type": "boolean",
            "description": "Include businesses registered as covering the whole UK (TrustMark's default). Untick to keep only local firms.",
            "default": true
          },
          "businessName": {
            "title": "Business name contains",
            "type": "string",
            "description": "Optional: only businesses whose name matches this phrase (TrustMark's own name search)."
          },
          "requireEmail": {
            "title": "Only businesses with an email",
            "type": "boolean",
            "description": "Deliver (and charge for) only businesses that publish a named-contact email. Measured: about 4% of the register does, so expect far fewer rows.",
            "default": false
          },
          "requireWebsite": {
            "title": "Only businesses with a website",
            "type": "boolean",
            "description": "Deliver (and charge for) only businesses with a valid website. Measured: about 49% of the register.",
            "default": false
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum businesses (unique TrustMark Licence Numbers) to deliver and charge for. 0 = no limit.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Leave this at 'No proxy': TrustMark's API answers Apify's own servers directly (measured: the whole 14,953-profile register in one 59-second run), and any request that fails twice is retried automatically through Apify RESIDENTIAL proxy (UK). Set a proxy here only if you want every request to use it.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}