---
title: "Find suppliers by ID"
method: GET
path: "/public/v2/suppliers/sites/find-by-identifier"
tags: ["Suppliers - Sites"]
---

# Find suppliers by ID

`GET /public/v2/suppliers/sites/find-by-identifier`

Find suppliers/sites by their identifiers (supplier ID, customer ID, own site ID, or Prewave ID) with optional source.

This unified endpoint allows you to search for suppliers using any type of identifier from external systems (e.g., SAP, Coupa, DNB). You can search by one or more ID types simultaneously.

**Related Endpoints:**
- To get all suppliers with pagination, use `GET /public/v2/suppliers/sites`.
- To create a new supplier, use `POST /public/v2/suppliers/sites`.
- To create an identifier for a supplier, use `POST /public/v2/suppliers/sites/identifiers`.
- To delete an identifier, use `DELETE /public/v2/suppliers/sites/identifiers`.
- To deactivate a supplier, use `DELETE /public/v2/suppliers/sites`.

**Search Parameters:**
- `supplierId` (optional): Search by supplier ID
- `customerId` (optional): Search by customer ID
- `ownId` (optional): Search by own site ID
- `prewaveId` (optional): Search by Prewave ID
- `source` (optional): Filter by source system (e.g., "SAP", "Coupa", "PUBLIC_API")

**Search Behavior:**
- **Multiple ID types**: If you provide multiple ID parameters (e.g., both `supplierId` and `customerId`), the endpoint returns suppliers that match **ANY** of the provided IDs (OR logic).
- **Source filtering**: If `source` is provided, only IDs with that exact source are matched. If `source` is not provided, IDs with any source or without a source (legacy IDs) are matched. Note: `source` does not apply to `prewaveId` searches.
- **Multiple results**: The same ID can be associated with multiple suppliers/sites in your organization, so the endpoint returns a list.
- **Empty results**: Returns an empty list if no suppliers match the search criteria.

**Response Format:**
Returns a list of `PublicSupplierDetailV2DTO` objects with complete supplier information including:
- Basic identification (Prewave Target ID, name, LinkedIn ID)
- Location details (address, city, country code, postal code)
- Company information (website, description, logo, year founded, size)
- All supplier IDs, customer IDs, and own site IDs
- Screening status and monitoring dates
- Site-group reference
- Connection contacts count

**Use Cases:**

1. **Find by single ID type:**
   ```
   GET /suppliers/sites/find-by-identifier?supplierId=SAP-12345&source=SAP
   ```

2. **Find by multiple ID types (returns suppliers matching ANY):**
   ```
   GET /suppliers/sites/find-by-identifier?supplierId=SAP-12345&customerId=CRM-67890&source=SAP
   ```

3. **Find without source filter (matches any source):**
   ```
   GET /suppliers/sites/find-by-identifier?supplierId=SUP-12345
   ```

4. **Find by Prewave ID:**
   ```
   GET /suppliers/sites/find-by-identifier?prewaveId=12345
   ```

**Important Notes:**
- At least one ID parameter (supplierId, customerId, ownId, or prewaveId) must be provided
- The endpoint returns full supplier details (PublicSupplierDetailV2DTO), not just basic info
- All IDs for each supplier are included in the response (not just the matching ones)
- Results are ordered alphabetically by name, then by ID for deterministic ordering

**Required Permission**: `ACCESS_PUBLIC_SUPPLIERS`

## Query parameters

- `supplierId` string
- `customerId` string
- `ownId` string
- `prewaveId` integer
- `source` string

## Response `200`

Successfully found suppliers. Returns empty list if no matches found.

- PublicSupplierDetailV2DTO[]
  - `prewaveTargetId` integer, required — Prewave target ID of the supplier
  - `name` string, required — Name of the supplier
  - `sname` string, nullable — Geonames ID (see https://geonames.org)
  - `linkedInId` string, nullable — LinkedIn ID of the supplier
  - `address` string, nullable — Full address of the supplier
  - `city` string, nullable — City of the supplier's location
  - `countryCode` string, nullable — ISO 3166-1 alpha-2 country code of the supplier's location
  - `postalCode` string, nullable — Postal/ZIP code of the supplier's location
  - `website` string, nullable — Website URL of the supplier
  - `description` string, nullable — Description of the supplier
  - `logo` string, nullable — URL to the logo shown in the supplier profile
  - `yearFounded` integer, nullable — Year the supplier was founded
  - `size` 'Small' | 'Medium' | 'Large' | 'Very large'
  - `supplierIds` PublicSupplierIdentifierId[], required — Supplier IDs associated with the supplier
    - `id` string, required — The supplier ID identifier
    - `source` string, nullable — Source system of the supplier ID (e.g., 'SAP', 'Excel', 'Coupa'). Optional - omitted when null (legacy supplier IDs). Defaults to 'Public API' when creating suppliers via Public API v2.
  - `customerIds` PublicSupplierIdentifierId[], required — Customer IDs associated with the supplier
    - `id` string, required — The supplier ID identifier
    - `source` string, nullable — Source system of the supplier ID (e.g., 'SAP', 'Excel', 'Coupa'). Optional - omitted when null (legacy supplier IDs). Defaults to 'Public API' when creating suppliers via Public API v2.
  - `ownIds` PublicSupplierIdentifierId[], required — Own site IDs associated with the supplier
    - `id` string, required — The supplier ID identifier
    - `source` string, nullable — Source system of the supplier ID (e.g., 'SAP', 'Excel', 'Coupa'). Optional - omitted when null (legacy supplier IDs). Defaults to 'Public API' when creating suppliers via Public API v2.
  - `screened` boolean, required — Whether the supplier is screened or not
  - `screenedStatus` 'Required' | 'Pending' | 'Screened' | 'NotPossible' — Screening status of the target
  - `monitoredSince` string, date-time, nullable — Timestamp when the supplier monitoring started (ISO-8601 UTC)
  - `earliestAlert` string, date-time, nullable — Timestamp of the earliest alert for the supplier (ISO-8601 UTC)
  - `siteGroup` PublicTargetRef — Reference to a target (supplier/site)
    - `id` integer, required — Prewave Target ID
    - `name` string, required — Target name
  - `connectionContactsCount` integer, nullable — Number of connection contacts of the supplier

## Other responses

- `400` — 400 Bad Request - Invalid request. At least one ID parameter must be provided.
- `403` — 403 Forbidden - Authentication or authorization failure. This status code is returned when: (1) the request lacks valid authentication credentials (missing or invalid X-Auth-Token header), or (2) the authenticated user does not have the required permission to access this resource.
- `429` — 429 Too Many Requests - API rate limit exceeded. The request has been rejected because the rate limit for this endpoint has been exceeded. Default rate limits: GET requests - 100 per 10 seconds, 500 per minute; POST/PUT/PATCH/DELETE requests - 20 per 10 seconds, 100 per minute. For increased access, please contact customer success.
- `500` — 500 Internal Server Error - An unexpected error occurred on the server. The request may or may not have been processed.

---

[API](https://skmtc.net/prewave/apis/public-prewave-api.md) · [All operations](https://skmtc.net/prewave/apis/public-prewave-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/prewave/public-prewave-api/revisions/466169815b78/schema)
