---
title: "Bulk fetch detailed target information by target IDs"
method: POST
path: "/public/v1/target/targets/bulk-fetch"
tags: ["Suppliers - Management"]
---

# Bulk fetch detailed target information by target IDs

`POST /public/v1/target/targets/bulk-fetch`

Fetch detailed information for multiple targets at once, including name, supplier identifiers, and other target details.
This endpoint supports both Prewave internal target IDs and foreign system mappings for maximum flexibility.

**Required Permission**: `access_public_target`

**Performance impact**: Medium (depends on batch size)

**Use cases**:
- Get target details for multiple suppliers at once
- Resolve foreign system IDs to Prewave target information
- Bulk data synchronization and integration

**Request format**:
- Use `targetIds` for Prewave internal target IDs: `[101, 102, 103]`
- Use `foreignTargets` for foreign system mappings: `[{"systemId": "customer", "targetId": "SUPPLIER001"}]`
- Both fields are optional, but at least one must be provided

**Response format**:
- `targets`: Successfully fetched targets with full details (same as individual target endpoint)
- `errors`: Failed lookups with specific error reasons (NOT_FOUND, ACCESS_DENIED, etc.)

**Error handling**:
- Individual target errors are returned in the `errors` field, not as HTTP errors
- Empty results are valid (empty `targets` list)
- Permission checks are performed per target

## Request body

- PublicBulkFetchTargetsRequest
  - `targetIds` integer[], nullable — List of Prewave internal target IDs to fetch
  - `foreignTargets` PublicForeignTargetId[], nullable — List of foreign system target mappings to fetch
    - `systemId` string, required — Foreign system identifier (e.g., 'SAP', 'prewave')
    - `targetId` string, required — Target ID in the foreign system
  - `isValid` boolean, required

## Response `200`

Bulk fetch completed successfully. Check the response for successful targets and any errors.

- PublicBulkFetchTargetsResponse
  - `targets` PublicTargetDTO[], required — Successfully fetched targets with full details
    - `id` integer, required — Prewave target id
    - `name` string, required — Name of the Prewave target
    - `sname` string, nullable — Geonames Id (see https://geonames.org)
    - `logo` string, nullable — URL to the logo shown in the target profile
    - `backgroundPicture` string, nullable — URL to the background picture shown in the target profile
    - `description` string, nullable — Description of the Prewave target
    - `website` string, nullable — URL to the website shown in the target profile
    - `location` string, nullable — Location of the target
    - `yearFounded` integer, nullable — Year the target was founded shown in the target profile
    - `size` 'Small' | 'Medium' | 'Large' | 'Very large'
    - `screened` boolean, required — Whether the target is screened or not
    - `screenedStatus` 'Required' | 'Pending' | 'Screened' | 'NotPossible' — Screening status of the target
    - `linkedInId` string, nullable — LinkedIn ID of the target
    - `type` PublicTargetTypeDTO, required — Target types are what is known as "Target Type" in the Prewave system (e.g in Network > Filters). They provide a broad categorization of what the target is. Examples for target types are "poi", "organization" etc.
      - `id` integer, required — Prewave-internal ID of the target type
      - `type` string, required — Machine-readable name of the target type
      - `displayName` string, required — Display name of the target type
      - `pluralName` string, required — Plural name of the target type
      - `ordering` integer, nullable — Ordering of the target type
      - `scoring` 'Alert' | 'Peer' — Scoring of the target type
    - `ctype` PublicTargetCTypeDTO, required — CTypes are what is known as "Facility Types" in the Prewave system (e.g in Network > Filters). They provide a slightly more specific categorization of what the target is. Examples for ctypes are "mine", "factory" etc.
      - `id` integer, required — Prewave-internal id of the target ctype
      - `ctype` string, required — Name of the target ctype
      - `targetTypeId` integer, required — Identifier of the target ctype
      - `displayName` string, required — Display name of the target ctype
      - `pluralName` string, required — Plural name of the target ctype
      - `icon` string, required — Icon of the target ctype. Fontawesome icon name. See https://fontawesome.com/icons for more information
      - `ordering` integer, nullable — Ordering of the target ctype
      - `priority` integer, required — Priority of the target ctype
      - `connectable` boolean, required — Whether it is possible to connect to targets of this type or not
      - `bgColor` string, required — Background color of the target ctype. Valid CSS color value
      - `textColor` string, required — Text color of the target ctype. Valid CSS color value
    - `geo` Geo, required — Geo information for this alert. Only available if includeGeo is set to true.
      - `geometry` Geometry — GeoJSON-compatible geometry object. Fields follow the GeoJSON spec (https://geojson.org): a `type` string (e.g. `Point`, `Polygon`) and a `coordinates` array.
      - `properties` GeoProperties, required
        - `name` string, nullable
        - `countryCode` string, nullable
        - `alertCount` integer, nullable
        - `boundingBox` BoundingBox
          - `xmin` number, double, required
          - `ymin` number, double, required
          - `xmax` number, double, required
          - `ymax` number, double, required
      - `type` string, required
    - `geoShape` Geo, required — Geo information for this alert. Only available if includeGeo is set to true.
      - `geometry` Geometry — GeoJSON-compatible geometry object. Fields follow the GeoJSON spec (https://geojson.org): a `type` string (e.g. `Point`, `Polygon`) and a `coordinates` array.
      - `properties` GeoProperties, required
        - `name` string, nullable
        - `countryCode` string, nullable
        - `alertCount` integer, nullable
        - `boundingBox` BoundingBox
          - `xmin` number, double, required
          - `ymin` number, double, required
          - `xmax` number, double, required
          - `ymax` number, double, required
      - `type` string, required
    - `parents` PublicTargetDTO[], required — List of parent targets
    - `organization` PublicTargetDTO — recursive
    - `industries` PublicTargetDTO[], required — List of industries the target belongs to
    - `monitoredSince` string, date-time, nullable — Date the target was monitored since
    - `earliestAlert` string, date-time, nullable — Date of the earliest alert
    - `ordering` integer, nullable — Ordering of the target
    - `disruptionStatusUpdate` object, nullable — Deprecated. Disruption status has been removed and this field is always null.
    - `own` boolean, required — Whether the target is owned by user customer or not
    - `managed` boolean, required — `true` if user is target connection contact or target is owned by user customer, `false` otherwise
    - `isPublic` boolean, nullable — Whether the target is public or not
    - `connectionContactsCount` integer, nullable — Number of connection contacts of the target
    - `population` integer, nullable — Population of the target. Generally applies to locations
    - `following` boolean, required — Target resides in "My follows" collection
    - `collectionFollowing` boolean, required — Target resides in any followed collection (including children)
    - `tier` integer, nullable — Tier of the target (relevant when fetching Tier-N)
    - `path` PublicTargetRefExtended[], required — Path of the target (relevant when fetching Tier-N)
      - `id` integer, required
      - `name` string, required
      - `customName` string, nullable
      - `latestRequest` TargetRequestInfoDto
        - `targetId` integer, required
        - `validationRequest` TargetRequestTypeStatusDto
          - `id` integer, nullable
          - `customerId` integer, nullable
          - `status` 'NONE' | 'PENDING' | 'COMPLETED' | 'REJECTED'
          - `rejectionReason` string, nullable
        - `screeningRequest` TargetRequestTypeStatusDto
          - `id` integer, nullable
          - `customerId` integer, nullable
          - `status` 'NONE' | 'PENDING' | 'COMPLETED' | 'REJECTED'
          - `rejectionReason` string, nullable
        - `reportedTargetRequest` TargetRequestTypeStatusDto
          - `id` integer, nullable
          - `customerId` integer, nullable
          - `status` 'NONE' | 'PENDING' | 'COMPLETED' | 'REJECTED'
          - `rejectionReason` string, nullable
      - `foreignSystems` EdgeNumber[], required
        - `number` string, required
        - `source` string, nullable
        - `existingEdgeId` integer, nullable
    - `collectionLevel` integer, nullable — How deep the target is in the collection hierarchy
    - `collectionPath` CollectionRef[], required — Path of the target in the collection hierarchy
      - `id` integer, required
      - `name` string, required
    - `collectionPaths` array[], required — Paths of the target in the collection hierarchy
      - CollectionRef[] — Paths of the target in the collection hierarchy
        - `id` integer, required
        - `name` string, required
    - `foreignSystems` PublicTargetForeignSystemDTO[], required — List of foreign systems the target is connected to
      - `system` string, required — The system ID is an identifier to determine from which the targetId might originate from. Supported systemIds are "prewave", "customer", "supplier", "own".
      - `id` string, required — The id in the foreign system
      - `source` string, nullable — Name of the foreign system
    - `scoreAvail` 'None' | 'Peer' | 'Alert' | 'SSA' | 'External', required
    - `revenue` number, nullable — Revenue of the target
    - `impact` 'NA' | 'No' | 'Low' | 'Mid' | 'High' | 'Critical'
    - `hsCode` PublicHSCode[], required — List of HS Codes of the target
      - `code` string, required
      - `nShipments` integer, nullable
      - `nshipments` integer
    - `mergedTargets` integer[], required — Target ids of past targets that were merged into this current target
    - `public` boolean
  - `errors` PublicBulkFetchError[], required — Failed target lookups with error details
    - `targetId` integer, nullable — Prewave internal target ID (if available)
    - `systemId` string, nullable — The system ID is an identifier to determine from which the targetId might originate from. Supported systemIds are "prewave", "customer", "supplier", "own".
    - `systemTargetId` string, nullable — The target ID can be the target's prewaveId or an external id (edge number) representing the site in another system.
    - `reason` 'NOT_FOUND' | 'ACCESS_DENIED' | 'INVALID_SYSTEM_ID' | 'SCORE_NOT_AVAILABLE' | 'TARGET_NOT_IN_MEMORY_CACHE', required — Error reason

## Other responses

- `400` — Invalid request - neither targetIds nor foreignTargets 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)
