Skip to content
Start Trading

List Locate Rates

v1.locates.get_locate_rates(LocateGetLocateRatesParams**kwargs) -> LocateGetLocateRatesResponse
GET/v1/locates/rates

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.

ParametersExpand Collapse
instrument_ids: Sequence[InstrumentIDOrSymbol]

Comma-separated instrument IDs (UUID) or symbols; at least one, at most 1,000.

ReturnsExpand Collapse
class LocateGetLocateRatesResponse: …

The instrument id (UUID) or symbol, echoed exactly as requested, so each result maps back to its request.

minLength1
error: Optional[APIError]

Why no rate is present — a 404 when the instrument is unknown or has no cached rate. Omitted when rate is present.

code: int

The error code is used to identify the nature of the error. It corresponds to an HTTP status code.

formatint32
minimum0
message: str

A human-readable message providing more details about the error.

details: Optional[List[Dict[str, object]]]

Additional error details, if any. This can include structured information such as field violations or error metadata.

rate: Optional[LocateRate]

The cached borrow rate. Present when a rate was found; omitted when error is present.

instrument_id: str

Instrument id the rate applies to.

formatuuid
rate: str

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

as_of: Optional[datetime]

When the rate was requested from the locates venue.

formatdate-time

List Locate Rates

from clearstreet import ClearStreet

client = ClearStreet(
    api_key="My API Key",
)
response = client.v1.locates.get_locate_rates(
    instrument_ids=["x"],
)
print(response)
{
  "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": "AAPL",
      "error": {
        "code": 400,
        "message": "Order quantity must be greater than zero",
        "details": [
          {
            "foo": "bar"
          }
        ]
      },
      "rate": {
        "instrument_id": "528ec5c3-cdbf-447c-b995-ec6c83cfbc02",
        "rate": "0.037012",
        "as_of": "2026-09-10T14:33:07.107683Z"
      }
    }
  ]
}
Returns Examples
{
  "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": "AAPL",
      "error": {
        "code": 400,
        "message": "Order quantity must be greater than zero",
        "details": [
          {
            "foo": "bar"
          }
        ]
      },
      "rate": {
        "instrument_id": "528ec5c3-cdbf-447c-b995-ec6c83cfbc02",
        "rate": "0.037012",
        "as_of": "2026-09-10T14:33:07.107683Z"
      }
    }
  ]
}