{
data: { ... },
meta: {
generated_at,
filters_applied
}
}Quickstart
Sign in, make your first request, and understand the response envelope every SocialPulse endpoint shares.
1. Sign in
Every workspace is provisioned by invitation — there's no public self-signup. Once your account exists, sign in with your work email and password to receive a bearer token.
curl -X POST https://api.yourdomain.com/api/v1/tenant/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "you@yourcompany.com", "password": "••••••••"}'2. Use the access token
A successful login returns an access_token, its tenant_id and role, and a csrf_token. For server-to-server or script access, send the access token as a bearer header on every request.
curl https://api.yourdomain.com/api/v1/scorecard \
-H "Authorization: Bearer <access_token>"3. Read the response envelope
Every endpoint returns the same two-key shape: data holds the actual payload, meta carries request-level context like when it was generated and which filters were applied. This is consistent whether the payload is a single object, a list, or an analytics summary.
{
"data": { "...": "endpoint-specific payload" },
"meta": {
"generated_at": "2026-08-24T15:27:03.219846Z",
"filters_applied": {}
}
}4. Filter like the dashboard does
Analytics endpoints share one filter query shape across the whole API — the same filters your team applies in the dashboard's filter bar work identically over the API: date range, sources, topics, sentiment, intent, emotion, language, region, author, and brand, each as a plain query parameter (comma-separated for multi-value fields, e.g. ?topics=network,pricing).