REST API
公开的 REST 接口分布在三个主机上:一个用于功能开关与消息,一个用于事件采集,一个用于会话回放。每个主机都提供自己的 OpenAPI 文档。
| Host | Serves | OpenAPI |
|---|---|---|
| https://api.prodantix.com | Flags, messaging, GraphQL | https://api.prodantix.com/openapi.json |
| https://eu.api.prodantix.com | Event ingestion (EU) | https://eu.api.prodantix.com/openapi.json |
| https://eu.replay.prodantix.com | Session replay (EU) | https://eu.replay.prodantix.com/openapi.json |
身份验证
每个 REST 操作都接受项目密钥作为 Bearer 令牌。项目密钥仅对单个项目有效;切勿将私密密钥放入客户端代码中。
JSON
{
"Authorization": "Bearer <project key>"
}Operations
| Method | Path | Purpose |
|---|---|---|
| GET | /v1/flags | Evaluate every flag for a distinct id |
| GET | /v1/flags/snapshot | Fetch the project's full ruleset for local evaluation |
| GET | /v1/messages | Read a user's in-app inbox |
| POST | /v1/messages/read | Mark an in-app message read |
| POST | /v1/events | Ingest a batch of events |
| POST | /v1/identify | Identify a user and set traits |
| POST | /v1/group | Associate a user with a group |
| POST | /v1/replay | Upload a session replay chunk |
Evaluate flags for a user
curl "https://api.prodantix.com/v1/flags?distinct_id=u_8f3a" \
-H "Authorization: Bearer $PRODANTIX_KEY"const response = await fetch('https://api.prodantix.com/v1/flags?distinct_id=u_8f3a', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const flags = await response.json();final response = await http.get(
Uri.parse('https://api.prodantix.com/v1/flags?distinct_id=u_8f3a'),
headers: {'Authorization': 'Bearer $apiKey'},
);response = requests.get(
"https://api.prodantix.com/v1/flags",
params={"distinct_id": "u_8f3a"},
headers={"Authorization": f"Bearer {api_key}"},
)The three ingestion operations (/v1/events, /v1/identify, /v1/group) have their own reference: the Ingest API page carries the batch shape, the envelope rules and what a 202 does and does not promise.
OpenAPI 文档
每个主机在 /openapi.json 提供各自的操作。合并后的视图见本站的 API 参考页面。