POST ?action=verify_login

Verifies a customer's credentials against their activation. Accepts either Xtream or editor credentials. Returns full account and subscription data, making it suitable as the authentication backend for a customer portal.

Request Parameters

username — string — Required. Xtream or editor username.

password — string — Required. Xtream or editor password.

You can send either xtream or editor credentials for authorization

Response Fields

activation_id — integer — Activation ID

username — string — Xtream username

customer_email — string — Customer email address

customer_name — string or null — Customer full name

status — string — active, trial_active, expired, or suspended

expiration_date — string or null — Expiration datetime (UTC)

activated_at — string or null — Activation datetime (UTC)

connection_type — string — m3u or mac

xtream_host — string — Resolved host URL

xtream_username — string — Xtream username

xtream_password — string — Xtream password

editor_username — string — Editor credential username (empty string if not configured)

editor_password — string — Editor credential password (empty string if not configured)

m3u_url — string — Generated M3U playlist URL

epg_url — string — Generated EPG URL

product — object or null — Linked product (see Product Object below)

bouquets — array — Assigned bouquet objects (see Bouquet Object below)

eligible_products — array — Products available for renewal based on current connection count, excluding the free trial product (see Product Object below)

Product Object

id — integer — Product ID

name — string — Product name

alternate_name — string or null — Alternate display name

price_decimal — float — Product price

currency — string — Currency code (e.g. USD)

duration_months — integer — Subscription duration in months

connections — integer — Number of simultaneous connections allowed

Bouquet Object

id — integer — Bouquet ID

name — string — Bouquet name

display_name — string or null — Customer-facing display name. Prefer this over "name" when available.

category — string — live, vod, or series

is_enabled — integer — 1 if enabled

Example

curl -X POST "https://YOUR_DOMAIN/api/api.php?action=verify_login" \
-H "X-Panelr-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"username": "demo_abc123", "password": "secret"}'