{
  "openapi": "3.0.1",
  "info": {
    "title": "Firmographic Append API - Company Data Enrichment by Domain",
    "description": "Append firmographic data to domains, business emails and company records: industry, NAICS and SIC codes, employee count, sales volume, year founded, address and phone. Also resolves IP addresses and hashed emails to business domains. Pay per result. Bring your own API key.",
    "version": "0.1",
    "x-build-id": "l5y6a1kJTg4e0VcoK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~firmographic-append-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-firmographic-append-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~firmographic-append-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-firmographic-append-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~firmographic-append-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-firmographic-append-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 domains",
            "type": "array",
            "description": "Company domains to append firmographics to, one per line. A full URL works too: it is reduced to the bare hostname before the request. A domain on its own is a complete lookup.",
            "items": {
              "type": "string"
            }
          },
          "businessEmails": {
            "title": "Business emails",
            "type": "array",
            "description": "Business email addresses to append firmographics to, one per line. A business email on its own is a complete lookup. Consumer mailbox addresses will not resolve to a company.",
            "items": {
              "type": "string"
            }
          },
          "companyRecords": {
            "title": "Company records (JSON)",
            "type": "string",
            "description": "Company records to look up when you have a name rather than a domain. Paste a JSON array of objects, or one JSON object per line, using the field names business, address, city, state, zip and phone. Each record must satisfy a documented minimum combination: business plus address, city and state, or business plus phone. Records that do not are reported in the dataset and never cost a request."
          },
          "ipAddresses": {
            "title": "IP addresses",
            "type": "array",
            "description": "IPv4 addresses to resolve to business domains, one per line. Each address returns up to three domains with the firmographics for each, which is how you turn anonymous website traffic into named accounts.",
            "items": {
              "type": "string"
            }
          },
          "hashedEmails": {
            "title": "Hashed emails",
            "type": "array",
            "description": "Hashed email addresses to resolve to a business domain, one per line. MD5, SHA1 and SHA256 are supported in upper, lower and natural case. Use this when your source data is privacy hashed and you cannot send the plain address.",
            "items": {
              "type": "string"
            }
          },
          "linkedinUrls": {
            "title": "LinkedIn profile URLs",
            "type": "array",
            "description": "LinkedIn profile URLs of people, one per line. Each returns that person's job title, seniority, department, business email and the firmographics of the company they work for.",
            "items": {
              "type": "string"
            }
          },
          "personRecords": {
            "title": "Person records (JSON)",
            "type": "string",
            "description": "People to resolve to their employer when you have a name or a personal email rather than a LinkedIn URL. Paste a JSON array of objects, or one JSON object per line, using the field names first, last, email, domain and linkedin_url, for example {\"first\": \"Jane\", \"last\": \"Doe\", \"email\": \"jane@example.com\"}. Each record needs a first and last name, an email, or a LinkedIn URL."
          },
          "requireValues": {
            "title": "Required field values",
            "type": "array",
            "description": "Filter matches server side by requiring a field to hold an exact value. One rule per line in the form Field Name=Value, for example Country=US. Records that do not match are not returned and are not charged for.",
            "items": {
              "type": "string"
            }
          },
          "skipUnmatched": {
            "title": "Skip inputs with no match",
            "type": "boolean",
            "description": "Leave inputs that returned no match out of the dataset. Off by default, because keeping the misses is what lets you see which inputs resolved. Unmatched rows are never charged for either way.",
            "default": false
          },
          "maxRequestSeconds": {
            "title": "Maximum seconds per lookup",
            "minimum": 1,
            "maximum": 120,
            "type": "integer",
            "description": "Cap how long the API may spend on a single lookup before it gives up and returns what it has. Leave empty to use the provider's own default. Lowering it makes a large list finish faster at the cost of a few deeper matches."
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 25000,
            "type": "integer",
            "description": "Stop after this many rows. Every lookup costs one request, so this is the cap on both spend and run time.",
            "default": 100
          },
          "apiKey": {
            "title": "API key",
            "type": "string",
            "description": "Your own B2B data API key, sent as a request header. 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}