Running load tests against Meridian - what's allowed, rate limits, temporary quotas, and how to structure a test.
You may load test against Meridian - in the test environment only. This page covers the rules and how to structure a meaningful test.
mrnd_test_ keys exclusively - live keys are never for load generation.X-Load-Test: <name> header so our ops team can distinguish your traffic from abuse patterns.For sustained tests above 600 req/min, contact support 3+ business days ahead with:
Approved bumps are temporary (typically 4–24h) and apply to your test environment only.
Create the projects/keys your test needs via /v2/simulate or a seed script - don't create resources inside the measured loop.
meridian projects create --file fixtures/load-test.jsonRamp over 1–2 minutes before taking numbers - cold-start latencies distort results. Keep the measurement window ≥5 minutes for stable percentiles.
X-RateLimit-Remaining and Retry-After tell you when you're brushing the quota - a load test should measure your bottleneck, not ours.
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 41
X-RateLimit-Reset: 1726570000Archive test projects after the run - test data purges in 30 days anyway, but tidy fixtures keep dashboards readable.
Standard tools work fine against the REST API:
k6 run - <<'EOF'
import http from 'k6/http';
export const options = { vus: 20, duration: '5m' };
export default function () {
http.get('https://api.meridian.dev/v2/projects', {
headers: {
Authorization: `Bearer ${__ENV.MERIDIAN_API_KEY}`,
'X-Load-Test': 'k6-baseline',
},
});
}
EOFecho "GET https://api.meridian.dev/v2/projects" | \
vegeta attack -rate=10/s -duration=5m \
-header="Authorization: Bearer $MERIDIAN_API_KEY" \
-header="X-Load-Test: vegeta-baseline" | \
vegeta report429/5xx means you're above quota or hitting a real issue.Load-testing your receiver: use /v2/simulate/deliveries to fan out test events at rate, or point several endpoints at the same URL. Deliveries in test are rate-limited the same as live, so the distribution is representative.