Plugin Response Reference
The response variables can be accessed differently based on the plugin being used.
Reference
| allowed | type: bool 1 == content access allowed, 0 == content access denied |
| is_logged_in | type: bool 1 == logged in, 0 == logged out |
| paywalled | type: bool 1 == the page falls under a paywall rule, 0 == the page is free. A paywalled page can still be allowed, e.g. when the visitor subscribes or has meter left. |
| restricted | type: bool 1 == the page cannot be metered and requires access, e.g. it was passed free: 2 or is past its time meter. |
| registration_required | type: bool Returned as 1 when the page is registration-only content and the visitor is not signed in. Any signed-in account can read it. |
| meter_limit | type: int The preset meter limit before auth prompt happens. |
| meter | type: int The number of walled pages used. |
| content_expiration | type: date string [YYYY-mm-dd HH:ii:ss] The date and time the article's time meter expires based on the duration set in the Time Meter settings in Settings > Paywall Rules. Calculations are done based on the timezone set in your account from Settings > Environment. This will not return if no content date is passed to Pigeon or the time meter is disabled. |
| credits | type: int Signed-in readers only. The credits the reader has left: their plan's credit allowance for this billing cycle, or their credit balance when Credit Mode is on. Not returned when neither applies. |
| credit_mode | type: bool Returned as 1 when Credit Mode is on for your account. |
| content_value | type: int Credit Mode: the number of credits this page costs. |
| landing_page | type: string The Pigeon page path the paywall ruleset leads with, e.g. a combo bundle. Empty when the ruleset uses the standard offers page. |
| custom_promotion_page | type: string The custom promotion page URL set on the paywall ruleset. Empty when none is set. |
| complementary | type: bool Returned as 1 when Pigeon skipped this page, e.g. its URL is on your exception list. The content is shown. |
| special_access | type: bool Returned as 1 when the visitor was let through without a paywall check, such as an allowed search engine crawler or a whitelisted IP. |
| disabled | type: bool JavaScript SDK only. Returned as 1 when Pigeon could not be reached (for example, a timeout). The SDK fails open: allowed is 1 and the content is shown. |
| user_status (DEPRECATED) | type: bool Same as is_logged_in. Kept for backwards compatibility. |
| profile | type: object | null Returns the user's profile when logged in, null if not logged in. When the visitor has access through a group's IP range, profile holds the group instead (see profile.ip_access). |
| profile.display_name | type: string |
| profile.email | type: string |
| profile.customer_id | type: string The reader's Pigeon customer ID. |
| profile.internal_id | type: string The optional id from your system, often provided when accounts are imported from your internal fulfillment system. |
| profile.gender | type: string male or female |
| profile.dob | type: string Date of Birth |
| profile.status | type: bool 1 == enabled, 0 == disabled The person is authorized to see the content when enabled. |
| profile.temp_access | type: string Date when temporary access expires. |
| profile.subscription_trial_expires | type: string Date when the reader's trial expires, if they are on one. |
| profile.ip_access | type: bool 1 == accessing via a group's allowed IP range, 0 == not When 1, profile describes the group, and only ip_access, logged_in, parent_id, parent_name, status and plans are returned. |
| profile.logged_in | type: bool Group IP access only. 1 when the visitor is also signed in to their own account. |
| profile.extend_{cust_name} | Type: string | various Pigeon allows for custom profile fields. This data is passed back in the format 'extend_{name of the custom field}'. |
| profile.parent_id | Type: int If set is the parent or group id for current user |
| profile.parent_name | Type: string If set is the parent or group name for current user |
| profile.plans | Type: array | null A list of active plan(s) attached to the account. Returns null if the account has no active plans. Always check if (profile.plans) before iterating. |
| profile.plans[0].access_id | type: int Represents the plan id. Plans are attached to paywall rulesets, so this can be used to identify what access level the plan has. |
| profile.plans[0].plan_id | type: string The plan's public hash, as used in its permalink. |
| profile.plans[0].term_id | type: string Every plan contains terms (i.e., monthly or annual). This is the item number of the reader's term, as used in the term's permalink. |
| profile.plans[0].access_tag | type: string Plans can be grouped by access tags (e.g., sports could be tagged to multiple plans). 'default' when the plan has no tag. |
| profile.plans[0].name | type: string The name of the plan followed by the name of the term. |
| profile.plans[0].start | type: string (Y-m-d format) Date when the current plan started. |
| profile.plans[0].next | type: string (Y-m-d format) Date when the next action takes place. Depending on the plan type this could be renewal, expiration, or hand off to another plan. Empty for complimentary accounts. |
| profile.plans[0].cc_expire | type: string (m/Y format) The card expiration date if there is a card on the plan. |
| profile.plans[0].type | type: int 1 == Subscription, 2 == Trial, 3 == Complimentary |