{
  "openapi": "3.0.1",
  "info": {
    "title": "Business Firmographics API - US Company Data, SIC and NAICS",
    "description": "Look up US business firmographics by web address, phone, stock ticker or company address. Returns standardized company name, address, phone, employee count, sales volume, EIN, SIC and NAICS codes with descriptions, location type, geocode and contacts. Pay per result. Bring your own API key.",
    "version": "0.1",
    "x-build-id": "eUe84sKdfgW5AEbjf"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~business-firmographics-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-business-firmographics-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~business-firmographics-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-business-firmographics-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~business-firmographics-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-business-firmographics-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": {
          "domains": {
            "title": "Company web addresses",
            "type": "array",
            "description": "Company web addresses to look up, one per line. A full URL works too: it is reduced to the bare hostname before the request. A web address on its own is a complete lookup.",
            "items": {
              "type": "string"
            }
          },
          "phones": {
            "title": "Business phone numbers",
            "type": "array",
            "description": "Business phone numbers to look up, one per line. A 10 digit US number on its own is a complete lookup, which makes this the fastest way to enrich a call list.",
            "items": {
              "type": "string"
            }
          },
          "stockTickers": {
            "title": "Stock tickers",
            "type": "array",
            "description": "Stock exchange ticker symbols to look up, one per line, for example MSFT. A ticker on its own is a complete lookup.",
            "items": {
              "type": "string"
            }
          },
          "freeformQueries": {
            "title": "Freeform queries",
            "type": "array",
            "description": "Freeform strings to look up, one per line, where each string carries one of the accepted minimum inputs, for example a whole company address on one line. Use this when your source data is not split into fields.",
            "items": {
              "type": "string"
            }
          },
          "businessRecords": {
            "title": "Company records (JSON)",
            "type": "string",
            "description": "Full company records for lookups by name and address. Paste a JSON array of objects, or one JSON object per line, using the field names comp (company name), a1 (address line 1), a2, suite, city, state, postal, ctry, phone, stock, web, mak and mek. A record needs an address with city and state or postal code, or a phone, or a ticker, or a web address."
          },
          "columns": {
            "title": "Extra data groups",
            "type": "array",
            "description": "Data groups to return on top of the default columns. Contacts returns names, titles and emails of people at the business. GrpBusinessCodes returns the EIN with up to three NAICS and SIC codes, and GrpBusinessDescription returns their descriptions. GrpAddressDetails, GrpGeoCode and GrpCensus return address keys, latitude and longitude, and county and census geography.",
            "items": {
              "type": "string",
              "enum": [
                "EmployeesEstimate",
                "SalesEstimate",
                "Phone",
                "WebAddress",
                "StockTicker",
                "LocationType",
                "Contacts",
                "GrpBusinessCodes",
                "GrpBusinessDescription",
                "GrpAddressDetails",
                "GrpGeoCode",
                "GrpCensus"
              ],
              "enumTitles": [
                "Employee count estimate",
                "Sales volume estimate",
                "Phone number",
                "Web address",
                "Stock ticker",
                "Location type (HQ, branch, single site)",
                "Contacts (names, titles, emails)",
                "Business codes (EIN, NAICS, SIC)",
                "Business code descriptions",
                "Address details (country, address keys, ZIP+4)",
                "Geocode (latitude and longitude)",
                "Census (county, FIPS, tract, block)"
              ]
            },
            "default": [
              "EmployeesEstimate",
              "SalesEstimate",
              "Phone",
              "WebAddress",
              "GrpBusinessCodes",
              "GrpBusinessDescription"
            ]
          },
          "centricHint": {
            "title": "Search pivot",
            "enum": [
              "default",
              "address",
              "company",
              "phone"
            ],
            "type": "string",
            "description": "Which input the search should centre on when a record carries several. Leave on the provider default unless you know your data is strongest on one of them.",
            "default": "default"
          },
          "maxContacts": {
            "title": "Maximum contacts per business",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Upper limit on the number of contacts returned per business. Only has an effect when the Contacts data group is selected. The provider defaults to 5."
          },
          "returnDominantBusiness": {
            "title": "Return the dominant business at an address",
            "type": "boolean",
            "description": "When the company name is missing or does not match, still return the dominant business at that location. On by default, which matches the provider. Turn it off when you only want exact company matches.",
            "default": true
          },
          "sicNaicsConfidence": {
            "title": "Industry code confidence",
            "enum": [
              "loose",
              "strict"
            ],
            "type": "string",
            "description": "How strictly to return SIC and NAICS codes. Loose returns any associated code. Strict returns only codes the provider is confident in, and null when none qualify, which is what you want when the codes drive routing or scoring.",
            "default": "loose"
          },
          "batchSize": {
            "title": "Records per request",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many records to send in one batch request. The provider accepts up to 100, which is the default and the fastest setting. Lower it only if you want smaller, more frequent progress updates.",
            "default": 100
          },
          "recordsPerSecond": {
            "title": "Records per second",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Pace the run to your plan's throughput. The provider documents roughly 5 records per second on pay-as-you-go, 12 on self-service, 50 on business and 100 on enterprise. The default of 5 is safe on every plan; raise it to match yours and a large list finishes sooner.",
            "default": 5
          },
          "skipUnmatched": {
            "title": "Skip inputs with no business match",
            "type": "boolean",
            "description": "Leave inputs that matched no business out of the dataset. Off by default, because keeping the misses is what lets you see which inputs resolved and why. Unmatched rows are never charged for either way.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 25000,
            "type": "integer",
            "description": "Stop after this many rows. This is the cap on both spend and run time.",
            "default": 100
          },
          "apiKey": {
            "title": "Licence key",
            "type": "string",
            "description": "Your own licence key for the business firmographics API, sent as the request's id field. Required for every lookup. Stored as a secret, so it never appears in a log line or a URL."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}