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.
View JSON Schema on GitHub

JSON Schema

publiq-reward-schema.json Raw ↑
{
  "$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.
All 92 tools →

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.