## Get Locate Rate

`client.V1.Locates.GetLocateRateByID(ctx, instrumentID) (*V1LocateGetLocateRateByIDResponse, error)`

**get** `/v1/locates/rates/{instrument_id}`

Fetch the cached locate borrow rate for one instrument. Rates refresh
periodically; `404` means no rate is currently cached for the instrument.

### Parameters

- `InstrumentID InstrumentIDOrSymbol`

  Instrument identifier: either an instrument UUID or a symbol (symbol for equities, OSI for options). Non-UUID inputs are resolved server-side.

### Returns

- `type V1LocateGetLocateRateByIDResponse struct{…}`

  - `Data LocateRate`

    A locate borrow rate for an instrument.

    - `InstrumentID string`

      Instrument id the rate applies to.

    - `Rate string`

      Borrow rate, expressed as a decimal (e.g. 0.037012 for 3.7012%).

    - `AsOf Time`

      When the rate was requested from the locates venue.

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/clear-street/clear-street-go"
  "github.com/clear-street/clear-street-go/option"
)

func main() {
  client := clearstreet.NewClient(
    option.WithAPIKey("My API Key"),
  )
  response, err := client.V1.Locates.GetLocateRateByID(context.TODO(), "x")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response)
}
```

#### 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": {
    "instrument_id": "528ec5c3-cdbf-447c-b995-ec6c83cfbc02",
    "rate": "0.037012",
    "as_of": "2026-09-10T14:33:07.107683Z"
  }
}
```
