Skip to content
Start Trading

List Locate Rates

client.V1.Locates.GetLocateRates(ctx, query) (*V1LocateGetLocateRatesResponse, error)
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
query V1LocateGetLocateRatesParams
InstrumentIDs param.Field[[]InstrumentIDOrSymbol]

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

ReturnsExpand Collapse
type V1LocateGetLocateRatesResponse struct{…}

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

minLength1
Error APIErrorOptional

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

Code int64

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

formatint32
minimum0
Message string

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

Details []map[string, any]Optional

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

Rate LocateRateOptional

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

InstrumentID string

Instrument id the rate applies to.

formatuuid
Rate string

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

AsOf TimeOptional

When the rate was requested from the locates venue.

formatdate-time

List Locate Rates

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.GetLocateRates(context.TODO(), clearstreet.V1LocateGetLocateRatesParams{
    InstrumentIDs: []clearstreet.InstrumentIDOrSymbol{"x"},
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", 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"
      }
    }
  ]
}