---
title: "List Locate Rates"
method: GET
path: "/v1/locates/rates"
tags: ["Locates"]
---

# List Locate Rates

`GET /v1/locates/rates`

## Request

- Base URL: `https://api.clearstreet.com`
- URL: `https://api.clearstreet.com/v1/locates/rates`
- Auth: HTTP bearer

Fetch the cached locate borrow rates for up to 1,000 instruments. The
response returns one row per requested instrument, in request order. Each
row carries either the `rate` or an `error` — a `404` when the instrument
is unknown or has no cached rate. The status is `207` when any row has an
error, `200` when every instrument resolved to a rate.

## Query parameters

- `instrument_ids` InstrumentIdOrSymbol[], required

## Response `200`

Every requested instrument resolved to a rate

- object
  - `error` ApiError: A direct mapping of tonic::Status, for use in HTTP responses.
    - `code` integer, required: The error code is used to identify the nature of the error. It corresponds to an HTTP status code.
    - `details` object[]
    - `message` string, required: A human-readable message providing more details about the error.
  - `metadata` ResponseMetadata, required: Metadata for the response. This will always contain a request ID which can be used to identify the request to Clear Street for tracing, and optionally may include pagination data.
    - `next_page_token` string, byte, nullable: Base64URL-encoded pagination token
    - `page_number` integer, nullable: Pagination. Included if this was a GET (list) response
    - `previous_page_token` string, byte, nullable: Base64URL-encoded pagination token
    - `request_id` string, required: A unique ID for this request, generated upon ingestion of the request.
    - `total_items` integer, nullable: Total number of items available (not just in this page).
    - `total_pages` integer, nullable: Total number of pages available.
  - `data` LocateRateResult[], required
    - `error` ApiError: A direct mapping of tonic::Status, for use in HTTP responses.
      - `code` integer, required: The error code is used to identify the nature of the error. It corresponds to an HTTP status code.
      - `details` object[]
      - `message` string, required: A human-readable message providing more details about the error.
    - `instrument` string, required: Instrument identifier: either an instrument UUID or a symbol (symbol for equities, OSI for options). Non-UUID inputs are resolved server-side.
    - `rate` LocateRate: A locate borrow rate for an instrument.
      - `as_of` string, date-time, nullable: When the rate was requested from the locates venue.
      - `instrument_id` string, uuid, required: Instrument id the rate applies to.
      - `rate` string, required: Borrow rate, expressed as a decimal (e.g. 0.037012 for 3.7012%).

## Other responses

- `207`: A result row per requested instrument; at least one row carries an error
- `400`: No instrument ids, or too many
- `401`: Unauthenticated
- `500`: Internal server error

## Changes

- **2026-10-16** `1bd9eddeffc8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/clear-street/apis/clear-street-trading-api/changes/v1/locates/rates/get.md)

---

[API](https://skmtc.dev/clear-street/apis/clear-street-trading-api.md) - [All operations](https://skmtc.dev/clear-street/apis/clear-street-trading-api/llms.txt) - [OpenAPI document](https://skmtc.dev/clear-street/apis/clear-street-trading-api/revisions/52e77ea7d731?raw)
