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 | 
| user_status | type:bool 1 == logged in, 0 == logged out | 
| 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. | 
| profile | type: object / array Profile returns when a person is logged in. Empty array if not logged in. | 
| profile.display_name | type: string | 
| 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.ip_access | type: bool 1 == accessing via allowed IP, 0 == not | 
| 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 A list of active plan(s) attached to the account. This is empty if plans have been canceled or expired out. | 
| 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].term_id | type: int Every plan id contains a term (i.e., monthly or annual). This is the specific term id of the plan. | 
| profile.plans[0].access_tag | type: string Plans can be grouped by access tags (e.g., sports could be tagged to multiple plans). | 
| profile.plans[0].name | type: string The name of the plan and term (separated by a hyphen '-'). | 
| 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 |