Developer docs
ProofGateway Testimonials API v1
Read-only API for approved testimonials. Use it to fetch proof into your own apps, CMS, automations, or custom front-end experiences.
Access
Read-only
Scope
One workspace per key
Use case
Custom websites, server-side rendering, internal tools, and automation workflows.
Overview
- Read-only — list and fetch approved customer proof only
- Approved-only — v1 does not expose pending or rejected customer proof
- Workspace-scoped — each API key is tied to one workspace
Authentication
Create an API key from Dashboard → API Keys. You will see the raw key once at creation, so copy it immediately and store it securely.
Use either header:
Authorization: Bearer pg_live_xxxxx
X-API-Key: pg_live_xxxxxEndpoints
Base URL: your deployment URL, for example `https://proofgateway.com`.
List testimonials
GET /api/v1/testimonialsQuery params: limit (default 20, max 100), offset (0), sort (created_at|updated_at), order (asc|desc), rating (1–5), has_video (true|false)
curl -H "Authorization: Bearer YOUR_KEY" \
"https://proofgateway.com/api/v1/testimonials?limit=10"Get single testimonial
GET /api/v1/testimonials/:idcurl -H "X-API-Key: YOUR_KEY" \
"https://proofgateway.com/api/v1/testimonials/UUID"Response shape
{
"id": "uuid",
"name": "Jane Doe",
"role_company": "Acme Inc",
"body": "Great product!",
"rating": 5,
"video_url": null,
"video_thumbnail": null,
"created_at": "2024-01-15T12:00:00.000Z",
"updated_at": "2024-01-15T12:00:00.000Z"
}List endpoint returns: { "data": [...], "pagination": { "limit", "offset", "count" } }
Errors
All errors return { "error": { "code": "...", "message": "..." } }
- 400 invalid_request — Bad query params
- 401 unauthorized — Missing or invalid API key
- 404 not_found — Testimonial not found
- 429 rate_limit_exceeded — 100 req/min per workspace
- 500 internal_error
Security
- Use API keys only from your backend — server, serverless function, or Next.js server component.
- Never log or expose your raw API key.
- Revoke keys immediately if compromised.
- Keys are hashed; the raw key is shown only at creation.
- Rate limit is 100 requests per minute per workspace.