{
  "openapi": "3.0.1",
  "info": {
    "title": "B2B Tech-Stack, Role Contact & llms.txt AI Readiness Enricher",
    "description": "Global B2B lead, DNS/DMARC & AI GEO enricher for US, UK, EU, CA & AU agencies, Clay/n8n & MCP agents. Detects 130+ SaaS/POS/CRM stacks + SaaS spend, role contacts (0 personal emails), auto-generates /llms.txt & JSON-LD, and runs AU ABN & GST KYB.",
    "version": "0.0",
    "x-build-id": "3u5tqURaa5hpiSg29"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ausbizstack~b2b-tech-stack-contact-abn-enricher/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ausbizstack-b2b-tech-stack-contact-abn-enricher",
        "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/ausbizstack~b2b-tech-stack-contact-abn-enricher/runs": {
      "post": {
        "operationId": "runs-sync-ausbizstack-b2b-tech-stack-contact-abn-enricher",
        "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/ausbizstack~b2b-tech-stack-contact-abn-enricher/run-sync": {
      "post": {
        "operationId": "run-sync-ausbizstack-b2b-tech-stack-contact-abn-enricher",
        "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": {
          "targets": {
            "title": "Target Domains, Website URLs, or Business Names / ABNs",
            "type": "array",
            "description": "Enter website domains or URLs (e.g., 'stripe.com', 'https://canva.com', 'https://xero.com') or Australian business names / 11-digit ABNs. Aliases `domains`, `urls`, `companies`, or `stores` are also supported via API.",
            "items": {
              "type": "string"
            }
          },
          "domains": {
            "title": "Domains (API Alias for Targets)",
            "type": "array",
            "description": "Optional API alias for `targets`. Pass an array of domains or URLs.",
            "items": {
              "type": "string"
            }
          },
          "crawlContactPages": {
            "title": "Crawl Contact & About Pages",
            "type": "boolean",
            "description": "Automatically discover and crawl /contact, /about, and /locations pages to maximize role-based contact extraction and technology detection.",
            "default": true
          },
          "maxPagesPerDomain": {
            "title": "Max Contact Subpages per Domain",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Maximum number of internal contact/about subpages to inspect per domain (1 to 5).",
            "default": 2
          },
          "auditAiGeoReadiness": {
            "title": "Audit AI Search (GEO) Readiness & Auto-Generate /llms.txt",
            "type": "boolean",
            "description": "Checks for /llms.txt, /llms-full.txt, AI crawler rules in /robots.txt (GPTBot, ClaudeBot, PerplexityBot), and Schema.org JSON-LD, and generates a ready-to-deploy /llms.txt file for every company.",
            "default": true
          },
          "auditDnsEmailSecurity": {
            "title": "Audit DNS MX, SPF, DMARC & HTTP Security Headers",
            "type": "boolean",
            "description": "Inspects DNS MX (Microsoft 365, Google Workspace, Proofpoint, Mimecast), SPF, DMARC policy (none/quarantine/reject), and HTTPS security headers (HSTS, CSP, X-Frame-Options).",
            "default": true
          },
          "roleOnlyEmails": {
            "title": "Strict Privacy Mode (Role-Based Corporate Emails Only)",
            "type": "boolean",
            "description": "Filter extracted email addresses to role-based business inboxes (info@, sales@, accounts@, support@, bookings@, admin@, privacy@) to maintain privacy compliance.",
            "default": true
          },
          "verifyAbn": {
            "title": "Australian ABN / GST KYB Verification (Data from the Australian Business Register (ABR))",
            "type": "boolean",
            "description": "Automatically verifies 11-digit Australian Business Numbers (with official ATO modulo-89 checksum validation), legal entity type, and GST registration status using data from the Australian Business Register (ABR) when an Australian domain (.au), printed website ABN, or ABN input is detected.",
            "default": true
          },
          "abrGuid": {
            "title": "ABR Web Services GUID (Optional)",
            "type": "string",
            "description": "Optional: Data from the Australian Business Register (ABR) Web Services GUID (or set via ABR_GUID environment variable). If provided, queries the ABR JSON API first before falling back to public ABR lookup."
          },
          "concurrency": {
            "title": "Max Concurrency",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Number of parallel targets to enrich simultaneously (default 50, max 200).",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}