publiq · Schema
Reward
Reward model
CompanyCultureEventsLeisureBelgiumNon-ProfitOpen DataLoyalty Programs
Properties
| Name | Type | Description |
|---|---|---|
| id | string | ID of the reward |
| title | string | Title of the reward |
| type | string | Type of the reward |
| promotionalDescription | string | Promotion description |
| publicationPeriod | object | |
| points | number | Number of points needed to redeem the reward. Required for reward of type POINTS. |
| categories | array | List of categories of this reward. Required for reward of type POINTS. |
| moreInfoURL | string | URL where a user can find more info about this reward. Required for reward of type POINTS. |
| grantingPeriod | object | |
| owningCardSystem | object | |
| applicableCardSystems | array | List of CardSystems whose members can redeem this reward. |
| allCardSystems | boolean | If set to true, `applicableCardSystems` will always contain all UiTPAS CardSystems. |
| organizers | array | List of Organizers where this reward can be redeemed. |
| status | string | Status of this reward. |
| maxAvailableUnits | integer | Maximum (total) available units of this reward. |
| unitsTaken | integer | Number of rewards already redeemed. |
| practicalInfo | string | Practical info for passholders who want to redeem this reward. |
| pictures | array | List of URLs to zero or more images of this reward. |
| redeemPeriod | object | |
| forKids | boolean | true if this reward is specifically targetted to children. |
| sport | boolean | true if this is a sport reward |
| featured | boolean | true if this reward is currently set as 'featured' |
| online | boolean | true if this reward can be redeemed online |
| lastChance | boolean | true if this rewards will not be redeemable anymore in the near future |
| redeemConstraint | object | Defines how many times this reward can be redeemed by the same passholder in a specific period. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/publiq/main/json-schema/publiq-reward-schema.json",
"title": "Reward",
"description": "Reward model",
"x-generated": "2026-10-09",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/publiq-uitpas-openapi.yml#/components/schemas/Reward",
"type": "object",
"x-tags": [
"Models"
],
"properties": {
"id": {
"type": "string",
"description": "ID of the reward",
"readOnly": true
},
"title": {
"type": "string",
"description": "Title of the reward"
},
"type": {
"type": "string",
"description": "Type of the reward",
"enum": [
"POINTS",
"WELCOME"
]
},
"promotionalDescription": {
"type": "string",
"description": "Promotion description"
},
"publicationPeriod": {
"$ref": "#/$defs/Period"
},
"points": {
"type": "number",
"description": "Number of points needed to redeem the reward. Required for reward of type POINTS."
},
"categories": {
"type": "array",
"description": "List of categories of this reward. Required for reward of type POINTS.",
"items": {
"type": "string",
"enum": [
"Eten en drinken",
"Doen",
"Gadget of item",
"Goede doel"
]
}
},
"moreInfoURL": {
"type": "string",
"description": "URL where a user can find more info about this reward. Required for reward of type POINTS.",
"format": "uri"
},
"grantingPeriod": {
"$ref": "#/$defs/Period"
},
"owningCardSystem": {
"$ref": "#/$defs/CardSystem"
},
"applicableCardSystems": {
"type": "array",
"description": "List of CardSystems whose members can redeem this reward. ",
"items": {
"$ref": "#/$defs/CardSystem"
}
},
"allCardSystems": {
"type": "boolean",
"description": "If set to true, `applicableCardSystems` will always contain all UiTPAS CardSystems.",
"default": true
},
"organizers": {
"type": "array",
"description": "List of Organizers where this reward can be redeemed.",
"items": {
"$ref": "#/$defs/Organizer"
}
},
"status": {
"type": "string",
"enum": [
"ACTIVE",
"INACTIVE",
"DELETED"
],
"description": "Status of this reward.",
"readOnly": true
},
"maxAvailableUnits": {
"type": "integer",
"description": "Maximum (total) available units of this reward."
},
"unitsTaken": {
"type": "integer",
"description": "Number of rewards already redeemed.",
"readOnly": true
},
"practicalInfo": {
"type": "string",
"description": "Practical info for passholders who want to redeem this reward."
},
"pictures": {
"type": "array",
"description": "List of URLs to zero or more images of this reward.",
"items": {
"type": "string",
"format": "uri"
}
},
"redeemPeriod": {
"$ref": "#/$defs/Period"
},
"forKids": {
"type": "boolean",
"description": "true if this reward is specifically targetted to children."
},
"sport": {
"type": "boolean",
"description": "true if this is a sport reward"
},
"featured": {
"type": "boolean",
"description": "true if this reward is currently set as 'featured'"
},
"online": {
"type": "boolean",
"description": "true if this reward can be redeemed online"
},
"lastChance": {
"type": "boolean",
"description": "true if this rewards will not be redeemable anymore in the near future",
"readOnly": true
},
"redeemConstraint": {
"type": "object",
"description": "Defines how many times this reward can be redeemed by the same passholder in a specific period.",
"properties": {
"volume": {
"type": "integer",
"description": "The maximum number of times this reward can be redeemed by the same passholder."
},
"period": {
"type": "string",
"description": "The calendar period this volume constraint applies to:\n- `ABSOLUTE`: the constraint applies to any period.\n- `DAY`: the constraint applies from 00:00 to 23:59\n- `WEEK`: the constraint applies from Monday 00:00 to Sunday 23:59\n- `MONTH`: the constraint applies from the first of the month at 00:00 to the last day of the month 23:59\n- `QUARTER`: this constraint applies to the first day of the quarter to the last day: January-March, April-June, July-September, October-December.\n- `YEAR`: from the Jan 1st to Dec 31st",
"enum": [
"ABSOLUTE",
"DAY",
"WEEK",
"MONTH",
"QUARTER",
"YEAR"
]
}
},
"required": [
"volume",
"period"
]
}
},
"required": [
"title",
"type",
"promotionalDescription",
"publicationPeriod"
],
"$defs": {
"CardSystem": {
"title": "CardSystem",
"description": "A region, usually one or multiple municipalities in Belgium, that uses UiTPAS and provides discounts and/or rewards. For example \"Paspartoe\" (Brussels), UiTPAS Leuven, UiTPAS Hasselt, UiTPAS Gent, and so on.",
"type": "object",
"x-tags": [
"Models"
],
"properties": {
"id": {
"type": "integer",
"description": "ID of the card system"
},
"name": {
"type": "string",
"description": "Name of the card system. This field is always available in responses."
},
"branding": {
"type": "object",
"description": "Branding information of the card system",
"properties": {
"logo": {
"type": "string",
"description": "URL to the logo of the card system"
},
"primaryColor": {
"type": "string",
"description": "Color code of the primary branding color."
},
"secondaryColor": {
"type": "string",
"description": "Color code of the secondary branding color."
}
}
},
"links": {
"type": "object",
"description": "Links of the card system",
"properties": {
"website": {
"type": "string",
"description": "URL of the website of the card system"
}
}
},
"cities": {
"type": "array",
"description": "List of cities that are part of this card system",
"items": {
"$ref": "#/$defs/City"
}
},
"permanent": {
"type": "boolean",
"description": "Indicates whether this is a permanent card system"
},
"allowsCardlessRegistration": {
"type": "boolean",
"description": "Indicates if cardless registration is enabled"
},
"cardlessRegistrationType": {
"type": "string",
"description": "Indicates the types of online cardless registrations this cardsystem supports.",
"enum": [
"ALL",
"REGULAR",
"SOCIALTARIFF",
"NONE"
]
},
"socialTariffInfo": {
"type": "string",
"description": "Optional information about social tariff entitlement in this card system."
}
},
"required": [
"id"
]
},
"City": {
"title": "City",
"type": "object",
"x-tags": [
"Models"
],
"properties": {
"postalCode": {
"type": "string",
"description": "Postalcode of the city"
},
"name": {
"type": "string",
"description": "Name of the city"
}
},
"required": [
"postalCode",
"name"
]
},
"Organizer": {
"title": "Organizer",
"type": "object",
"description": "An organisation that partners with UiTPAS to provide discounts and/or rewards, and/or allows points to be collected at their events.",
"x-tags": [
"Models"
],
"properties": {
"id": {
"type": "string",
"description": "Unique ID of an UiTPAS organizer. (Same as its ID in UiTdatabank)"
},
"name": {
"type": "string",
"description": "Human-readable name of an UiTPAS organizer."
},
"cardSystems": {
"type": "array",
"description": "Card systems linked to this organizer",
"items": {
"$ref": "#/$defs/CardSystem"
}
},
"linkedLocationId": {
"type": "string",
"description": "ID of the location linked to this organizer.",
"readOnly": true
},
"address": {
"type": "object",
"description": "Address of this organizer. This property is alway available in responses.",
"required": [
"city"
],
"properties": {
"street": {
"type": "string",
"description": "Street address of this organizer"
},
"postalCode": {
"type": "string",
"description": "Postal code of this organizer"
},
"city": {
"type": "string",
"description": "City of this organizer"
}
},
"readOnly": true
}
},
"required": [
"id"
]
},
"Period": {
"title": "Period",
"type": "object",
"x-tags": [
"Models"
],
"description": "Period entity with a begin and optional end date.",
"properties": {
"begin": {
"type": "string",
"format": "date-time",
"description": "Start date of the period (inclusive)."
},
"end": {
"type": "string",
"format": "date-time",
"description": "End date of the period (inclusive)."
}
},
"required": [
"begin"
]
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/publiq-reward"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.