---
title: "BSI Bulk IP Lookup"
method: POST
path: "/v3/bsi/bulk"
tags: ["Business Service Intelligence"]
---

# BSI Bulk IP Lookup

`POST /v3/bsi/bulk`

Accepts up to 1,000 IPv4 addresses and returns BSI provider matches
for each, preserving request order. A given IP's `matches` entry is
an empty array if it is not in BSI. IPv6 addresses are rejected
with HTTP 400 (the whole request fails; callers should re-issue
without the offending entry).

_License: This endpoint requires an additional subscription
license to use._

## Request body

- BSIBulkRequest
  - `ips` string[], required

## Response `200`

OK — request successful.

- BSIBulkResponse
  - `results` object[] — One entry per requested IP, in request order. Each entry mirrors the single-lookup response shape.
    - `ip` string
    - `matches` BSILookupMatch[]
      - `cidr` string
      - `name` string
      - `category` string
      - `trust_level` string
      - `precedence` integer

## Other responses

- `400` — Bad request - request syntax is invalid for the specified endpoint. Verify request syntax and try again.
- `401` — Unauthorized. Please check your API key.
- `403` — Forbidden - request is not authorized due to an invalid API key or plan limitations. If due to plan limitations, contact sales@greynoise.io to upgrade your plan and unlock full results.
- `500` — Unexpected error
- `503` — Service Unavailable — BSI index not yet built.

---

[API](https://skmtc.dev/greynoise/apis/greynoise-api.md) · [All operations](https://skmtc.dev/greynoise/apis/greynoise-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/greynoise/greynoise-api/revisions/30942574656d/schema)
