{
 "opencollection": "1.0.0",
 "info": {
  "name": "Enrich Company Intelligence API",
  "version": "3.0",
  "docs": "https://doc.enrich.so/api-reference-1951025m0"
 },
 "request": {
  "baseUrl": "https://dev.enrich.so/api/v3",
  "auth": {
   "type": "apikey",
   "key": "x-api-key",
   "value": "{{x-api-key}}",
   "placement": "header"
  }
 },
 "items": [
  {
   "info": {
    "name": "Company Followers",
    "type": "folder"
   },
   "items": [
    {
     "info": {
      "name": "Continue company follower scrape",
      "type": "http"
     },
     "http": {
      "method": "POST",
      "url": "https://dev.enrich.so/api/v3/company-follower",
      "body": {
       "type": "json",
       "content": "{}"
      },
      "query": [
       {
        "key": "batchId",
        "value": "string",
        "docs": "The batch id of the PARTIAL scrape you want to continue. Its presence switches this endpoint from 'start a new scrape' to 'continue (fill the gap)'."
       }
      ]
     },
     "docs": "> **Access required** \u2014 approved accounts only. [Contact us](https://enrich.so) to request access.\n\nContinue an under-delivered **partial** company-follower scrape to fill the gap. Re-runs **only** the filter combinations that under-delivered on the original run and appends the new profiles to the **same batch** (already-collected profiles are kept and de-duplicated within the batch).\n\n**How to call:** POST to this same `/company-follower` endpoint with the original batch id as the `batchId` query parameter and an **empty body**. The presence of `batchId` switches the endpoint from \u201cstart a new scrape\u201d to \u201ccontinue\u201d.\n\n**Eligibility:** only a batch whose status is `partial` and that is **less than 3 days old** can be continued (after 3 days the per-filter diagnostics used to target the gap have expired \u2192 `410 Gone`). A fully `completed` batch, or one already being continued, returns `409 Conflict`. If nothing is recoverable (every filter already delivered, or the remaining gap is unreachable) you get `422`.\n\n**Cost:** credits are reserved only for the recoverable **additional** profiles \u2014 not the whole batch again \u2014 under a separate reservation. On settle you are charged for the profiles the continue actually added and refunded the rest.\n\n**Polling & results:** keep using the **same** `batchId` with the progress and results endpoints; the continue tops up that same batch."
    },
    {
     "info": {
      "name": "Check daily scraping limit",
      "type": "http"
     },
     "http": {
      "method": "GET",
      "url": "https://dev.enrich.so/api/v3/company-follower/limit"
     },
     "docs": "Check your team's daily company follower scraping limit and current usage. No credits consumed.\n\n**Possible statuses:**\n- `approved` \u2014 Team has access; `creditsPerProfile`, `dailyLimit`, `dailyUsed`, and `dailyRemaining` are included.\n- `pending` \u2014 Application is under review.\n- `rejected` \u2014 Application was rejected.\n- `revoked` \u2014 Access was revoked.\n- `none` \u2014 No application on file."
    },
    {
     "info": {
      "name": "Export results as CSV",
      "type": "http"
     },
     "http": {
      "method": "GET",
      "url": "https://dev.enrich.so/api/v3/company-follower/{batchId}/export"
     },
     "docs": "> **Access required** \u2014 This endpoint is available to approved accounts only. [Contact us](https://enrich.so) to request access.\n\nDownload scrape results as a CSV file. Batch must be complete. No credits consumed."
    },
    {
     "info": {
      "name": "Check scrape progress",
      "type": "http"
     },
     "http": {
      "method": "GET",
      "url": "https://dev.enrich.so/api/v3/company-follower/{batchId}/progress"
     },
     "docs": "> **Access required** \u2014 This endpoint is available to approved accounts only. [Contact us](https://enrich.so) to request access.\n\nPoll this endpoint to track the progress of your company follower scrape.\n\n**Cost:** Free \u2014 polling never costs credits."
    },
    {
     "info": {
      "name": "Get scrape results",
      "type": "http"
     },
     "http": {
      "method": "GET",
      "url": "https://dev.enrich.so/api/v3/company-follower/{batchId}/results",
      "query": [
       {
        "key": "page",
        "value": "1",
        "docs": "Page number (default: 1)"
       },
       {
        "key": "limit",
        "value": "100",
        "docs": "Results per page, max 500 (default: 100)"
       }
      ]
     },
     "docs": "> **Access required** This endpoint is available to approved accounts only. [Contact us](https://enrich.so) to request access.\n\nReturns paginated follower profiles for a completed batch. Use `page` and `limit` query params to paginate through results.\n\nCredits are charged upfront when you start the scrape. If fewer profiles are found than `max_limit`, unused credits are refunded automatically.\n\nIf you provided a `webhookUrl`, results are already delivered via webhooks and credits are auto-settled. No need to call this endpoint.\n\nOnly call this after the progress endpoint reports `done: true`."
    },
    {
     "info": {
      "name": "Start count estimation",
      "type": "http"
     },
     "http": {
      "method": "POST",
      "url": "https://dev.enrich.so/api/v3/count-estimate",
      "body": {
       "type": "json",
       "content": "{\n  \"companyUrl\": \"https://linkedin.com/company/stripe\",\n  \"departments\": [\n    \"Engineering\",\n    \"Sales\"\n  ]\n}"
      }
     },
     "docs": "> **Access required** \u2014 This endpoint is available to approved accounts only. [Contact us](https://enrich.so) to request access.\n\nStarts an asynchronous count estimation job. Returns the estimated number of followers matching your filters, with optional breakdowns by department and seniority.\n\n**Cost:** 100 credits (fixed). Cached results for the same company + filters within 24 hours are free.\n\n**Results:** Poll the status endpoint to get results. Typically completes within 30\u201360 seconds."
    },
    {
     "info": {
      "name": "Get estimation status/results",
      "type": "http"
     },
     "http": {
      "method": "GET",
      "url": "https://dev.enrich.so/api/v3/count-estimate/{batchId}"
     },
     "docs": "> **Access required** \u2014 This endpoint is available to approved accounts only. [Contact us](https://enrich.so) to request access.\n\nCheck the status of a count estimation job and retrieve results when complete.\n\n**Cost:** Free \u2014 polling never costs credits.\n\n**Refunds:** If the job fails within 7 days, the 100 credits are refunded automatically on the next status check."
    }
   ]
  },
  {
   "info": {
    "name": "IP to Company",
    "type": "folder"
   },
   "items": [
    {
     "info": {
      "name": "Resolve company from IP",
      "type": "http"
     },
     "http": {
      "method": "POST",
      "url": "https://dev.enrich.so/api/v3/ip-to-company",
      "body": {
       "type": "json",
       "content": "{\n  \"ip\": \"8.8.8.8\"\n}"
      }
     },
     "docs": "Resolves company, organization, and geolocation info from an IP address. Results are cached for 7 days.\n\n**Cost:** 100 credits. You are **not** charged if no domain is found (i.e. `ipDomain` is absent from the response)."
    },
    {
     "info": {
      "name": "Submit batch IP to company lookup",
      "type": "http"
     },
     "http": {
      "method": "POST",
      "url": "https://dev.enrich.so/api/v3/ip-to-company/batch",
      "body": {
       "type": "json",
       "content": "{\n  \"ips\": [\n    {\n      \"ip\": \"8.8.8.8\"\n    },\n    {\n      \"ip\": \"1.1.1.1\"\n    },\n    {\n      \"ip\": \"104.16.132.229\"\n    }\n  ]\n}"
      }
     },
     "docs": "Submit up to **500 000 IPs** in a single request for async company lookup. Duplicates are removed automatically before processing.\n\n**Cost:** 100 credits per unique IP, reserved when you submit. Credits are charged based on found domains when you fetch results \u2014 any excess is refunded automatically."
    },
    {
     "info": {
      "name": "Check batch progress",
      "type": "http"
     },
     "http": {
      "method": "GET",
      "url": "https://dev.enrich.so/api/v3/ip-to-company/batch/{batchId}"
     },
     "docs": "Poll this endpoint to track your batch. `progress` is a percentage (0\u2013100) and `status` will be `processing`, `completed`, or `failed`.\n\n**Cost:** Free \u2014 polling never costs credits."
    },
    {
     "info": {
      "name": "Get batch results",
      "type": "http"
     },
     "http": {
      "method": "GET",
      "url": "https://dev.enrich.so/api/v3/ip-to-company/batch/{batchId}/results",
      "query": [
       {
        "key": "page",
        "value": "1",
        "docs": "Page number (default: 1)"
       },
       {
        "key": "limit",
        "value": "100",
        "docs": "Results per page (default: 100, max: 1 000)"
       }
      ]
     },
     "docs": "Fetch results once your batch has finished. Results are paginated \u2014 use `page` and `limit` to walk through them.\n\n**Credit settlement:** The first time you call this after the batch reaches `completed` or `failed`, we calculate the final cost (100 credits per IP where a domain was found) and refund any excess. Subsequent calls return the cached settlement \u2014 you are never double-charged."
    }
   ]
  }
 ]
}