Backend Reference

Vatic API docs rebuilt from the live backend routes.

This page replaces the old docs with a route catalog extracted from the server implementation. It groups the API by functionality, flags protected routes, and keeps aliases visible so integrations stop guessing.

Base URL
https://api.vatic.trading
Route Count
27
Including alias paths
Protected
5
API-key gated trading routes
Authentication

Read routes are public. Trading routes use the middleware in server.js and currently accept a key via Authorization: Bearer <key>, X-Api-Key, or ?apiKey=.

Supported Assets
btcethsolxrphypedogebnb
Market Types
5min15min1hour4hourdaily
Rate Limiting

The backend emits X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers. The default ceiling in server.js is 120 requests per 60 seconds per IP.

Realtime

Prefer the WebSocket feed for boundary-sensitive trading logic instead of polling target endpoints into 429s or publish-lag windows.

Service

Liveness and root service discovery endpoints.

2 documented entries in this section.
GETPublic

Health Check

Returns a lightweight uptime signal for monitoring and deploy verification.

Anchor
Path
https://api.vatic.trading/health
Example Request
curl "https://api.vatic.trading/health"
Example Response
{
  "ok": true,
  "service": "vatic-api",
  "now": "2026-04-04T10:12:00.000Z"
}
Example Error
{
  "error": "Rate limit exceeded"
}
GETPublic

Root Service Descriptor

Basic service metadata plus a pointer to the health route.

Anchor
Path
https://api.vatic.trading/
Example Request
curl "https://api.vatic.trading/"
Example Response
{
  "ok": true,
  "service": "vatic-api",
  "status": "up",
  "health": "/health"
}
Example Error
{
  "error": "Rate limit exceeded"
}
Fees

Legacy and April 2025 fee model helpers based on Gamma metadata.

6 documented entries in this section.
GETPublic

Legacy Fee Rules By Event Slug

Loads the original fee-rule classification for an event using the Gamma event slug.

Anchor
Path
https://api.vatic.trading/api/v1/fees/event/slug/:eventSlug
Contract
FieldLocationTypeRequiredDescription
eventSlugpathstringYesGamma event slug.
Example Request
curl "https://api.vatic.trading/api/v1/fees/event/slug/bitcoin-above-110k-on-april-5"
Example Response
{
  "event": {
    "id": "8472",
    "slug": "bitcoin-above-110k-on-april-5",
    "title": "Bitcoin above 110k on April 5?"
  },
  "feeConfig": {
    "hasTakerFees": true,
    "type": "crypto",
    "feeRate": 0.25,
    "exponent": 2,
    "makerRebate": "20%",
    "matchedByTag": "crypto"
  }
}
Example Error
{
  "error": "Failed to fetch event metadata",
  "hint": "Failed to fetch event metadata from Gamma API by slug"
}
GETPublic

Legacy Fee Rules By Event ID

Same fee lookup as the slug route, but keyed by the Gamma event ID.

Anchor
Path
https://api.vatic.trading/api/v1/fees/event/id/:eventId
Contract
FieldLocationTypeRequiredDescription
eventIdpathstringYesGamma event identifier.
Example Request
curl "https://api.vatic.trading/api/v1/fees/event/id/8472"
Example Response
{
  "event": {
    "id": "8472",
    "slug": "bitcoin-above-110k-on-april-5"
  },
  "feeConfig": {
    "hasTakerFees": true,
    "type": "crypto",
    "feeRate": 0.25,
    "exponent": 2,
    "makerRebate": "20%"
  }
}
Example Error
{
  "error": "Missing eventId path param"
}
POSTPublic

Legacy Trade Fee Estimate

Estimates taker fees using the original fee formula for BUY or SELL trades.

Anchor
Path
https://api.vatic.trading/api/v1/fees/trade-estimate
Contract
FieldLocationTypeRequiredDescription
eventIdbodystringNoProvide eventId or eventSlug.
eventSlugbodystringNoProvide eventSlug or eventId.
sidebody"BUY" | "SELL"YesTrade direction.
makingAmountbodynumberYesFor BUY: USDC amount. For SELL: share amount.
takingAmountbodynumberYesFor BUY: shares. For SELL: USDC proceeds.
Example Request
curl -X POST "https://api.vatic.trading/api/v1/fees/trade-estimate" \
  -H "Content-Type: application/json" \
  -d '{
    "eventSlug": "bitcoin-above-110k-on-april-5",
    "side": "BUY",
    "makingAmount": 100,
    "takingAmount": 210.5
  }'
Example Response
{
  "side": "BUY",
  "averagePrice": 0.4751,
  "fee": {
    "chargedIn": "shares",
    "feeEquivalent": 0.5263,
    "feeInUsdcRaw": 0.25
  },
  "result": {
    "grossShares": 210.5,
    "netShares": 209.9737
  }
}
Example Error
{
  "error": "Provide eventId or eventSlug"
}
GETPublic

New Fee Rules By Event Slug

Returns fee configuration under the updated April 2025 Polymarket fee structure.

Anchor
Path
https://api.vatic.trading/api/v1/new_fees/event/slug/:eventSlug
Notes
  • This route mirrors the legacy fee lookup shape but uses the newer category-based fee map.
Contract
FieldLocationTypeRequiredDescription
eventSlugpathstringYesGamma event slug.
Example Request
curl "https://api.vatic.trading/api/v1/new_fees/event/slug/bitcoin-above-110k-on-april-5"
Example Response
{
  "event": {
    "slug": "bitcoin-above-110k-on-april-5"
  },
  "feeConfig": {
    "hasTakerFees": true,
    "type": "crypto",
    "feeRate": 0.072,
    "makerRebate": "20%"
  }
}
Example Error
{
  "error": "Missing eventSlug path param"
}
GETPublic

New Fee Rules By Event ID

Looks up the new fee classification with a Gamma event ID.

Anchor
Path
https://api.vatic.trading/api/v1/new_fees/event/id/:eventId
Contract
FieldLocationTypeRequiredDescription
eventIdpathstringYesGamma event identifier.
Example Request
curl "https://api.vatic.trading/api/v1/new_fees/event/id/8472"
Example Response
{
  "event": {
    "id": "8472"
  },
  "feeConfig": {
    "hasTakerFees": true,
    "type": "crypto",
    "feeRate": 0.072,
    "makerRebate": "20%"
  }
}
Example Error
{
  "error": "Missing eventId path param"
}
POSTPublic

New Trade Fee Estimate

Estimates trade fees using the newer fee formula and optional Polymarket validation override.

Anchor
Path
https://api.vatic.trading/api/v1/new_fees/trade-estimate
Notes
  • The response may include validatedWithPolymarket and overriddenByPolymarket when upstream data is available.
Contract
FieldLocationTypeRequiredDescription
eventIdbodystringNoProvide eventId or eventSlug.
eventSlugbodystringNoProvide eventSlug or eventId.
sidebody"BUY" | "SELL"YesTrade direction.
makingAmountbodynumberYesFor BUY: USDC amount. For SELL: share amount.
takingAmountbodynumberYesFor BUY: shares. For SELL: USDC proceeds.
Example Request
curl -X POST "https://api.vatic.trading/api/v1/new_fees/trade-estimate" \
  -H "Content-Type: application/json" \
  -d '{
    "eventId": "8472",
    "side": "SELL",
    "makingAmount": 150,
    "takingAmount": 93
  }'
Example Response
{
  "validatedWithPolymarket": true,
  "side": "SELL",
  "fee": {
    "chargedIn": "usdc",
    "feeEquivalent": 0.15,
    "feeInUsdcRaw": 0.15043
  },
  "result": {
    "grossUsdc": 93,
    "netUsdc": 92.85
  }
}
Example Error
{
  "error": "Invalid side. Supported values: BUY, SELL"
}
Targets

Current and point-in-time target prices for Vatic market windows.

5 documented entries in this section.
GETPublic

Active Window Targets

Returns the current active target window for one asset across one or more market types.

Anchor
Path
https://api.vatic.trading/api/v1/targets/active
Notes
  • Supported assets: btc, eth, sol, xrp, hype, doge, bnb
  • Supported types: 5min, 15min, 1hour, 4hour, daily
Contract
FieldLocationTypeRequiredDescription
assetquerystringYesNormalized asset slug such as btc or eth.
typesquerycomma-separated stringNoSubset of market types. Defaults to all supported types.
Example Request
curl "https://api.vatic.trading/api/v1/targets/active?asset=btc&types=5min,15min,1hour"
Example Response
{
  "asset": "btc",
  "results": [
    {
      "marketType": "5min",
      "ok": true,
      "windowStart": 1775290500,
      "windowStartIso": "2026-04-04T10:15:00.000Z",
      "source": "chainlink",
      "price": 107233.42
    }
  ]
}
Example Error
{
  "error": "Invalid asset. Supported assets: btc, eth, sol, xrp, hype, doge, bnb"
}
GETPublic

Target At Timestamp

Resolves a target price at a given timestamp, automatically picking Chainlink or Binance based on the market type.

Anchor
Path
https://api.vatic.trading/api/v1/targets/timestamp
Notes
  • The handler retries up to four times at one-second intervals to absorb publish lag right after a new window opens.
Contract
FieldLocationTypeRequiredDescription
assetquerystringYesAsset slug.
typequerystringYesAny supported market type.
timestampqueryunix seconds | unix milliseconds | ISO stringYesTimestamp to resolve.
Example Request
curl "https://api.vatic.trading/api/v1/targets/timestamp?asset=btc&type=1hour&timestamp=1775296800"
Example Response
{
  "asset": "btc",
  "marketType": "1hour",
  "provider": "binance",
  "requestedTimestamp": 1775296800,
  "source": "binance",
  "price": 107104.9
}
Example Error
{
  "error": "Upstream price provider is temporarily throttled. Please retry in a few seconds.",
  "error_code": "upstream_throttled",
  "provider": "chainlink",
  "windowStart": 1775297700,
  "websocket": "wss://api.vatic.trading/ws",
  "docs": "https://api.vatic.trading/docs"
}
GETPublic

Batch Targets At Timestamp

Resolves one market type across multiple assets in a single request.

Anchor
Path
https://api.vatic.trading/api/v1/targets/timestamp/batch
Contract
FieldLocationTypeRequiredDescription
assetsquerycomma-separated stringYesList of asset slugs.
typequerystringYesSingle supported market type.
timestampqueryunix seconds | unix milliseconds | ISO stringYesTimestamp to resolve.
Example Request
curl "https://api.vatic.trading/api/v1/targets/timestamp/batch?assets=btc,eth,sol&type=5min&timestamp=2026-04-04T10:15:00Z"
Example Response
{
  "marketType": "5min",
  "provider": "chainlink",
  "results": [
    { "asset": "btc", "ok": true, "source": "chainlink", "price": 107233.42 },
    { "asset": "eth", "ok": true, "source": "chainlink", "price": 3921.81 }
  ]
}
Example Error
{
  "error": "Invalid assets: abc",
  "hint": "Supported assets: btc, eth, sol, xrp, hype, doge, bnb"
}
GETPublic

Target By Market Slug

Parses a Vatic market slug, infers asset and market type, and resolves the target price for that window.

Anchor
Path
https://api.vatic.trading/api/v1/targets/slug/:slug
Notes
  • Returns HTTP 410 when Chainlink historical source data is too old to resolve certain short-window markets.
Contract
FieldLocationTypeRequiredDescription
slugpathstringYesSupported slug formats include short crypto slugs and date-based slug variants.
Example Request
curl "https://api.vatic.trading/api/v1/targets/slug/btc-updown-5m-1775297700"
Example Response
{
  "slug": "btc-updown-5m-1775297700",
  "asset": "btc",
  "marketType": "5min",
  "windowStart": 1775297700,
  "source": "chainlink",
  "price": 107233.42
}
Example Error
{
  "error": "Historical data unavailable",
  "error_code": "history_too_old",
  "reason": "Chainlink Data Streams retains reports for ~14 days.",
  "slug": "btc-updown-5m-1773000000"
}
History

Window-level and source-level historical data APIs.

4 documented entries in this section.
GETPublic

Single Market History Point

Resolves the market window corresponding to a timestamp and returns the single target datapoint for that window.

Anchor
Path
https://api.vatic.trading/api/v1/history/market
Aliases
/api/v1/timeseries/market
Contract
FieldLocationTypeRequiredDescription
assetquerystringYesAsset slug.
typequerystringYesSupported market type.
marketStart | start | timestampquerytimestampYesAny of these query keys may be used; the server aligns the value to the market boundary.
Example Request
curl "https://api.vatic.trading/api/v1/history/market?asset=btc&type=5min&timestamp=1775297842"
Example Response
{
  "asset": "btc",
  "marketType": "5min",
  "provider": "chainlink",
  "market": {
    "timestamp_start": 1775297700,
    "timestamp_end": 1775298000,
    "slug": "btc-updown-5m-1775297700"
  },
  "datapoint": {
    "source": "chainlink",
    "price": 107233.42
  }
}
Example Error
{
  "error": "Invalid type. Supported values: 5min, 15min, 1hour, 4hour, daily"
}
GETPublic

Window-Aligned Range History

Returns a series of market windows and their resolved prices across a requested time range.

Anchor
Path
https://api.vatic.trading/api/v1/history/range
Aliases
/api/v1/timeseries/range
Notes
  • The server rejects ranges that expand to more than 1000 aligned points.
Contract
FieldLocationTypeRequiredDescription
assetquerystringYesAsset slug.
typequerystringYesSupported market type.
startquerytimestampYesRange start.
endquerytimestampYesRange end. Must be greater than start.
Example Request
curl "https://api.vatic.trading/api/v1/history/range?asset=btc&type=1hour&start=1775210400&end=1775296800"
Example Response
{
  "asset": "btc",
  "marketType": "1hour",
  "provider": "binance",
  "count": 24,
  "history": [
    {
      "timestamp_start": 1775210400,
      "timestamp_end": 1775214000,
      "ok": true,
      "price": 106700.12
    }
  ],
  "timeseries": []
}
Example Error
{
  "error": "Range too large (1440 points). Maximum is 1000",
  "hint": "Use a smaller time range or larger interval"
}
GETPublic

Binance Range History

Returns either aligned market windows or underlying Binance source data for 1hour and daily markets.

Anchor
Path
https://api.vatic.trading/api/v1/history/binance/range
Notes
  • mode=market returns aligned market windows.
  • mode=source returns raw points enriched with the corresponding Vatic market and optional outcome metadata.
Contract
FieldLocationTypeRequiredDescription
assetquerystringYesAsset slug.
typequery"1hour" | "daily"YesBinance-backed market type.
startquerytimestampYesRange start.
endquerytimestampYesRange end.
modequery"market" | "source"NoDefaults to market.
includeOutcomeMetaquerybooleanNoOnly relevant in source mode.
Example Request
curl "https://api.vatic.trading/api/v1/history/binance/range?asset=btc&type=1hour&mode=source&includeOutcomeMeta=true&start=1775210400&end=1775217600"
Example Response
{
  "asset": "btc",
  "marketType": "1hour",
  "provider": "binance",
  "mode": "source",
  "method": "aggTrades",
  "count": 120,
  "points": [
    {
      "timestamp": 1775210401,
      "price": 106700.12,
      "corresponding_market_slug": "btc-updown-1h-1775210400",
      "target_price": 106745.8
    }
  ]
}
Example Error
{
  "error": "Invalid mode. Supported modes: market, source"
}
Markets

Utility endpoints for Polymarket slugs, token IDs, and timestamp schedules.

2 documented entries in this section.
GETPublic

Market Timestamp Schedule

Builds the chronological market schedule for one UTC day and one or more intervals, including generated Polymarket slugs.

Anchor
Path
https://api.vatic.trading/api/v1/markets/timestamps
Contract
FieldLocationTypeRequiredDescription
assetquerystringYesAsset slug.
interval or intervalsquerystringNoSingle interval or comma-separated intervals.
datequeryYYYY-MM-DDYesUTC date to enumerate.
Example Request
curl "https://api.vatic.trading/api/v1/markets/timestamps?asset=btc&intervals=5min,1hour&date=2026-04-04"
Example Response
{
  "asset": "btc",
  "utc_date": "2026-04-04",
  "data": {
    "5min": {
      "count": 288,
      "chronological_order": [
        {
          "index": 1,
          "timestamp_start": 1775251200,
          "slug": "btc-updown-5m-1775251200",
          "url": "https://polymarket.com/event/btc-updown-5m-1775251200"
        }
      ]
    }
  }
}
Example Error
{
  "error": "Use interval=5m|15m|1hour|4h|daily or intervals as comma-separated list"
}
GETPublic

Resolve Token ID

Maps a human-readable Polymarket slug and outcome label to a tradeable CLOB token ID.

Anchor
Path
https://api.vatic.trading/api/v1/markets/tokenId
Contract
FieldLocationTypeRequiredDescription
slugquerystringYesPolymarket market slug.
outcomequerystringYesOutcome label, case-insensitive.
eventSlugquerystringNoOptional safety check that the market belongs to a specific event.
Example Request
curl "https://api.vatic.trading/api/v1/markets/tokenId?slug=will-bitcoin-be-above-110k-on-april-5&outcome=Yes"
Example Response
{
  "tokenId": "716340470000000000000000000000000000",
  "outcome": "Yes",
  "outcomeIndex": 0,
  "conditionId": "0xcba248...",
  "negRisk": true,
  "slug": "will-bitcoin-be-above-110k-on-april-5",
  "eventSlug": "bitcoin-above-110k-on-april-5",
  "question": "Will Bitcoin be above 110k on April 5?"
}
Example Error
{
  "error": "Outcome "Maybe" not found",
  "availableOutcomes": ["Yes", "No"]
}
Orders

Authenticated trading endpoints backed by Vatic-managed wallets.

5 documented entries in this section.
POSTAPI Key

Post Signed Limit-Style Order

Builds and signs a CLOB order using the server-managed signer for a provisioned trading wallet, then posts it directly to Polymarket.

Anchor
Path
https://api.vatic.trading/api/v1/orders
Notes
  • This path requires a Vatic API key and a walletId tied to the authenticated user.
  • Price must be between 0.01 and 0.99. Size must be at least 1.
Contract
FieldLocationTypeRequiredDescription
walletIdbodyUUIDYesProvisioned trading wallet from the dashboard.
tokenIdbodystringYesPolymarket outcome token ID.
sidebody"BUY" | "SELL"YesOrder side.
pricebodynumberYesLimit price from 0.01 to 0.99.
sizebodynumberYesSize in USDC-equivalent units, minimum 1.
Example Request
curl -X POST "https://api.vatic.trading/api/v1/orders" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "walletId": "9eb7f0bb-0f0b-4a2d-8d84-50f141d36241",
    "tokenId": "716340470000000000000000000000000000",
    "side": "BUY",
    "price": 0.52,
    "size": 25
  }'
Example Response
{
  "ok": true,
  "orderId": "0x3b0a...",
  "status": "submitted",
  "safeAddress": "0x832c...",
  "order": {
    "tokenId": "716340470000000000000000000000000000",
    "side": "BUY",
    "price": 0.52,
    "size": 25,
    "makerAmount": "13000000",
    "takerAmount": "25000000"
  }
}
Example Error
{
  "error": "API key required",
  "hint": "Pass your key via Authorization: Bearer <key>, X-Api-Key header, or ?apiKey= query param."
}
Protected route. Accepted API key transports: Authorization: Bearer <key>, X-Api-Key, or ?apiKey=
POSTAPI Key

Easy Market Order

The highest-level trading endpoint: resolve slug plus outcome to tokenId, then submit a market order with one request.

Anchor
Path
https://api.vatic.trading/api/v1/simpleOrders/easyMarketOrder
Notes
  • This is the simplest integration but adds Gamma lookup latency relative to tokenId-first endpoints.
Contract
FieldLocationTypeRequiredDescription
walletIdbodyUUIDYesProvisioned trading wallet.
slugbodystringYesPolymarket market slug.
outcomebodystringYesOutcome label, case-insensitive.
sidebody"BUY" | "SELL"YesOrder side.
amountbodynumberYesBUY spends USDC. SELL uses share amount.
eventSlugbodystringNoOptional event slug validator.
orderTypebody"FOK" | "FAK"NoDefaults to FOK.
Example Request
curl -X POST "https://api.vatic.trading/api/v1/simpleOrders/easyMarketOrder" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "walletId": "9eb7f0bb-0f0b-4a2d-8d84-50f141d36241",
    "slug": "will-bitcoin-be-above-110k-on-april-5",
    "outcome": "Yes",
    "side": "BUY",
    "amount": 3,
    "orderType": "FOK"
  }'
Example Response
{
  "ok": true,
  "orderId": "0xc5b5...",
  "status": "matched",
  "latencyS": 1.81,
  "order": {
    "slug": "will-bitcoin-be-above-110k-on-april-5",
    "outcome": "Yes",
    "tokenId": "716340470000000000000000000000000000",
    "side": "BUY",
    "amount": 3,
    "negRisk": true
  }
}
Example Error
{
  "error": "Outcome "Up" not found",
  "availableOutcomes": ["Yes", "No"]
}
Protected route. Accepted API key transports: Authorization: Bearer <key>, X-Api-Key, or ?apiKey=
POSTAPI Key

Create Market Order From Token ID

The fastest market-order route when the caller already knows the tokenId.

Anchor
Path
https://api.vatic.trading/api/v1/simpleOrders/createMarketOrder
Notes
  • steps=1 uses the SDK combined create-and-post call.
  • steps=2 splits signing and posting into two SDK calls.
  • steps=3 is experimental and forces a boundary price to skip the orderbook lookup.
Contract
FieldLocationTypeRequiredDescription
walletIdbodyUUIDYesProvisioned trading wallet.
tokenIdbodystringYesPolymarket outcome token ID.
sidebody"BUY" | "SELL"YesOrder side.
amountbodynumberYesBUY spends USDC. SELL uses share amount.
negRiskbodybooleanNoIf omitted, the server auto-detects it via CLOB.
orderTypebody"FOK" | "FAK"NoDefaults to FOK.
stepsbody1 | 2 | 3NoExecution mode selector.
Example Request
curl -X POST "https://api.vatic.trading/api/v1/simpleOrders/createMarketOrder" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "walletId": "9eb7f0bb-0f0b-4a2d-8d84-50f141d36241",
    "tokenId": "716340470000000000000000000000000000",
    "side": "BUY",
    "amount": 2,
    "negRisk": true,
    "steps": 1
  }'
Example Response
{
  "ok": true,
  "orderId": "0x3b0a...",
  "status": "matched",
  "latencyS": 0.54,
  "steps": 1,
  "order": {
    "tokenId": "716340470000000000000000000000000000",
    "side": "BUY",
    "amount": 2,
    "negRisk": true,
    "negRiskSource": "provided"
  }
}
Example Error
{
  "ok": false,
  "error": "CLOB rejected order (status rejected)",
  "latencyS": 0.62,
  "order": {
    "tokenId": "716340470000000000000000000000000000",
    "side": "BUY",
    "amount": 2,
    "negRisk": true
  }
}
Protected route. Accepted API key transports: Authorization: Bearer <key>, X-Api-Key, or ?apiKey=
POSTAPI Key

Create Limit Order From Token ID

Places a GTC limit order using tokenId, price, and share size.

Anchor
Path
https://api.vatic.trading/api/v1/simpleOrders/createLimitOrder
Contract
FieldLocationTypeRequiredDescription
walletIdbodyUUIDYesProvisioned trading wallet.
tokenIdbodystringYesPolymarket outcome token ID.
sidebody"BUY" | "SELL"YesOrder side.
pricebodynumberYesLimit price from 0.01 to 0.99.
sizebodynumberYesNumber of shares.
negRiskbodybooleanNoIf omitted, the server auto-detects it.
expirationbodyunix timestampNoDefaults to 0, which means no expiry.
Example Request
curl -X POST "https://api.vatic.trading/api/v1/simpleOrders/createLimitOrder" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "walletId": "9eb7f0bb-0f0b-4a2d-8d84-50f141d36241",
    "tokenId": "716340470000000000000000000000000000",
    "side": "BUY",
    "price": 0.8,
    "size": 5,
    "negRisk": true
  }'
Example Response
{
  "ok": true,
  "orderId": "0x9d32...",
  "status": "live",
  "latencyS": 0.61,
  "order": {
    "tokenId": "716340470000000000000000000000000000",
    "side": "BUY",
    "price": 0.8,
    "size": 5,
    "negRisk": true,
    "negRiskSource": "provided",
    "expiration": 0
  }
}
Example Error
{
  "error": "price must be between 0.01 and 0.99"
}
Protected route. Accepted API key transports: Authorization: Bearer <key>, X-Api-Key, or ?apiKey=
GETAPI Key

List Open Orders

Returns open orders for the authenticated user’s provisioned trading wallet and forwards the usual Polymarket filters.

Anchor
Path
https://api.vatic.trading/api/v1/orders
Contract
FieldLocationTypeRequiredDescription
walletIdqueryUUIDYesProvisioned trading wallet.
marketquerystringNoCondition ID filter.
asset_idquerystringNoToken ID filter.
idquerystringNoSpecific order hash.
next_cursorquerystringNoCursor for pagination.
Example Request
curl "https://api.vatic.trading/api/v1/orders?walletId=9eb7f0bb-0f0b-4a2d-8d84-50f141d36241" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example Response
{
  "ok": true,
  "data": [
    {
      "id": "0xabc...",
      "status": "ORDER_STATUS_LIVE",
      "maker_address": "0x832c...",
      "asset_id": "71634047...",
      "side": "BUY",
      "price": "0.85"
    }
  ]
}
Example Error
{
  "error": "Invalid or revoked API key",
  "hint": "Generate a new key at https://api.vatic.trading/dashboard/api-keys"
}
Protected route. Accepted API key transports: Authorization: Bearer <key>, X-Api-Key, or ?apiKey=
Realtime

WebSocket push feed for window-open prices.

1 documented entries in this section.
WSPublic

Window-Open WebSocket Feed

Pushes the current and newly opened target windows to subscribers without polling.

Anchor
Path
wss://api.vatic.trading/ws
Notes
  • Connect to wss://api.vatic.trading/ws
  • On connect, the server emits a connected event with supported assets and market types.
  • On subscribe, the server also pushes an immediate snapshot for the current window.
Contract
FieldLocationTypeRequiredDescription
typemessage"subscribe" | "unsubscribe"YesWebSocket message type.
assetmessagestringNoRequired for subscribe.
marketTypesmessagestring[]NoOptional on subscribe. Defaults to all supported types.
Example Request
wscat -c "wss://api.vatic.trading/ws"
> {"type":"subscribe","asset":"btc","marketTypes":["5min","15min"]}
Example Response
{
  "event": "window_open",
  "asset": "btc",
  "marketType": "5min",
  "windowStart": 1775297700,
  "windowStartIso": "2026-04-04T10:15:00.000Z",
  "price": 107233.42,
  "source": "chainlink",
  "snapshot": true
}
Example Error
{
  "event": "error",
  "error": "No valid market types provided"
}