SSO login (verify token, return session)
Overview
SSO callback: verifies the presented bearer token and returns the login session payload (user, company, theme, white-label). Used by the SPA after an SSO handoff. Returns 400 for an inactive account, and a 200 signup_pending status when email is unverified or signup is incomplete.
Prerequisites
- A bearer token in the
Authorizationheader.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
GET /api/v1/sso/rs-login
Authentication
-
Requires a bearer token in the
Authorization: Bearer <bearer-token>header. -
bearer token. Role: partner (
bundle_id=1) or account (bundle_id=3) user (plus one legacy admin). Any other role gets 403.
Rate limit
- No rate limit.
How it works
- 200 with
status/token/user/company/theme_options/white_label. 400 if the account is inactive. 403 if the user is neither a partner/account user nor the legacy admin.
Response
200 OK · 200
200{
"data": {
"status": "success",
"token": "<access-token>",
"user": {
"id": 3,
"username": "[email protected]",
"email": "[email protected]",
"email_verified_at": "2026-06-11T10:34:52.000000Z",
"phone_number": "123-456-7890",
"first_name": "John",
"last_name": "Doe",
"title": "Mr.",
"role": "Owner",
"total_location": 3,
"show_review_feed_widget": 0
},
"company": {
"id": 5,
"name": "Yelp partner",
"bundle_id": 1,
"company_option": {
"company_id": 5,
"who_will_pay": "partner",
"enable_generic_alert": false
}
},
"theme_options": "{\"mode\":\"system\",\"skin\":\"default\",\"primaryColor\":\"#f1874c\"}",
"white_label": {
"logo": "https://d2ny6zb7otrnhl.cloudfront.net/white-label/logo/example.png",
"white_url": "https://production.shoutaboutus.com",
"favicon": "https://d2ny6zb7otrnhl.cloudfront.net/white-label/favicon/example.png",
"title": "hipages",
"status": "active",
"login_logo": "",
"company_id": 5,
"email_templates_enabled": true
}
}
}200 Signup pending · 200
200{
"data": {
"status": "signup_pending",
"message": "Please complete signup process."
}
}400 Inactive account · 400
400{
"message": "Bad Request",
"status": "error",
"errors": {
"status": "error",
"message": "Your account is inactive. Please contact support for assistance.",
"path": "#"
}
}403 Forbidden (role not allowed) · 403
403{
"message": "Forbidden",
"status": "error",
"errors": "Response scribe brand/location user can access this portal."
}Errors
| Status | Meaning |
|---|---|
400 | Inactive account |
401 | The bearer token is missing, expired or invalid |
403 | Forbidden (role not allowed) |
500 | Unexpected server error |
Example request
curl --request GET \
--url "https://production-api.shoutaboutus.com/api/v1/sso/rs-login" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json'Updated 9 days ago
Did this page help you?
