# Retrieve multiple twins

Retrieve twin details for the list of twin Ids included in the request body.
Any ids that do not reference valid twins will silently be omitted from the response -- no 404/NotFound will be generated.
Match response against your query to find any invalid IDs.

Endpoint: POST /twins/ids
Version: v3
Security: oauth2

## Query parameters:

  - `includeRelationships` (boolean)
    When true, the response includes the incoming and outgoing relationships

## Response 200 fields (application/json):

  - `id` (string, required)
    The unique Id of the digital twin.

  - `modelId` (string, required)
    Digital Twin Model Identifier.

  - `lastUpdateTime` (null | string)
    Timestamp when the twin was last updated in ISO 8601 format.

  - `eTag` (null | string)
    Concurrency tag for optimistic concurrency control. Populated from the underlying ADT entity when sourced from AdtQuery; null when sourced from ADX.

  - `incomingRelationships` (array)
    Incoming relationships

  - `incomingRelationships.id` (string)
    The unique Id of the relationship entity.

  - `incomingRelationships.targetId` (string, required)
    The Id of the target twin.

  - `incomingRelationships.sourceId` (string, required)
    The Id of the source twin.

  - `incomingRelationships.name` (string, required)
    The name of the relationship, which defines the type of link from source twin to target twin (e.g. isPartOf, locatedIn, servedBy, etc.. ).

  - `outgoingRelationships` (array)
    Outgoing relationships

## Response 403 fields (application/json):

  - `type` (null | string)

  - `title` (null | string)

  - `status` (null | integer)

  - `detail` (null | string)

  - `instance` (null | string)

## Response 404 fields (application/json):

  - `type` (null | string)

  - `title` (null | string)

  - `status` (null | integer)

  - `detail` (null | string)

  - `instance` (null | string)

