Skip to main content

Guide: Reading from GET Β· Conditions β†’

GET /points response

OpenAPI reference: GetAListOfScoreCampaigns β€” GET https://streaming.loyal.guru/points.

Typical use cases for integrations:

  • List active points/wallet campaigns (GET /points).
  • Filter by event type: ?when=manual returns only direct assignment campaigns (see Campaigns API).
  • Catalog by customer, country, or tier per query parameters when the API exposes them on the list.

List behavior (typical):

  • Only active campaigns (active: true) valid per available_from / available_to.
  • Pagination with starting_after / next_token_starts_after when the response includes it.

On this page​


Query parameters​

ParameterUsage
whenFilter by campaign event (e.g. manual for direct assignment).
customer_id / customer_codeCustomer catalog or eligibility when the endpoint supports it.
countriesFilter by registration country or scope.
tier_idCampaigns linked to a tier.
starting_afterPagination: token from the previous page.

See the current OpenAPI docs for the full filter list on GET /points.

Response wrapper​

FieldDescription
dataArray of campaign objects.
next_token_starts_afterToken for the next page (starting_after). Absent on the last page.

Rule fields in the response​

GET /points (list) and GET /points/{id} (detail) use the same names on the campaign object:

Response fieldTypical typeContent after parsing
rule_conditionsstring JSONconditions.and[] / conditions.or[] (or flat format on POST)
rule_applicationstring JSONapplication.and[] (internal key application)
rule_effectsstring JSONtype, value, distribution, limits, rule_group, …

Victory frequency and budget: once, once_limit, budget_value, budget_period β€” see Limits.

Internal structure vs field name: the API field is rule_application, but inside parsed JSON the root is usually application.and[].

Metadata per item in data[]​

BlockFieldsIntegration use
Identityid, name, descriptionCampaign ID and copy.
Eventwhenafter_create_activity (cart), after_create_custom_entity (custom event), configured trigger slug, or manual (direct assignment)
Currency / modecurrency, accrual_mode (if present)Currency of monetary rule_effects.value; points vs money for presentation. Requires that currency’s score_exchange to convert to points β€” see Effects.
Validityactive, available_from, available_to, recurrence_type, recurrence_daysWhether the campaign applies today.
Audienceselect_customers, customer_registration_countries, tiers[]loyalty or targeted only β€” all_customers does not apply to points (identified customer required). There is no semantic equivalent to discount campaign_audience=all_customers in points lists.
Activationactivation_period_type, activation_delayWhen accrued balance becomes available.
Expirationexpiration_period_type, availability_durationWhen accrued balance expires.
Victory limitsonce, once_limit, budget_value, budget_periodSee Limits.
Categorycategory (if present)Rule classification in Owner App.

Activation and expiration (balance lifecycle)​

After accrual, the customer may see balance in different states:

ConceptGET fields (typical)Integration
Activationactivation_period_type, activation_delayDelay until balance is usable (e.g. N days after the ticket).
Expirationexpiration_period_type, availability_durationFixed window or period when balance expires.

Product detail: Points Campaigns and expiration docs for your KB version.

API integration on ticket​

When creating or simulating a ticket (POST /activities or POST /activities/simulate), the apply_points flag on the payload controls whether that transaction evaluates points campaigns (default is usually true). See API integration.

Parsing: rule_conditions, rule_application, and rule_effects usually arrive as JSON strings. Deserialize before reading clauses.


Next: Conditions (rule_conditions)