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}"},
)Ingest an event
curl -X POST "https://eu.api.prodantix.com/v1/events" \
-H "Authorization: Bearer $PRODANTIX_KEY" \
-H "Content-Type: application/json" \
-d '{"batch":[{"distinct_id":"u_8f3a","name":"order.completed","properties":{"amount":4200}}]}'await fetch('https://eu.api.prodantix.com/v1/events', {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
batch: [{ distinct_id: 'u_8f3a', name: 'order.completed' }],
}),
});final response = await http.post(
Uri.parse('https://eu.api.prodantix.com/v1/events'),
headers: {
'Authorization': 'Bearer $apiKey',
'Content-Type': 'application/json',
},
body: jsonEncode({
'batch': [
{'distinct_id': 'u_8f3a', 'name': 'order.completed'}
]
}),
);response = requests.post(
"https://eu.api.prodantix.com/v1/events",
headers={"Authorization": f"Bearer {api_key}"},
json={"batch": [{"distinct_id": "u_8f3a", "name": "order.completed"}]},
)स्वीकृत का अर्थ संग्रहीत नहीं है
इनजेशन ऑपरेशन 202 लौटाते हैं। इसका अर्थ है कि इवेंट प्रोसेसिंग के लिए स्वीकार किया गया, न कि संग्रहीत हुआ। ग़लत बनावट वाला इवेंट पाइपलाइन में बाद में छोड़ा जा सकता है।
OpenAPI दस्तावेज़
हर होस्ट अपने ऑपरेशन /openapi.json पर देता है। संयुक्त दृश्य इस साइट का API संदर्भ पृष्ठ है।