Zum Inhalt springen
GET /v1/meta

Spec

Live testen

10 freie Calls pro Tag — keine Anmeldung, kein API-Key. Geht durchs oanor-Gateway.

Eigene Header (optional)
api.oanor.com/abtest-api

Funktioniert. Hol dir einen API-Key und nutze sie in deinem Projekt.

API-Key holen

Code-Snippets

curl "https://api.oanor.com/abtest-api/v1/meta" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/abtest-api/v1/meta", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/abtest-api/v1/meta");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
    "https://api.oanor.com/abtest-api/v1/meta",
    headers={"x-oanor-key": "oanor_test_..."}
)

Beispiel-Response

Echte Antwort dieses Endpoints, erfasst beim letzten Health-Check.

{
    "data": {
        "name": "A/B Bucketing API",
        "notes": "Hashing is FNV-1a (32-bit) with an avalanche mix, so buckets are uniform and stable across languages and machines. Bucketing and variant assignment use independent hash domains. This assigns experiments; to test whether a result is statistically significant use a statistics API. Nothing is stored.",
        "version": "v1",
        "endpoints": [
            {
                "path": "/v1/bucket",
                "params": {
                    "key": "the unit to bucket — user id, session, etc. (required)",
                    "buckets": "number of buckets (default 100)",
                    "experiment": "experiment/salt name so experiments are independent",
                    "percentage": "if set, also return enabled = inside this % rollout"
                },
                "returns": "the stable bucket (and rollout decision)"
            },
            {
                "path": "/v1/variant",
                "params": {
                    "key": "the unit (required)",
                    "variants": "JSON array of {name,weight}, \"a:50,b:50\", or \"a,b,c\" (equal weights)",
                    "experiment": "experiment/salt name"
                },
                "returns": "the assigned variant and the weight shares"
            },
            {
                "path": "/v1/meta",
                "params": [],
                "returns": "this document"
            }
        ],
        "description": "Deterministic A/B testing and feature-flag assignment — no database, no state. The bucket endpoint hashes a key (a user id, session or device) into a stable bucket (0…N-1) that never changes for the same key, and decides whether the key is inside a percentage rollout; raising the percentage only ever adds users, so a gradual ramp-up is sticky. The variant endpoint assigns one of several weighted variants (control/treatment, or any multivariate split) consistently for the same key. Mix in an experiment name so independent experiments bucket independently. The same inputs always give the same answer everywhere, so client and server agree without coordination. Pure local, no key."
    },
    "meta": {
        "timestamp": "2026-06-03T09:25:02.114Z",
        "request_id": "4d0d62b0-9f9e-40ef-b864-05d66529f6e6"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}