Create a one-time client portal sign-in link
Mints a single-use, five-minute link that signs an ALREADY INVITED reviewer in to this brand review page, so your own client portal can skip the emailed code.
Server side only. The key must have been granted "Create client portal sign-in links" in /dashboard/api; browser session calls are refused with api_key_required, and the scope can never be inherited or requested through POST /api/v1/api-keys. The caller must be an owner or admin of the brand workspace at the time of the call, the workspace owner plan must include guest reviewers, and the reviewer must be currently invited to this brand.
Redirect the browser to url straight away and never store it. The reviewer sees a one-click confirmation screen naming their (masked) address and the brand. The session it opens covers only this brand and lasts 12 hours without extending. Approvals made this way are labelled in the activity history, in approval webhooks (data.signed_in_via), and in the client own review history. If this call fails for any reason, fall back to the permanent review page link.
Error codes: api_key_required (403, session auth), insufficient_scope (403, key lacks review_links:write), insufficient_role (403, not an owner or admin of the brand workspace), plan_required (403, workspace owner plan has no guest reviewers), brand_not_found (404), reviewer_not_found (404), content_plan_not_found (404), validation_error (400), rate_limited (429), portal_links_unavailable (503).
Request
- Base URL: https://www.poster.ly
- URL: https://www.poster.ly/api/v1/brands/{id}/review-links
- Auth: HTTP bearer
Path parameters
Brand ID
Request body
Example request
{
"reviewer_email": "reviewer@clientcompany.com",
"content_plan_id": "0a3b1f0e-4d2c-4a1a-9a3f-9b1d2c3e4f50"
}Response
Sign-in link created. The token is returned exactly once.
Example response
{
"url": "https://www.poster.ly/api/client-review/auth/portal?token=REDACTED",
"expires_at": "2026-09-20T12:05:00.000Z",
"expires_in_seconds": 300,
"single_use": true,
"reviewer": {
"email": "reviewer@clientcompany.com",
"display_name": "Sam"
},
"brand_id": "9f6d99a4-b0e0-4ee0-8949-6a87786a52cc",
"content_plan_id": "0a3b1f0e-4d2c-4a1a-9a3f-9b1d2c3e4f50"
}Changes
No recorded changes to this operation across all 1 revision of this API.