# Endpoints

> Hostnames, ports and transports for every constant-k product and region.

Source: https://docs.constant-k.com/get-started/endpoints/

Each dedicated region has its own hostname for each product. One API key works in every region.

## Endpoint reference

| Product                          | New York                               | Frankfurt                                | Amsterdam                                | Transport                                 | Plans                      |
| :------------------------------- | :------------------------------------- | :--------------------------------------- | :--------------------------------------- | :---------------------------------------- | :------------------------- |
| Solana RPC                       | `rpc-newyork.constant-k.com`           | `rpc-frankfurt.constant-k.com`           | `rpc-amsterdam.constant-k.com`           | HTTPS, port 443                           | All plans                  |
| Solana RPC (WebSocket)           | `ws-newyork.constant-k.com:1337`       | `ws-frankfurt.constant-k.com:1337`       | `ws-amsterdam.constant-k.com:1337`       | WSS, port 1337, path `/ws`                | Operator and up            |
| Staked `sendTransaction` (SWQoS) | `staked-rpc-newyork.constant-k.com`    | `staked-rpc-frankfurt.constant-k.com`    | `staked-rpc-amsterdam.constant-k.com`    | HTTPS, port 443                           | Operator and up            |
| Kaldera gRPC                     | `kaldera-newyork.constant-k.com`       | `kaldera-frankfurt.constant-k.com`       | `kaldera-amsterdam.constant-k.com`       | gRPC over TLS, port 443                   | Blade Runner and up        |
| Turbo Kaldera (aRPC)             | `turbo-kaldera-newyork.constant-k.com` | `turbo-kaldera-frankfurt.constant-k.com` | `turbo-kaldera-amsterdam.constant-k.com` | gRPC over TLS, port 443                   | Nexus                      |
| ShredPrism                       | `prism-newyork.constant-k.com:55577`   | `prism-frankfurt.constant-k.com:55577`   | `prism-amsterdam.constant-k.com:55577`   | gRPC over TLS, port 55577                 | Nexus                      |
| ShredQuasar                      | Pushed to your server                  | Pushed to your server                    | Pushed to your server                    | UDP, pushed to a destination you register | Its own per-region product |

ShredQuasar is the one entry above with nothing to connect to. Packets are pushed to the IPv4 address and UDP port registered on [My Account](https://www.constant-k.com/my-account/). See [ShredQuasar](https://docs.constant-k.com/shredquasar/).

`rpc.constant-k.com` is a geo-routed Solana RPC hostname that sends each request to the nearest node. aRPC, anticipatory RPC, is constant-k's name for pre-execution transaction streaming; [Data Stages](https://docs.constant-k.com/get-started/data-stages/) sets out the stage each product delivers at.

> **ShredPrism requires TLS:** Port 55577 accepts TLS connections only, even where the connection details show the endpoint as `grpc://…:55577`.

## URL formats

Solana RPC takes the key in the URL, so these paste straight into a wallet, bot or SDK:

```text
# HTTP JSON-RPC
https://rpc-newyork.constant-k.com/?api-key=YOUR_API_KEY
https://rpc-frankfurt.constant-k.com/?api-key=YOUR_API_KEY
https://rpc-amsterdam.constant-k.com/?api-key=YOUR_API_KEY
https://rpc.constant-k.com/?api-key=YOUR_API_KEY          # nearest region

# Staked sendTransaction over SWQoS
https://staked-rpc-newyork.constant-k.com/?api-key=YOUR_API_KEY
https://staked-rpc-frankfurt.constant-k.com/?api-key=YOUR_API_KEY
https://staked-rpc-amsterdam.constant-k.com/?api-key=YOUR_API_KEY

# WebSocket subscriptions
wss://ws-newyork.constant-k.com:1337/ws?api-key=YOUR_API_KEY
wss://ws-frankfurt.constant-k.com:1337/ws?api-key=YOUR_API_KEY
wss://ws-amsterdam.constant-k.com:1337/ws?api-key=YOUR_API_KEY
```

The gRPC products take the host and port from the table above, and the key goes in the `x-token` header. Kaldera and Turbo Kaldera use the same Yellowstone protocol; Turbo Kaldera serves pre-execution data. See [Authentication](https://docs.constant-k.com/get-started/authentication/) for how to send the key with each protocol.

## Staked send path

A `sendTransaction` call sent to a staked hostname takes the stake-weighted QoS (SWQoS) path. Every other method behaves there as on the regular RPC hostname. The same API key applies, and staked sends have their own rate limit. See [Sending Transactions](https://docs.constant-k.com/rpc/sending-transactions/#staked-endpoints).

## Choosing a region

* **Distance to the node.** Network distance is often the largest part of total latency. The region closest to your servers is the fastest.
* **One region per trading flow.** Each node follows the chain on its own, so two nodes can briefly report different latest slots. A single flow, such as fetch blockhash, send, confirm, belongs on one regional hostname. The geo-routed hostname suits general reads.
* **A second region for headroom and failover.** Limits apply separately in each region ([Plans & Limits](https://docs.constant-k.com/get-started/plans-and-limits/)). Traffic can move to another region when one has a problem.

The lowest latency comes from running your code in the same facility as the node. The New York node is hosted by InterServer (TEB8), the Frankfurt node by latitude.sh (FRA2) and the Amsterdam node by DedicatedNodes. Current details are on the [Benchmarks](https://www.constant-k.com/benchmarks/) page.

Region health: [RPC Status](https://www.constant-k.com/rpc-status/).
