Skip to main content
Subscribe to real-time execution reports, trade captures, instrument state changes, and position updates for your firm using gRPC streaming.
gRPC Only - DropCopy endpoints are gRPC streaming only. There are no REST equivalents.

Service Definition

Service: polymarket.v1.DropCopyAPI Type: Server-side streaming (all endpoints)

Available Streams


1. DropCopy Subscription

Stream execution reports as they occur for your firm.

Request Parameters

Omit both resume_token and resume_time to receive only executions that occur after the stream opens. See Resume semantics.

Response Fields

Commission fields on executions (commission_notional_collected, commission_notional_total_collected) are fixed-point notional units scaled by price_scale × fractional_quantity_scale — see Fees on execution reports for decoding rules and worked examples.

Example

Sample Output


2. Trade Capture Report Subscription

Stream completed trades for reconciliation and compliance.

Request Parameters

Response Fields

Example

Trade Structure

Each trade contains two executions:

Trade States

Each Trade carries a state field with one of the following values:
Handling TRADE_STATE_BUSTEDA busted trade was executed and then voided by the exchange (via an error-trade bust), and its position impact was reversed. Busted trades remain visible in trade history — treat them as reversed for position, P&L, and reconciliation purposes. Do not silently drop them.
TRADE_STATE_UNDEFINED (value 0) is the unset/unknown sentinel. It is omitted from API responses and does not appear in the published enum lists. Treat any unrecognized state value defensively rather than assuming the values above are exhaustive.
A bust reverses a prior trade recordA trade can be re-sent on this stream with the same id but an updated state. When a trade is re-sent with TRADE_STATE_BUSTED, that frame supersedes and reverses the earlier record carrying the same id. Deduplicate on id and always apply the latest state: a subsequent TRADE_STATE_BUSTED unwinds the position and P&L impact of a trade you previously recorded as TRADE_STATE_CLEARED.

3. Instrument State Change Subscription

Stream market state changes (halts, opens, closes).
No Participant ID RequiredThis endpoint only requires Auth0 JWT authentication with read:instruments scope. You do not need to provide the x-participant-id header or complete KYC onboarding to access instrument state changes.

Request Parameters

Response Fields

Instrument States

Primary State Flow

Exception States

Other Possible States

Example


4. Position Change Subscription

Stream real-time position updates.

Request Parameters

Response Fields

PositionChange Structure

Example


Reconnection Handling

Keep one long-lived Drop Copy stream per environment. Do not open a stream per order, and do not cancel the RPC after a few seconds — that restarts replay and never catches up. See Streaming Best Practices. Execution, trade-capture, and position-change streams carry resume_token for reconnect:
Resume Token ExpiryResume tokens may expire after extended disconnection periods. If resumption fails, start a fresh subscription and reconcile with the Report API for any missed data.

Resume semantics

The two resume fields are mutually exclusive. Send one or neither. Replay always runs to the present before live executions arrive. An old token or an early resume_time means a long replay, and a fill for an order you just placed is delivered only after that replay reaches it. If you do not need past executions, do not send a resume field. Persist the most recent resume_token you have fully applied, not the first token you received. Responses with no executions still carry a current resume_token; persist those too. To tell when a replay has caught up, see Knowing you are caught up.

Comparing DropCopy vs Order Stream

When to Use DropCopyUse DropCopy when you need:
  • Firm-wide visibility across all users
  • Trade capture reports for reconciliation
  • Instrument state change notifications
  • Real-time position monitoring across accounts

Next Steps

Streaming Best Practices

One stream per firm. Persist resume_token after apply.

Order Stream

Stream user-level order updates

Market Data Stream

Stream real-time market data

Funding Stream

Stream funding transaction updates

Error Handling

Handle errors and reconnections