Skip to main content
POST
/
publisher
/
{publisher_id}
/
reader
/
login
Login
curl --request POST \
  --url https://cms.thepublive.com/publisher/{publisher_id}/reader/login/ \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "email": "<string>",
  "password": "<string>",
  "g-recaptcha-response": "<string>",
  "client": "<string>"
}
'
{
  "status": "ok",
  "message": "User sign in success",
  "token": "abc123def456",
  "user_id": 42,
  "email": "alice@example.com"
}
Authenticates a reader and returns an opaque session token. Supports two flows — email/password and OAuth (Google, Facebook) — on the same endpoint. The active flow is determined by the presence of the client field.
publisher_id
string
required
Your Publisher ID
Use Content-Type: application/json for OAuth logins. For email/password, both application/json and form encoding are accepted.
Email / password flow — omit client
email
string
required
Reader’s email address. Normalized to lowercase before forwarding.
password
string
required
Reader’s password.
g-recaptcha-response
string
reCAPTCHA token from the client widget. Only applicable to this flow. Required when your publisher has a login_captcha.secret_key configured.
OAuth flow — include client to switch to this path. password is not accepted in this flow.
client
string
OAuth provider. Accepted values: google, facebook. Presence of this field activates the OAuth flow.
email
string
Email from the OAuth provider. Required when using OAuth. Normalized to lowercase.
FieldTypeDescription
substringGoogle subject identifier
namestringFull name
given_namestringFirst name
family_namestringLast name
picturestringProfile photo URL
email_verifiedbooleanWhether Google has verified the email
hdstringHosted domain (G Suite accounts)
The full raw body is forwarded to the backend as JSON.
FieldTypeDescription
idstringFacebook user ID
namestringFull name
first_namestringFirst name
last_namestringLast name
pictureobjectProfile picture object
The full raw body is forwarded to the backend as JSON.
{
  "status": "ok",
  "message": "User sign in success",
  "token": "abc123def456",
  "user_id": 42,
  "email": "alice@example.com"
}
Last modified on June 5, 2026