API 문서
개요
Prediqt API는 예측 마켓에 대한 프로그래밍 방식의 접근을 제공합니다 — 주문 제출, 가격 조회, 포지션 관리, 실시간 데이터 스트리밍이 가능합니다. 모든 마켓 정산은 Polygon 온체인에서 이루어지며, API는 오프체인 주문 매칭과 데이터 조회를 처리합니다.
기본 URL: https://api.prediqt.com
대화형 Swagger UI는 https://api.prediqt.com/api-docs에서 이용할 수 있습니다. 모든 엔드포인트, 요청 본문, 응답 스키마가 문서화되어 있습니다.
인증
API는 세 가지 인증 방법을 지원합니다:
API 키
앱의 설정 페이지에서 API 키를 생성하세요. x-api-key 헤더로 전달합니다:
curl -H "x-api-key: pm_live_your_key_here" \
https://api.prediqt.com/marketsBearer 토큰 (Privy JWT)
웹 앱을 통해 인증하면 Privy JWT를 받게 됩니다. Authorization 헤더로 전달합니다:
curl -H "Authorization: Bearer <token>" \
https://api.prediqt.com/ordersEIP-191 서명
Privy 없이 지갑 기반 인증을 하려면, 타임스탬프가 포함된 메시지를 지갑으로 서명(EIP-191 개인 서명)하고 세 개의 헤더를 전송합니다:
x-address— 지갑 주소x-signature— 타임스탬프가 포함된 메시지의 EIP-191 개인 서명x-timestamp— Unix 타임스탬프 (리플레이 공격 방지를 위해 5분 이내여야 합니다)
curl -H "x-address: 0xYourWalletAddress" \
-H "x-signature: 0xSignatureHex" \
-H "x-timestamp: 1700000000" \
https://api.prediqt.com/orders공개 엔드포인트(마켓 목록, 가격, 거래)는 인증이 필요하지 않습니다. 인증이 필요한 엔드포인트(주문 조회, API 키 관리)는 위의 인증 방법 중 하나가 필요합니다.
REST 엔드포인트
마켓
GET /markets— 필터링 및 페이지네이션을 포함한 전체 마켓 목록 조회GET /markets/:id— 마켓 상세 정보 조회GET /markets/:id/candles— 가격 차트용 OHLCV 캔들 데이터GET /markets/:id/orderbook— 마켓의 호가창 깊이GET /markets/:id/trades— 마켓의 최근 거래GET /markets/:id/activity— 마켓의 활동 피드GET /markets/:id/holders— 마켓의 상위 보유자
주문
POST /orders— 서명된 새 주문 제출GET /orders— 인증된 사용자의 활성 주문 목록 조회GET /orders/:hash— 해시로 주문 상세 정보 조회DELETE /orders/:hash— 해시로 주문 취소POST /orders/batch— 단일 요청으로 여러 주문 제출DELETE /orders/batch— 해시로 여러 주문 취소DELETE /orders/cancel-all— 인증된 사용자의 모든 미체결 주문 취소DELETE /orders/market/:marketId— 특정 마켓의 모든 미체결 주문 취소GET /orders/nonce/:address— 주소의 현재 서명 논스 조회POST /orders/nonce— 논스를 증가시켜 이전 주문 일괄 취소
POST /orders는 주문 본문에 포함된 EIP-712 서명으로 자체 인증됩니다 — 이 엔드포인트에는 API 키나 Bearer 토큰이 필요하지 않습니다. 다른 인증 엔드포인트(주문 조회, 취소, API 키 관리)는 위의 인증 방법 중 하나가 필요합니다.
가격
GET /price— 단일 토큰 가격 조회GET /prices— 토큰 가격 일괄 조회GET /books— 호가창 데이터 일괄 조회GET /spread— 토큰의 매수-매도 스프레드 조회GET /midpoint— 토큰의 중간 가격 조회GET /tick-size— 틱 사이즈(최소 가격 단위) 조회
거래
GET /trades— 필터 및 페이지네이션을 포함한 전체 거래 목록 조회
인증
POST /auth/api-key— 새 API 키 생성GET /auth/api-key— 인증된 사용자의 API 키 목록 조회DELETE /auth/api-key/:id— API 키 폐기
이것은 핵심 거래 엔드포인트를 다룹니다. 사용자 프로필, 잔액, 이벤트, 리더보드, 댓글, 알림을 포함한 전체 API 레퍼런스는 대화형 Swagger 문서를 참조하세요.
WebSocket
실시간 데이터는 Socket.IO(원시 WebSocket이 아님)를 통해 전달됩니다. REST API와 동일한 기본 URL로 연결하세요:
import { io } from "socket.io-client";
const socket = io("https://api.prediqt.com");
// Subscribe to channels
socket.emit("subscribe", ["orderbook:market-id", "trades:market-id"]);
// Listen for updates
socket.on("orderbook", (data) => console.log(data));
socket.on("trade", (data) => console.log(data));채널
orderbook:{marketId}— 호가창 업데이트 (구독 시 스냅샷, 이후 델타)trades:{marketId}— 마켓의 거래 체결market:{marketId}— 마켓 가격 및 상태 업데이트price:{tokenId}— 개별 토큰 가격 업데이트user:{address}— 사용자 전용 업데이트를 위한 비공개 채널 (인증 필요)
인증 (WebSocket)
비공개 user: 채널을 구독하려면, 연결 후 인증하세요:
// EIP-191 signature auth
socket.emit("authenticate", {
address: "0x...",
signature: "0x...",
timestamp: Date.now(),
});
// Or Privy token auth
socket.emit("authenticate", { token: "privy-jwt-token" });
socket.on("authenticated", (data) => {
// Now you can subscribe to user channels
socket.emit("subscribe", ["user:0x..."]);
});요청 제한
주문 제출 엔드포인트(POST /orders 및 POST /orders/batch)는 남용 방지를 위해 엄격한 요청 제한이 있습니다. 요청 제한에 도달하면 429 Too Many Requests 응답을 받게 됩니다.
고빈도 작업의 경우, 배치 엔드포인트(POST /orders/batch, DELETE /orders/batch)를 사용하여 단일 요청으로 여러 주문을 제출하거나 취소하세요.
시작하기
- 계정 생성 — Prediqt 앱에 가입하고 로그인하세요.
- API 키 생성 — 설정에서 API 키를 생성하세요. 즉시 복사하세요; 다시 표시되지 않습니다.
- 마켓 조회 — 이용 가능한 마켓 목록을 조회합니다:
curl -H "x-api-key: pm_live_your_key_here" \
https://api.prediqt.com/markets- 가격 확인 — 토큰의 현재 가격을 조회합니다:
curl "https://api.prediqt.com/price?tokenId=TOKEN_ID"- 주문 제출 — 서명된 주문을 제출합니다 (주문은 EIP-712를 사용하여 지갑으로 서명해야 합니다):
curl -X POST https://api.prediqt.com/orders \
-H "Content-Type: application/json" \
-d '{
"order": { ... },
"signature": "0x..."
}'참고: POST /orders는 API 키나 Bearer 토큰이 필요하지 않습니다 — 요청 본문의 EIP-712 서명이 주문을 인증합니다.
전체 요청 및 응답 스키마는 대화형 Swagger 문서를 참조하세요.