## Get Locate

`LocateGetLocateByIdResponse v1().locates().getLocateById(LocateGetLocateByIdParamsparams, RequestOptionsrequestOptions = RequestOptions.none())`

**get** `/v1/accounts/{account_id}/locates/{id}`

Fetch one locate by id, matched against the locate request id, locate id,
and client request id, across all days in force.

### Parameters

- `LocateGetLocateByIdParams params`

  - `long accountId`

  - `Optional<String> id`

### Returns

- `class LocateGetLocateByIdResponse:`

  - `Locate data`

    A locate request joined with the locate granted for it, if any.

    - `long accountId`

      Account the locate is booked to.

    - `String clientRequestId`

      Caller-assigned id of the locate request.

    - `LocalDate effectiveDate`

      New York calendar date the locate is in force for.

    - `String instrumentId`

      Instrument id.

    - `String locateRequestId`

      Engine-assigned locate request id.

    - `long requestedQuantity`

      Number of shares requested.

    - `LocateStatus status`

      Presented status of the locate.

      - `REQUESTED("REQUESTED")`

      - `ACCEPTED("ACCEPTED")`

      - `REJECTED("REJECTED")`

      - `EXPIRED("EXPIRED")`

    - `Optional<String> locateId`

      Engine-assigned locate id; set once the locate is granted.
      When a null/undefined value is observed, it indicates it does not apply.

    - `Optional<Long> quantity`

      Number of shares granted; set once the locate is granted.
      When a null/undefined value is observed, it indicates it does not apply.

    - `Optional<String> relatedOrderId`

      Client order id the request relates to, if any.
      When a null/undefined value is observed, it indicates it does not apply.

    - `Optional<Long> reservedQuantity`

      Number of granted shares reserved.
      When a null/undefined value is observed, it indicates it does not apply.

    - `Optional<Long> usedQuantity`

      Number of granted shares already used.
      When a null/undefined value is observed, it indicates it does not apply.

### Example

```java
package com.clearstreet.api.example;

import com.clearstreet.api.client.ClearStreetClient;
import com.clearstreet.api.client.okhttp.ClearStreetOkHttpClient;
import com.clearstreet.api.models.v1.locates.LocateGetLocateByIdParams;
import com.clearstreet.api.models.v1.locates.LocateGetLocateByIdResponse;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        ClearStreetClient client = ClearStreetOkHttpClient.builder()
            .fromEnv()
            .apiKey("My API Key")
            .build();

        LocateGetLocateByIdParams params = LocateGetLocateByIdParams.builder()
            .accountId(0L)
            .id("id")
            .build();
        LocateGetLocateByIdResponse response = client.v1().locates().getLocateById(params);
    }
}
```

#### Response

```json
{
  "metadata": {
    "request_id": "request_id",
    "next_page_token": "U3RhaW5sZXNzIHJvY2tz",
    "page_number": 1,
    "previous_page_token": "U3RhaW5sZXNzIHJvY2tz",
    "total_items": 42,
    "total_pages": 5
  },
  "error": {
    "code": 400,
    "message": "Order quantity must be greater than zero",
    "details": [
      {
        "foo": "bar"
      }
    ]
  },
  "data": {
    "account_id": 0,
    "client_request_id": "client_request_id",
    "effective_date": "2019-12-27",
    "instrument_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "locate_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "requested_quantity": 0,
    "status": "REQUESTED",
    "locate_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "quantity": 0,
    "related_order_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "reserved_quantity": 0,
    "used_quantity": 0
  }
}
```
