Skip to main content
This specification is currently in beta and requires account enablement. Features and definitions are subject to change.
Financial Information eXchange (FIX) is a standard protocol that you can use to enter orders, submit cancel requests, receive fills, and consume market data.
FIX 5.0 SP2 supports spot (SPOT), FCM futures (FUT), and perpetual futures (PERP). Some fields are required only for a specific product. Product-specific requirements are noted in the message tables.

Common components

The Prime FIX API uses FIXT 1.1 for the session layer and FIX 5.0 SP2 for application messages. These common fields and message types apply across order entry, market data, and RFQ workflows.

FIX dictionary

Use the Coinbase Prime data dictionary to configure or validate your FIX engine:
FIX engines such as QuickFIX/J, QuickFIX/N, and quickfix-go normally manage standard header and trailer fields. Use the tables below when configuring a custom implementation or debugging raw messages.

Standard header

Every FIX message begins with these fields:

Standard trailer

Every FIX message ends with this field:

Supported message types

Session-level messages

Order entry messages

Market data messages

RFQ messages

For field enumerations, see FIX 5.0 code sets.

Connectivity

The Prime FIX 5.0 API uses FIX 5.0 SP2 for the application layer and FIXT 1.1 for the session layer.

Supported endpoint

Production
FIX API endpoint: tcp+ssl://fix.prime.coinbase.com:4198
Before you log on to a FIX session, establish a secure TCP connection to the FIX gateway. The endpoint accepts only connections secured with TLS. If your FIX implementation does not support native TLS connections, use a local proxy such as stunnel to establish the secure connection. All Prime infrastructure is in the AWS us-east-1 region. For optimal performance and latency, deploy your application in the same region.

Get started

To get started with FIX order entry, use the Python FIX application on Coinbase Samples. For market data, use the Go FIX market data reference application. Market data requires a separate API key from the key used for order entry.

Maintenance window

Sessions are forcibly logged out every day from 5:00 p.m. to 5:05 p.m. ET for maintenance. Restart your sessions during this window and reset sequence numbers to 1. Orders continue to execute during the maintenance window. After you reconnect, the FIX API sends any ExecutionReport messages generated while your session was disconnected. Use the WebSocket orders channel and REST /orders endpoint to reconcile trading activity during the maintenance window. For GTD or day orders, set ExpireTime at least five minutes before the daily maintenance window, such as 4:55 p.m. ET.

Replay

The server supports message replay and sequence-number renegotiation as specified in FIX Session Layer Online.
  • For active sessions that use replay, replay files are available for 24 hours, from 5:00 p.m. ET until 5:00 p.m. ET the next day.
  • For inactive sessions, Prime holds a rolling 24 hours of messages and delivers them when a FIX connection for the portfolio is re-established. This queue is separate from replay and is not affected by sequence-number reset times.

Session and rate limits

You can have up to seven concurrent FIX sessions per portfolio and one session per API key. Rate limits apply at the session and portfolio levels:
  • FIX requests are limited to 50 messages per second per session.
  • FIX orders are limited to 50 orders per second per portfolio.
For more information, see Prime API rate limits.

Configure an SSL tunnel

If your FIX client library cannot establish a TLS connection natively, configure stunnel to accept an unencrypted local connection and connect securely to the FIX gateway.
stunnel.conf
Download the Prime certificate for CAfile:
Run stunnel with the configuration file:
Configure your FIXT 1.1 session to use FIX 5.0 SP2 as the default application version: