{
  "openapi": "3.0.1",
  "info": {
    "title": "Website Technology Lookup API - Tech Stack by Domain",
    "description": "Look up the full technology stack behind any website: ecommerce platform, CMS, analytics, ads, payments, hosting and thousands more, with first and last detected dates, monthly tech spend and company details. Or list every website using a given technology, filtered by country, spend, rank and size.",
    "version": "0.1",
    "x-build-id": "Fch3mof0VSHudal3T"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~website-technology-lookup-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-website-technology-lookup-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~website-technology-lookup-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-website-technology-lookup-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~website-technology-lookup-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-website-technology-lookup-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": {
          "mode": {
            "title": "What this run does",
            "enum": [
              "domains",
              "technology"
            ],
            "type": "string",
            "description": "Domain mode takes websites you already care about and returns what each one runs, which is how you profile an account list. Technology mode takes one technology and returns the websites using it, which is how you build a prospect list. The two read different parts of this form, so fields belonging to the other mode are ignored rather than causing an error.",
            "default": "domains"
          },
          "apiKey": {
            "title": "API key",
            "type": "string",
            "description": "Your own account's API key for this provider, shown in its API section once you are signed in. Bring your own key: nothing is shared between runs and the key is never written to the dataset."
          },
          "domains": {
            "title": "Domains",
            "type": "array",
            "description": "Websites to look up, one per line. A full URL works and is reduced to its domain, so pasting a column of links from a CRM is fine. Up to 16 domains go into each request.",
            "items": {
              "type": "string"
            }
          },
          "technology": {
            "title": "Technology",
            "type": "string",
            "description": "The technology to list websites for, written the way the provider names it, for example Shopify, Google-Analytics, Klaviyo or Magento. Spaces are converted to dashes for you."
          },
          "alsoUsing": {
            "title": "Also using",
            "type": "array",
            "description": "Narrow a technology list to sites that also run these, one per line, up to 16. This is how you find a stack rather than a single tool, for example every Shopify store that also runs Klaviyo.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Limit a technology list to these countries, as two letter ISO codes, one per line. Leave empty for worldwide.",
            "items": {
              "type": "string"
            }
          },
          "since": {
            "title": "Detected since",
            "type": "string",
            "description": "Limit a technology list to sites seen using it since this point. Takes a date as YYYY-MM-DD, or the provider's own relative wording such as 30 Days Ago. Leave empty for all current sites."
          },
          "includeHistorical": {
            "title": "Include historical users",
            "type": "boolean",
            "description": "Include sites that used the technology in the past as well as those using it now. Takes precedence over the detected since filter, because the provider treats the two as incompatible.",
            "default": false
          },
          "minEmployees": {
            "title": "Minimum employees",
            "minimum": 1,
            "type": "integer",
            "description": "Only list sites whose company has at least this many employees. Leave empty for no employee filter."
          },
          "minSpend": {
            "title": "Minimum monthly tech spend",
            "minimum": 1,
            "type": "integer",
            "description": "Only list sites whose estimated monthly technology spend is at least this many US dollars. A useful proxy for budget when qualifying a list."
          },
          "minRevenue": {
            "title": "Minimum estimated sales",
            "minimum": 1,
            "type": "integer",
            "description": "Only list ecommerce sites whose estimated monthly sales revenue is at least this many US dollars. Non-ecommerce sites report zero here, so setting this excludes them."
          },
          "minProducts": {
            "title": "Minimum product count",
            "minimum": 1,
            "type": "integer",
            "description": "Only list ecommerce sites carrying at least this many unique products. Separates a real catalogue from a placeholder store."
          },
          "minSocialFollowers": {
            "title": "Minimum social followers",
            "minimum": 1,
            "type": "integer",
            "description": "Only list sites whose social profiles have at least this many followers in total."
          },
          "maxTrafficRank": {
            "title": "Maximum traffic rank",
            "minimum": 1,
            "type": "integer",
            "description": "Only list sites inside this traffic rank, using the Tranco top one million. A lower number is a more popular site, so 100000 means the top hundred thousand sites."
          },
          "liveOnly": {
            "title": "Only live technologies",
            "type": "boolean",
            "description": "In domain mode, return only technologies the provider still considers live on the site, leaving out ones it has stopped detecting.",
            "default": false
          },
          "firstDetectedFrom": {
            "title": "First detected from",
            "type": "string",
            "description": "In domain mode, only return technologies first detected on or after this date, as YYYY-MM-DD. This is how you find what a site adopted recently."
          },
          "firstDetectedTo": {
            "title": "First detected to",
            "type": "string",
            "description": "In domain mode, only return technologies first detected on or before this date, as YYYY-MM-DD."
          },
          "lastDetectedFrom": {
            "title": "Last detected from",
            "type": "string",
            "description": "In domain mode, only return technologies last detected on or after this date, as YYYY-MM-DD. Useful for filtering out long dead detections."
          },
          "lastDetectedTo": {
            "title": "Last detected to",
            "type": "string",
            "description": "In domain mode, only return technologies last detected on or before this date, as YYYY-MM-DD. This is how you find what a site has dropped."
          },
          "includeDescriptions": {
            "title": "Include technology descriptions",
            "type": "boolean",
            "description": "Keep the description, link, tag and category fields on each detected technology. Turning this off makes domain lookups noticeably faster and the rows much smaller.",
            "default": true
          },
          "includeCompanyMeta": {
            "title": "Include company details",
            "type": "boolean",
            "description": "Return the company behind the domain: name, city, state, postcode, country, vertical, telephone numbers and social profiles. Turning this off improves performance.",
            "default": true
          },
          "includeAttributes": {
            "title": "Include site attributes",
            "type": "boolean",
            "description": "Return the site attribute block in domain mode: traffic ranks, employee count, follower count, product count, ecommerce category and tag manager containers.",
            "default": true
          },
          "includeContactNames": {
            "title": "Include personal names and emails",
            "type": "boolean",
            "description": "Include personal names and email addresses in the company details where the provider holds them. Off by default: the provider already removes them for some jurisdictions, and most uses of this data do not need them.",
            "default": false
          },
          "skipEmptyProfiles": {
            "title": "Only keep sites with technologies",
            "type": "boolean",
            "description": "Leave domains with no detected technologies out of the dataset. They are never charged for either way, so this is about the shape of your output.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum rows",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many rows. In technology mode this is the main control on how much a run costs, because a popular technology has millions of sites behind it.",
            "default": 100
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "How fast this actor calls the provider. The documented limits are ten requests a second and eight at once, so this is capped at 300 a minute, which leaves headroom on an account that is also serving your own application.",
            "default": 120
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}