openapi: 3.2.0 info: title: Publiq Events & places API version: '3.0' contact: name: publiq helpdesk email: technical-support@publiq.be url: https://docs.publiq.be x-refined-note: - x-source differs across the merged source definitions and was not carried description: 'Operations tagged Events & places across 2 of this provider''s published API definitions: uitdatabank-search.json, publiq-uitdatabank-search-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://search-test.uitdatabank.be description: Testing - description: Production url: https://search.uitdatabank.be tags: - name: Events & places paths: /events: parameters: [] get: summary: Search events tags: - Events & places responses: '200': description: A single page of search results. If `?embed=true` is used, the search results will contain the complete JSON details. Otherwise only `@id` and `@type` will be returned. content: application/json: schema: type: object properties: itemsPerPage: type: integer example: 30 description: The amount of results that is being returned per page. totalItems: type: integer example: 2345 description: Total amount of results for the given query parameters. member: type: array description: Search results (paginated). Note that the complete search results details will only be returned if `?embed=true` is used. Otherwise only the `@id` will be returned. items: $ref: ../models/event.json facet: type: object description: Facet counts per possible filter & value. properties: regions: $ref: ../models/common-facets.json types: $ref: ../models/common-facets.json themes: $ref: ../models/common-facets.json facilities: $ref: ../models/common-facets.json labels: $ref: ../models/common-facets.json required: - itemsPerPage - totalItems - member examples: Example: value: itemsPerPage: 20 totalItems: 3 member: - '@id': https://io-test.uitdatabank.be/events/7dc08012-488b-4e2b-b318-625d9bce03d7 '@type': Event - '@id': https://io-test.uitdatabank.be/events/c683ddfe-4ff9-4b4b-a198-b9f553cfc479 '@type': Event - '@id': https://io-test.uitdatabank.be/events/15d5de07-57e6-4015-84c6-e9c94ccfd9ef '@type': Event '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' operationId: get-events description: 'Returns a paginated list of events that match the given filters. ### Repeating query parameters Parameters that have the type `array[string]` and `[]` as a suffix in their name in the list of query parameters below can be repeated to filter on multiple values with an `AND` operator. For example: * `?labels[]=uitpas` to only include results that have the label `uitpas` * `?labels[]=uitpas&labels[]=paspartoe` to only include results that have both the labels `uitpas` and `paspartoe` Other `array[string]` parameters without the `[]` suffix support multiple comma-separated values for `OR` filtering. For example: * `?workflowStatus=DRAFT` to return all results with the draft workflow status. * `?workflowStatus=REJECTED,DELETED` to return results with the rejected or deleted workflow status. Add `embedCalendarSummaries` to have an extra property `calendarSummary` in the results that contains one or more formatted human-readable summaries of the date/time info of the result. See the guide about embedding the calendar summaries for more details.' parameters: - $ref: '#/components/parameters/x-client-id' - $ref: '#/components/parameters/x-api-key' - $ref: '#/components/parameters/text' - $ref: '#/components/parameters/q' - $ref: '#/components/parameters/postalCode' - $ref: '#/components/parameters/addressCountry' - $ref: '#/components/parameters/maxAge' - $ref: '#/components/parameters/minAge' - $ref: '#/components/parameters/allAges' - $ref: '#/components/parameters/audienceType' - $ref: '#/components/parameters/availableFrom' - $ref: '#/components/parameters/availableTo' - $ref: '#/components/parameters/attendanceMode' - $ref: '#/components/parameters/bookingAvailability' - $ref: '#/components/parameters/calendarType' - $ref: '#/components/parameters/createdFrom' - $ref: '#/components/parameters/createdTo' - $ref: '#/components/parameters/modifiedFrom' - $ref: '#/components/parameters/modifiedTo' - $ref: '#/components/parameters/contributors' - $ref: '#/components/parameters/creator' - $ref: '#/components/parameters/dateFrom' - $ref: '#/components/parameters/dateTo' - $ref: '#/components/parameters/localTimeFrom' - $ref: '#/components/parameters/localTimeTo' - $ref: '#/components/parameters/embed' - $ref: '#/components/parameters/embedCalendarSummaries' - $ref: '#/components/parameters/embedUitpasPrices' - $ref: '#/components/parameters/facets' - $ref: '#/components/parameters/groupBy' - $ref: '#/components/parameters/regions' - $ref: '#/components/parameters/coordinates' - $ref: '#/components/parameters/distance' - $ref: '#/components/parameters/bounds' - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/locationId' - $ref: '#/components/parameters/organizerId' - $ref: '#/components/parameters/labels' - $ref: '#/components/parameters/locationLabels' - $ref: '#/components/parameters/organizerLabels' - $ref: '#/components/parameters/mainLanguage' - $ref: '#/components/parameters/languages' - $ref: '#/components/parameters/completedLanguages' - $ref: '#/components/parameters/hasMediaObjects' - $ref: '#/components/parameters/price' - $ref: '#/components/parameters/minPrice' - $ref: '#/components/parameters/maxPrice' - $ref: '#/components/parameters/sortScore' - $ref: '#/components/parameters/sortAvailableTo' - $ref: '#/components/parameters/sortCreated' - $ref: '#/components/parameters/sortModified' - $ref: '#/components/parameters/sortDistance' - $ref: '#/components/parameters/status' - $ref: '#/components/parameters/termIds' - $ref: '#/components/parameters/uitpas' - $ref: '#/components/parameters/hasVideos' - $ref: '#/components/parameters/workflowStatusOffer' security: - CLIENT_IDENTIFICATION: [] - CLIENT_ACCESS_TOKEN: [] post: summary: Search events tags: - Events & places responses: '200': description: A single page of search results. If `?embed=true` is used, the search results will contain the complete JSON details. Otherwise only `@id` and `@type` will be returned. content: application/json: schema: type: object properties: itemsPerPage: type: integer example: 30 description: The amount of results that is being returned per page. totalItems: type: integer example: 2345 description: Total amount of results for the given query parameters. member: type: array description: Search results (paginated). Note that the complete search results details will only be returned if `?embed=true` is used. Otherwise only the `@id` will be returned. items: $ref: ../models/event.json facet: type: object description: Facet counts per possible filter & value. properties: regions: $ref: ../models/common-facets.json types: $ref: ../models/common-facets.json themes: $ref: ../models/common-facets.json facilities: $ref: ../models/common-facets.json labels: $ref: ../models/common-facets.json required: - itemsPerPage - totalItems - member examples: Example: value: itemsPerPage: 20 totalItems: 3 member: - '@id': https://io-test.uitdatabank.be/events/7dc08012-488b-4e2b-b318-625d9bce03d7 '@type': Event - '@id': https://io-test.uitdatabank.be/events/c683ddfe-4ff9-4b4b-a198-b9f553cfc479 '@type': Event - '@id': https://io-test.uitdatabank.be/events/15d5de07-57e6-4015-84c6-e9c94ccfd9ef '@type': Event '400': description: 'Bad Request. Possible error types: * https://api.publiq.be/probs/body/missing * https://api.publiq.be/probs/body/invalid-syntax * https://api.publiq.be/probs/body/invalid-data' content: application/problem+json: schema: $ref: '#/components/schemas/Error' examples: Example: value: type: https://api.publiq.be/probs/body/invalid-data title: Bad Request status: 400 '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '415': $ref: '#/components/responses/UnsupportedMediaType' operationId: post-events description: 'Returns a paginated list of events that match the given filters. This endpoint works the same as `GET` but accepts all parameters in the request body as a query string instead of as URL query parameters. This is useful when the amount of parameters would make the URL too long. The request body should use content type `text/plain` and be formatted as a query string (the same format as URL query parameters), for example: `postalCode=9000&labels[]=uitpas`. ### Repeating query parameters Parameters that have the type `array[string]` and `[]` as a suffix in their name in the request body can be repeated to filter on multiple values with an `AND` operator. For example: * `?labels[]=uitpas` to only include results that have the label `uitpas` * `?labels[]=uitpas&labels[]=paspartoe` to only include results that have both the labels `uitpas` and `paspartoe` Other `array[string]` parameters without the `[]` suffix support multiple comma-separated values for `OR` filtering. For example: * `?workflowStatus=DRAFT` to return all results with the draft workflow status. * `?workflowStatus=REJECTED,DELETED` to return results with the rejected or deleted workflow status. Add `embedCalendarSummaries` to have an extra property `calendarSummary` in the results that contains one or more formatted human-readable summaries of the date/time info of the result. See the guide about embedding the calendar summaries for more details.' parameters: - $ref: '#/components/parameters/x-client-id' - $ref: '#/components/parameters/x-api-key' requestBody: required: false description: 'All search parameters formatted as a query string, for example: `postalCode=9000&labels[]=uitpas`. Supports the same parameters as the `GET` variant of this endpoint.' content: text/plain: schema: type: string security: - CLIENT_IDENTIFICATION: [] - CLIENT_ACCESS_TOKEN: [] servers: - url: https://search-test.uitdatabank.be description: Testing - description: Production url: https://search.uitdatabank.be /offers: parameters: [] get: summary: Search events & places (offers) tags: - Events & places responses: '200': description: A single page of search results. If `?embed=true` is used, the search results will contain the complete JSON details. Otherwise only `@id` and `@type` will be returned. content: application/json: schema: type: object properties: itemsPerPage: type: integer example: 30 description: The amount of results that is being returned per page. totalItems: type: integer example: 2345 description: Total amount of results for the given query parameters. member: type: array description: Search results (paginated). Note that the complete search results details will only be returned if `?embed=true` is used. Otherwise only the `@id` and `@type` will be returned. items: anyOf: - $ref: ../models/event.json - $ref: ../models/place.json facet: type: object description: Facet counts per possible filter & value. properties: regions: $ref: ../models/common-facets.json types: $ref: ../models/common-facets.json themes: $ref: ../models/common-facets.json facilities: $ref: ../models/common-facets.json labels: $ref: ../models/common-facets.json required: - itemsPerPage - totalItems - member examples: Example: value: itemsPerPage: 20 totalItems: 3 member: - '@id': https://io-test.uitdatabank.be/events/7dc08012-488b-4e2b-b318-625d9bce03d7 '@type': Event - '@id': https://io-test.uitdatabank.be/places/c683ddfe-4ff9-4b4b-a198-b9f553cfc479 '@type': Place - '@id': https://io-test.uitdatabank.be/events/15d5de07-57e6-4015-84c6-e9c94ccfd9ef '@type': Event '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' operationId: get-offers description: 'Returns a paginated list of both events and places that match the given filters. ### Repeating query parameters Parameters that have the type `array[string]` and `[]` as a suffix in their name in the list of query parameters below can be repeated to filter on multiple values with an `AND` operator. For example: * `?labels[]=uitpas` to only include results that have the label `uitpas` * `?labels[]=uitpas&labels[]=paspartoe` to only include results that have both the labels `uitpas` and `paspartoe` Other `array[string]` parameters without the `[]` suffix support multiple comma-separated values for `OR` filtering. For example: * `?workflowStatus=DRAFT` to return all results with the draft workflow status. * `?workflowStatus=REJECTED,DELETED` to return results with the rejected or deleted workflow status.' parameters: - $ref: '#/components/parameters/x-client-id' - $ref: '#/components/parameters/x-api-key' - $ref: '#/components/parameters/text' - $ref: '#/components/parameters/q' - $ref: '#/components/parameters/postalCode' - $ref: '#/components/parameters/addressCountry' - $ref: '#/components/parameters/maxAge' - $ref: '#/components/parameters/minAge' - $ref: '#/components/parameters/allAges' - $ref: '#/components/parameters/audienceType' - $ref: '#/components/parameters/availableFrom' - $ref: '#/components/parameters/availableTo' - $ref: '#/components/parameters/attendanceMode' - $ref: '#/components/parameters/bookingAvailability' - $ref: '#/components/parameters/calendarType' - $ref: '#/components/parameters/createdFrom' - $ref: '#/components/parameters/createdTo' - $ref: '#/components/parameters/modifiedFrom' - $ref: '#/components/parameters/modifiedTo' - $ref: '#/components/parameters/contributors' - $ref: '#/components/parameters/creator' - $ref: '#/components/parameters/dateFrom' - $ref: '#/components/parameters/dateTo' - $ref: '#/components/parameters/localTimeFrom' - $ref: '#/components/parameters/localTimeTo' - $ref: '#/components/parameters/embed' - $ref: '#/components/parameters/embedCalendarSummaries' - $ref: '#/components/parameters/embedUitpasPrices' - $ref: '#/components/parameters/facets' - $ref: '#/components/parameters/groupBy' - $ref: '#/components/parameters/regions' - $ref: '#/components/parameters/coordinates' - $ref: '#/components/parameters/distance' - $ref: '#/components/parameters/bounds' - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/isDuplicate' - $ref: '#/components/parameters/locationId' - $ref: '#/components/parameters/organizerId' - $ref: '#/components/parameters/labels' - $ref: '#/components/parameters/locationLabels' - $ref: '#/components/parameters/organizerLabels' - $ref: '#/components/parameters/mainLanguage' - $ref: '#/components/parameters/languages' - $ref: '#/components/parameters/completedLanguages' - $ref: '#/components/parameters/hasMediaObjects' - $ref: '#/components/parameters/price' - $ref: '#/components/parameters/minPrice' - $ref: '#/components/parameters/maxPrice' - $ref: '#/components/parameters/sortScore' - $ref: '#/components/parameters/sortAvailableTo' - $ref: '#/components/parameters/sortCreated' - $ref: '#/components/parameters/sortModified' - $ref: '#/components/parameters/sortDistance' - $ref: '#/components/parameters/status' - $ref: '#/components/parameters/termIds' - $ref: '#/components/parameters/uitpas' - $ref: '#/components/parameters/hasVideos' - $ref: '#/components/parameters/workflowStatusOffer' security: - CLIENT_IDENTIFICATION: [] - CLIENT_ACCESS_TOKEN: [] post: summary: Search events & places (offers) tags: - Events & places responses: '200': description: A single page of search results. If `?embed=true` is used, the search results will contain the complete JSON details. Otherwise only `@id` and `@type` will be returned. content: application/json: schema: type: object properties: itemsPerPage: type: integer example: 30 description: The amount of results that is being returned per page. totalItems: type: integer example: 2345 description: Total amount of results for the given query parameters. member: type: array description: Search results (paginated). Note that the complete search results details will only be returned if `?embed=true` is used. Otherwise only the `@id` and `@type` will be returned. items: anyOf: - $ref: ../models/event.json - $ref: ../models/place.json facet: type: object description: Facet counts per possible filter & value. properties: regions: $ref: ../models/common-facets.json types: $ref: ../models/common-facets.json themes: $ref: ../models/common-facets.json facilities: $ref: ../models/common-facets.json labels: $ref: ../models/common-facets.json required: - itemsPerPage - totalItems - member examples: Example: value: itemsPerPage: 20 totalItems: 3 member: - '@id': https://io-test.uitdatabank.be/events/7dc08012-488b-4e2b-b318-625d9bce03d7 '@type': Event - '@id': https://io-test.uitdatabank.be/places/c683ddfe-4ff9-4b4b-a198-b9f553cfc479 '@type': Place - '@id': https://io-test.uitdatabank.be/events/15d5de07-57e6-4015-84c6-e9c94ccfd9ef '@type': Event '400': description: 'Bad Request. Possible error types: * https://api.publiq.be/probs/body/missing * https://api.publiq.be/probs/body/invalid-syntax * https://api.publiq.be/probs/body/invalid-data' content: application/problem+json: schema: $ref: '#/components/schemas/Error' examples: Example: value: type: https://api.publiq.be/probs/body/invalid-data title: Bad Request status: 400 '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '415': $ref: '#/components/responses/UnsupportedMediaType' operationId: post-offers description: 'Returns a paginated list of both events and places that match the given filters. ### Repeating query parameters Parameters that have the type `array[string]` and `[]` as a suffix in their name in the request body can be repeated to filter on multiple values with an `AND` operator. For example: * `?labels[]=uitpas` to only include results that have the label `uitpas` * `?labels[]=uitpas&labels[]=paspartoe` to only include results that have both the labels `uitpas` and `paspartoe` Other `array[string]` parameters without the `[]` suffix support multiple comma-separated values for `OR` filtering. For example: * `?workflowStatus=DRAFT` to return all results with the draft workflow status. * `?workflowStatus=REJECTED,DELETED` to return results with the rejected or deleted workflow status.' parameters: - $ref: '#/components/parameters/x-client-id' - $ref: '#/components/parameters/x-api-key' requestBody: required: false description: 'All search parameters formatted as a query string, for example: `postalCode=9000&labels[]=uitpas`. Supports the same parameters as the `GET` variant of this endpoint.' content: text/plain: schema: type: string security: - CLIENT_IDENTIFICATION: [] - CLIENT_ACCESS_TOKEN: [] servers: - url: https://search-test.uitdatabank.be description: Testing - description: Production url: https://search.uitdatabank.be /places: parameters: [] get: summary: Search places tags: - Events & places responses: '200': description: A single page of search results. If `?embed=true` is used, the search results will contain the complete JSON details. Otherwise only `@id` and `@type` will be returned. content: application/json: schema: type: object properties: itemsPerPage: type: integer example: 30 description: The amount of results that is being returned per page. totalItems: type: integer example: 2345 description: Total amount of results for the given query parameters. member: type: array description: Search results (paginated). Note that the complete search results details will only be returned if `?embed=true` is used. Otherwise only the `@id` will be returned. items: $ref: ../models/place.json facet: type: object description: Facet counts per possible filter & value. properties: regions: $ref: ../models/common-facets.json types: $ref: ../models/common-facets.json themes: $ref: ../models/common-facets.json facilities: $ref: ../models/common-facets.json labels: $ref: ../models/common-facets.json required: - itemsPerPage - totalItems - member examples: Example: value: itemsPerPage: 20 totalItems: 3 member: - '@id': https://io-test.uitdatabank.be/places/7dc08012-488b-4e2b-b318-625d9bce03d7 '@type': Place - '@id': https://io-test.uitdatabank.be/places/c683ddfe-4ff9-4b4b-a198-b9f553cfc479 '@type': Place - '@id': https://io-test.uitdatabank.be/places/15d5de07-57e6-4015-84c6-e9c94ccfd9ef '@type': Place '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' operationId: get-places description: 'Returns a paginated list of places that match the given filters. ### Repeating query parameters Parameters that have the type `array[string]` and `[]` as a suffix in their name in the list of query parameters below can be repeated to filter on multiple values with an `AND` operator. For example: * `?labels[]=uitpas` to only include results that have the label `uitpas` * `?labels[]=uitpas&labels[]=paspartoe` to only include results that have both the labels `uitpas` and `paspartoe` Other `array[string]` parameters without the `[]` suffix support multiple comma-separated values for `OR` filtering. For example: * `?workflowStatus=DRAFT` to return all results with the draft workflow status. * `?workflowStatus=REJECTED,DELETED` to return results with the rejected or deleted workflow status. Add `embedCalendarSummaries` to have an extra property `calendarSummary` in the results that contains one or more formatted human-readable summaries of the date/time info of the result. See the guide about embedding the calendar summaries for more details.' parameters: - $ref: '#/components/parameters/x-client-id' - $ref: '#/components/parameters/x-api-key' - $ref: '#/components/parameters/text' - $ref: '#/components/parameters/q' - $ref: '#/components/parameters/postalCode' - $ref: '#/components/parameters/addressCountry' - $ref: '#/components/parameters/maxAge' - $ref: '#/components/parameters/minAge' - $ref: '#/components/parameters/allAges' - $ref: '#/components/parameters/audienceType' - $ref: '#/components/parameters/availableFrom' - $ref: '#/components/parameters/availableTo' - $ref: '#/components/parameters/attendanceMode' - $ref: '#/components/parameters/bookingAvailability' - $ref: '#/components/parameters/calendarType' - $ref: '#/components/parameters/createdFrom' - $ref: '#/components/parameters/createdTo' - $ref: '#/components/parameters/embed' - $ref: '#/components/parameters/embedCalendarSummaries' - $ref: '#/components/parameters/embedUitpasPrices' - $ref: '#/components/parameters/modifiedFrom' - $ref: '#/components/parameters/modifiedTo' - $ref: '#/components/parameters/contributors' - $ref: '#/components/parameters/creator' - $ref: '#/components/parameters/dateFrom' - $ref: '#/components/parameters/dateTo' - $ref: '#/components/parameters/localTimeFrom' - $ref: '#/components/parameters/localTimeTo' - $ref: '#/components/parameters/facets' - $ref: '#/components/parameters/groupBy' - $ref: '#/components/parameters/regions' - $ref: '#/components/parameters/coordinates' - $ref: '#/components/parameters/distance' - $ref: '#/components/parameters/bounds' - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/isDuplicate' - $ref: '#/components/parameters/locationId' - $ref: '#/components/parameters/organizerId' - $ref: '#/components/parameters/labels' - $ref: '#/components/parameters/organizerLabels' - $ref: '#/components/parameters/mainLanguage' - $ref: '#/components/parameters/languages' - $ref: '#/components/parameters/completedLanguages' - $ref: '#/components/parameters/hasMediaObjects' - $ref: '#/components/parameters/price' - $ref: '#/components/parameters/minPrice' - $ref: '#/components/parameters/maxPrice' - $ref: '#/components/parameters/sortScore' - $ref: '#/components/parameters/sortAvailableTo' - $ref: '#/components/parameters/sortCreated' - $ref: '#/components/parameters/sortModified' - $ref: '#/components/parameters/sortDistance' - $ref: '#/components/parameters/status' - $ref: '#/components/parameters/termIds' - $ref: '#/components/parameters/uitpas' - $ref: '#/components/parameters/hasVideos' - $ref: '#/components/parameters/workflowStatusOffer' security: - CLIENT_IDENTIFICATION: [] - CLIENT_ACCESS_TOKEN: [] post: summary: Search places tags: - Events & places responses: '200': description: A single page of search results. If `?embed=true` is used, the search results will contain the complete JSON details. Otherwise only `@id` and `@type` will be returned. content: application/json: schema: type: object properties: itemsPerPage: type: integer example: 30 description: The amount of results that is being returned per page. totalItems: type: integer example: 2345 description: Total amount of results for the given query parameters. member: type: array description: Search results (paginated). Note that the complete search results details will only be returned if `?embed=true` is used. Otherwise only the `@id` will be returned. items: $ref: ../models/place.json facet: type: object description: Facet counts per possible filter & value. properties: regions: $ref: ../models/common-facets.json types: $ref: ../models/common-facets.json themes: $ref: ../models/common-facets.json facilities: $ref: ../models/common-facets.json labels: $ref: ../models/common-facets.json required: - itemsPerPage - totalItems - member examples: Example: value: itemsPerPage: 20 totalItems: 3 member: - '@id': https://io-test.uitdatabank.be/places/7dc08012-488b-4e2b-b318-625d9bce03d7 '@type': Place - '@id': https://io-test.uitdatabank.be/places/c683ddfe-4ff9-4b4b-a198-b9f553cfc479 '@type': Place - '@id': https://io-test.uitdatabank.be/places/15d5de07-57e6-4015-84c6-e9c94ccfd9ef '@type': Place '400': description: 'Bad Request. Possible error types: * https://api.publiq.be/probs/body/missing * https://api.publiq.be/probs/body/invalid-syntax * https://api.publiq.be/probs/body/invalid-data' content: application/problem+json: schema: $ref: '#/components/schemas/Error' examples: Example: value: type: https://api.publiq.be/probs/body/invalid-data title: Bad Request status: 400 '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '415': $ref: '#/components/responses/UnsupportedMediaType' operationId: post-places description: 'Returns a paginated list of places that match the given filters. This endpoint works the same as `GET` but accepts all parameters in the request body as a query string instead of as URL query parameters. This is useful when the amount of parameters would make the URL too long. The request body should use content type `text/plain` and be formatted as a query string (the same format as URL query parameters), for example: `postalCode=9000&labels[]=uitpas`. ### Repeating query parameters Parameters that have the type `array[string]` and `[]` as a suffix in their name in the request body can be repeated to filter on multiple values with an `AND` operator. For example: * `?labels[]=uitpas` to only include results that have the label `uitpas` * `?labels[]=uitpas&labels[]=paspartoe` to only include results that have both the labels `uitpas` and `paspartoe` Other `array[string]` parameters without the `[]` suffix support multiple comma-separated values for `OR` filtering. For example: * `?workflowStatus=DRAFT` to return all results with the draft workflow status. * `?workflowStatus=REJECTED,DELETED` to return results with the rejected or deleted workflow status. Add `embedCalendarSummaries` to have an extra property `calendarSummary` in the results that contains one or more formatted human-readable summaries of the date/time info of the result. See the guide about embedding the calendar summaries for more details.' parameters: - $ref: '#/components/parameters/x-client-id' - $ref: '#/components/parameters/x-api-key' requestBody: required: false description: 'All search parameters formatted as a query string, for example: `postalCode=9000&labels[]=uitpas`. Supports the same parameters as the `GET` variant of this endpoint.' content: text/plain: schema: type: string security: - CLIENT_IDENTIFICATION: [] - CLIENT_ACCESS_TOKEN: [] servers: - url: https://search-test.uitdatabank.be description: Testing - description: Production url: https://search.uitdatabank.be components: parameters: q: schema: type: string example: labels:"ook voor kinderen" OR labels:"ook voor jongeren" in: query name: q description: An advanced query in Lucene syntax, allowing you to construct complex AND/OR filters on specific fields. labels: schema: type: array items: type: string in: query name: labels[] style: form description: Returns only results that have the given label(s) in either their `labels` or `hiddenLabels` properties. May be repeated to only return results that have all the given labels. See the operation's description above for more info on how to repeat parameters. explode: true calendarType: schema: type: array items: type: string enum: - single - multiple - periodic - permanent style: form explode: false in: query name: calendarType description: Returns only results with the given enum value as their calendarType. Accepts multiple comma-separated values to return results that have one of the given calendar types. [Here is a detailed guide](./entry-api/shared/calendar-info#calendartype) with more information. hasMediaObjects: schema: type: boolean in: query name: hasMediaObjects description: Returns only results that have one or more items inside their `mediaObject` property if set to `true`. Returns only results without `mediaObject` property if set to `false`. dateTo: schema: type: string format: date-time example: '2022-03-05T10:30:00+01:00' in: query name: dateTo description: Returns only events that are happening at some point before the given date-time, and places that are open at some point before the given date-time. Permanent events or places are always returned by this parameter. locationId: schema: type: string example: a0368d10-ded0-4925-b94a-2835f73e255e in: query name: locationId description: Returns only results that are related to the given location id (= place id). A place's id can be extracted from its URI by taking all the characters after the last `/`. For example for the URI `https://io-test.uitdatabank.be/places/75573a64-ddc8-4fd0-8b07-d258939dd74f` the id is `75573a64-ddc8-4fd0-8b07-d258939dd74f`. Note that while it will be a UUID in most cases, it is not guaranteed to always be one! createdTo: schema: type: string format: date-time example: '2022-03-05T10:30:00+01:00' in: query name: createdTo description: Returns only results that were created at or before the given date-time. status: schema: type: array items: type: string enum: - Available - TemporarilyUnavailable - Unavailable in: query style: form explode: false name: status description: Returns only results with exactly the same status type as the given enum value. `Available` means an event is happening as planned, and a place can be visited during its normal opening hours. `TemporarilyUnavailable` means an event has been postponed to a later date (yet to be determined), and a place is temporarily closed (for example due to renovations). `Unavailable` means an event is cancelled, or a place is permanently closed. If combined with `dateFrom` and/or `dateTo`, only results that have the given status in that time period will be returned. Accepts multiple comma-separated values to return results that have one of the given status types. embedCalendarSummaries: schema: type: array items: type: string enum: - xs-text - sm-text - md-text - lg-text - xs-html - sm-html - md-html - lg-html in: query name: embedCalendarSummaries[] description: Adds an extra `calendarSummary` property to the results that contains one or more formatted human-readable summaries of the date/time info of the result. May be repeated to include multiple summaries per result. See the operation's description above for more info on how to repeat parameters. style: form explode: true price: schema: type: number example: 5.75 in: query name: price description: Returns only results with exactly the same price for the base tariff (in EUR). addressCountry: schema: type: string example: BE pattern: ^[A-Z][A-Z]$ default: BE in: query name: addressCountry description: Returns only results that have the exact same country code in their address. Formatted as an [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code. The default value can be disabled by setting the value to `*` or by using the `disableDefaultFilters` query parameter. locationLabels: schema: type: array items: type: string in: query name: locationLabels[] style: form description: Returns only results that have the given label(s) in their location's `labels` or `hiddenLabels` properties. May be repeated to only return results with a location that has all the given labels. See the operation's description above for more info on how to repeat parameters. explode: true localTimeTo: schema: type: string pattern: ^([01]\d|2[0123]):([012345]\d)$ example: '23:59' in: query name: localTimeTo description: Returns only events that are happening at some point before the given time, and places that are open at some point before the given time. Dates and timezones are not taken into account by this parameter. Permanent events or places are always returned by this parameter. modifiedTo: schema: type: string format: date-time example: '2022-03-05T10:30:00+01:00' in: query name: modifiedTo description: Returns only results that were last modified at or before the given date-time. If the result has never been modified, the `created` date-time will be used as `modified` instead. audienceType: schema: type: string enum: - everyone - members - education - '*' default: everyone in: query name: audienceType description: Returns only results with the given enum value as their targeted audience. Results with audienceType `everyone` are targeted to any participant/visitor. Results with audienceType `members` are only targeted towards members of the organizer of the event. Results with audienceType `education` are targeted towards [CultuurKuur](https://www.cultuurkuur.be/). modifiedFrom: schema: type: string format: date-time example: '2022-03-04T10:30:00+01:00' in: query name: modifiedFrom description: Returns only results that were last modified at or after the given date-time. If the result has never been modified, the `created` date-time will be used as `modified` instead. maxAge: schema: type: integer example: 18 in: query name: maxAge description: Returns only results that are targeted to participants/visitors of at most the given age (in years). The given age will be included in results. availableFrom: schema: type: string format: date-time example: '2022-03-04T10:30:00+01:00' in: query name: availableFrom description: Returns only results that should (still) be visible on online calendars after the given date-time. Defaults to the current date-time of the request. The default value can be disabled by setting the value to `*` or by using the `disableDefaultFilters` query parameter. See (the guide about default filters)[../docs/search-api/common-filters/default-filters.md] for more information. coordinates: schema: type: string pattern: ^[-+]?([1-8]?\d(\.\d+)?|90(\.0+)?),\s*[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)$ example: 50.8511740,4.338674 in: query name: coordinates description: A pair of latitude and longitude coordinates to find results that are located within a distance of the given geographical point. Must be used in combination with the `distance` parameter. termIds: schema: type: array items: type: string in: query name: termIds[] style: form description: Returns only results that have the given term id(s) in either their `terms` property items. May be repeated to only return results that have all the given term ids. See the operation's description above for more info on how to repeat parameters. explode: true localTimeFrom: schema: type: string pattern: ^([01]\d|2[0123]):([012345]\d)$ example: 08:30 in: query name: localTimeFrom description: Returns only events that are happening at some point after the given time, and places that are open at some point after the given time. Dates and timezones are not taken into account by this parameter. Permanent events or places are always returned by this parameter. sortCreated: schema: type: string enum: - asc - desc in: query name: sort[created] description: Sorts the results by their `created` date-time, either with the oldest results first (`asc`) or the newest results first (`desc`). See (the guide about sorting)[../docs/search-api/sorting.md] for more information. sortScore: schema: type: string enum: - asc - desc in: query name: sort[score] description: Sorts the results by their score (relevance), either with the lowest score first (`asc`) or the highest score first (`desc`). See (the guide about sorting)[../docs/search-api/sorting.md] for more information. minPrice: schema: type: number example: 5.75 in: query name: minPrice description: Returns only results with a price for the base tariff that is equal to or higher than the given price (in EUR). completedLanguages: schema: type: array items: type: string pattern: ^[a-z][a-z]$ enum: - nl - fr - de - en in: query name: completedLanguages[] style: form description: Returns only results that have a localised value in the given language for every translatable field. May be repeated to only return results that have localised values for all the given languages. See the operation's description above for more info on how to repeat parameters. explode: true distance: schema: type: string pattern: ^\s*(\d+\.?\d*)\s*(mi|miles|yd|yards|ft|feet|in|inch|km|kilometers|m|meters|cm|centimeters|mm|millimeters|NM|nmi|nauticalmiles)\s*$ example: 10km in: query name: distance description: Returns only results that are geographically located within the given distance from the `coordinates` parameter. creator: schema: type: string example: lxBfdgJwUaJUgm7CBCeKF2eE2fnsyLCB@clients in: query name: creator description: 'Returns only results that have a creator with the given user identifier. Due to historic reasons and evolutions in the id management systems, a user identifier can be one of: a UUID (for creators that had an UiTiD v1), an Auth0 user id (for new UiTiD v2 creators), or in some very old cases even an email address or nickname. (No new events or places are created with an email address or nickname as creator.) Can also be a client id suffixed with `@clients` in the case of results created with a client access token instead of a user access token.' postalCode: schema: type: string example: '1000' in: query name: postalCode description: Returns only results that have the exact same postal code in their address. Typically 4 digits for Belgian addresses but can also be a different format for international addresses. minAge: schema: type: integer example: 12 in: query name: minAge description: Returns only results that are targeted to participants/visitors of at least the given age (in years). The given age will be included in results. text: schema: type: string example: ' dijle (wandelen OR fietsen)' in: query name: text description: Free text search terms. Returns results that match all or some of the given terms. May contain `AND` and `OR` operators, and brackets for grouping. Can not filter on specific fields (contrary to the `q` parameter). Typically used to search on user-provided keywords. x-api-key: schema: type: string in: header name: x-api-key description: The API key of your project on https://projectaanvraag.uitdatabank.be (if not using a client id). May also be replaced with an `apiKey` query parameter. Will be deprecated in favour of `x-client-id` in the future, but will still be supported. deprecated: true regions: schema: type: array items: type: string in: query name: regions[] description: Returns only results that are geographically located in the given region. Regions may be fetched programmatically from [https://search.uitdatabank.be/autocomplete.json](https://search.uitdatabank.be/autocomplete.json). style: form explode: true workflowStatusOffer: schema: type: array items: type: string enum: - DRAFT - READY_FOR_VALIDATION - APPROVED - REJECTED - DELETED - '*' example: DRAFT style: form explode: false in: query name: workflowStatus description: Returns only results with exactly the same workflow status as the given enum value. Accepts multiple comma-separated values to return results that have one of the given workflow statuses. Defaults to only return results that either have the workflow status `READY_FOR_VALIDATION` or `APPROVED`. The default value can be reset by setting the parameter to `*`. See (the guide about default filters)[../docs/search-api/common-filters/default-filters.md] for more information. bookingAvailability: schema: type: string enum: - Available - Unavailable in: query name: bookingAvailability description: Returns only results with the given enum value as their bookingAvailability type. Results with bookingAvailability `Available` still have tickets/reservations available. Results with bookingAvailability `Unavailable` are sold out / fully booked. isDuplicate: schema: type: boolean in: query name: isDuplicate description: Returns only results that include or excludes duplicate places dateFrom: schema: type: string format: date-time example: '2022-03-04T10:30:00+01:00' in: query name: dateFrom description: Returns only events that are happening at some point after the given date-time, and places that are open at some point after the given date-time. Permanent events or places are always returned by this parameter. facets: schema: type: array items: type: string enum: - regions - types - themes - facilities - labels in: query name: facets[] description: Adds an extra `facet` property in the response with possible values for a given filter, and a prediction of the total results if applied. May be repeated to include facet counts for multiple filters. See the operation's description above for more info on how to repeat parameters. See (the guide about facets)[../docs/search-api/advanced/facets.md] for more information. style: form explode: true groupBy: schema: type: string enum: - productionId in: query name: groupBy description: Groups the results by their production. Grouping by productions ensures that for every production, only 1 event is returned in the search results bounds: schema: type: string example: 34.172684,-118.604794|34.236144,-118.500938 pattern: ^[-+]?([1-8]?\d(\.\d+)?|90(\.0+)?),\s*[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)\|[-+]?([1-8]?\d(\.\d+)?|90(\.0+)?),\s*[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)$ in: query name: bounds description: Returns only results that are located in a specific geographical area defined by a pair of south-west coordinates and north-east coordinates. The two pairs of coordinates are separated by a pipe character (`|`). contributors: schema: format: email type: string example: technical-support@publiq.be in: query name: contributors description: Returns results for which a particular user / email address is a contributor allAges: schema: type: boolean in: query name: allAges description: Returns only results that are suitable for participants/visitors of all ages if set to `true`, or only returns results that are suitable for a specific age group if set to `false`. hasVideos: schema: type: boolean in: query name: hasVideos description: Returns only results that have one or more items in their `videos` property if set to `true`. Returns only results that have no `videos` property if set to `false`. languages: schema: type: array items: type: string pattern: ^[a-z][a-z]$ enum: - nl - fr - de - en in: query name: languages[] style: form description: Returns only results that have a localised value in the given language for one or more translatable fields like `name`. May be repeated to only return results that have localised values for all the given languages. See the operation's description above for more info on how to repeat parameters. explode: true organizerId: schema: type: string example: 4fa5dddf-73d5-47f8-b54f-45d88cc1661a in: query name: organizerId description: Returns only results that are related to the given organizer id. An organizer's id can be extracted from its URI by taking all the characters after the last `/`. For example for the URI `https://io-test.uitdatabank.be/organizers/75573a64-ddc8-4fd0-8b07-d258939dd74f` the id is `75573a64-ddc8-4fd0-8b07-d258939dd74f`. Note that while it will be a UUID in most cases, it is not guaranteed to always be one! uitpas: schema: type: boolean in: query name: uitpas description: Returns only results that are related to UiTPAS if set to `true`. Returns only results that are not related to UiTPAS if set to `false`. maxPrice: schema: type: number in: query name: maxPrice description: Returns only results with a price for the base tariff that is equal to or lower than the given price (in EUR). embed: schema: type: boolean in: query name: embed description: Returns the results with the actual JSON bodies of the individual items attendanceMode: schema: type: array items: type: string enum: - online - offline - mixed in: query name: attendanceMode description: Returns only results with the given enum value as their attendance mode. Results with attendanceMode `online` are only happening online (e.g. via a video stream). Results with attendanceMode `offline` are only happening on a physical location. Results with attendanceMode `mixed` can be attended both online or offline. Note that when filtering on `mixed`, _only_ results that are both happening online and offline will be included. Accepts multiple comma-separated values to return results that have one of the given attendance modes. style: form explode: false x-client-id: schema: type: string in: header name: x-client-id description: The client id of your project (if not using an API key). May also be replaced with a `clientId` query parameter. availableTo: schema: type: string format: date-time example: '2022-03-05T10:30:00+01:00' in: query name: availableTo description: Returns only results that should be visible on online calendars up until the given date-time. Defaults to the current date-time of the request. The default value can be disabled by setting the value to `*` or by using the `disableDefaultFilters` query parameter. See (the guide about default filters)[../docs/search-api/common-filters/default-filters.md] for more information. organizerLabels: schema: type: array items: type: string in: query name: organizerLabels[] style: form description: Returns only results that have the given label(s) in their organizer's `labels` or `hiddenLabels` properties. May be repeated to only return results with an organizer that has all the given labels. See the operation's description above for more info on how to repeat parameters. explode: true sortDistance: schema: type: string enum: - asc - desc in: query name: sort[distance] description: Sorts the results by their distance from the `coordinates` parameter. Can only be used if `coordinates` and `distance` are also set. You may use multiple sort parameters. See (the guide about sorting)[../docs/search-api/sorting.md] for more information. mainLanguage: schema: type: string pattern: ^[a-z][a-z]$ enum: - nl - fr - de - en in: query name: mainLanguage description: Returns only results that have the given language code as their main (= original) language. sortModified: schema: type: string enum: - asc - desc in: query name: sort[modified] description: Sorts the results by their `modified` date-time, either with the least recently modified results first (`asc`) or the most recently modified results first (`desc`). See (the guide about sorting)[../docs/search-api/sorting.md] for more information. embedUitpasPrices: schema: type: boolean in: query name: embedUitpasPrices description: Returns the results with the UiTPAS prices included (if applicable) id: schema: type: string example: f29d2182-2db0-4f99-831a-8e6a64c1c9c1 in: query name: id description: Returns only results that have the exact same id. An id can be extracted from an event, place, or organizer URI by taking all the characters after the last `/`. For example for the URI `https://io-test.uitdatabank.be/events/75573a64-ddc8-4fd0-8b07-d258939dd74f` the id is `75573a64-ddc8-4fd0-8b07-d258939dd74f`. Note that while it will be a UUID in most cases, it is not guaranteed to always be one! sortAvailableTo: schema: type: string enum: - asc - desc in: query name: sort[availableTo] description: Sorts the results by their `availableTo` date-time, either with the oldest date-time first (`asc`) or the highest date-time first (`desc`). Most commonly used to show events and/or places that will end or become unavailable soon. See (the guide about sorting)[../docs/search-api/sorting.md] for more information. createdFrom: schema: type: string format: date-time example: '2022-03-04T10:30:00+01:00' in: query name: createdFrom description: Returns only results that were created at or after the given date-time. schemas: Error: $ref: https://raw.githubusercontent.com/cultuurnet/apidocs/main/projects/errors/models/Error.json common-facet: title: facet description: A single facet for a specific filter. Every facet has a human-readable name and total count to show to end-users to drill down search results. type: object properties: name: type: object title: name description: An internationalized name with one or more localized names. minProperties: 1 properties: nl: type: string title: name.localized description: A human-readable name in the `nl` (Dutch) language. minLength: 1 maxLength: 90 pattern: \S examples: - Example name fr: type: string title: name.localized description: A human-readable name in the `fr` (French) language. minLength: 1 maxLength: 90 pattern: \S examples: - Example name de: type: string title: name.localized description: A human-readable name in the `de` (German) language. minLength: 1 maxLength: 90 pattern: \S examples: - Example name en: type: string title: name.localized description: A human-readable name in the `en` (English) language. minLength: 1 maxLength: 90 pattern: \S examples: - Example name examples: - nl: Voorbeeld van een naam fr: Exemple d'un nom de: Beispiel eines Namens en: Example of a name count: type: integer description: Total results if the filter is applied with this value (= the key referencing this object). children: type: object description: Children facets, in the case of filters with a hierarchy. additionalProperties: $ref: '#/components/schemas/common-facet' required: - name - count examples: - name: nl: Vlaams-Brabant fr: Brabant Flamand en: Flemish Brabant count: 22 children: gem-leuven: name: nl: Leuven fr: Louvain count: 17 gem-diest: name: nl: Diest fr: Diest count: 5 Error_2: title: Error type: object description: RFC7807 error model for all publiq APIs. properties: type: type: string description: A URI reference that identifies the problem type. Can be used to recognize specific errors in your application code by comparing the complete URI. title: type: string description: A short, human-readable summary of the problem type (for developers). status: type: integer description: The HTTP status code. detail: type: string description: 'A human-readable explanation specific to this occurrence of the problem (for developers). ' endUserMessage: type: object description: A human-readable explanation of the problem, specifically for end-users, in one or more languages. Typically available for domain errors, but not for errors caused by a technical issue in the integration (for example invalid JSON syntax in a request body). An `nl` value is always provided, other languages may be provided depending on the API and its intended audience. When this property is included, it is strongly encouraged to show this to the end-user. properties: nl: type: string description: A human-readable explanation of the problem, specifically for end-users, localized in Dutch. fr: type: string description: A human-readable explanation of the problem, specifically for end-users, localized in French. de: type: string description: A human-readable explanation of the problem, specifically for end-users, localized in German. en: type: string description: A human-readable explanation of the problem, specifically for end-users, localized in English. required: - nl schemaErrors: type: array description: A list of one or more schema validation errors (usually used for error type https://api.publiq.be/probs/body/invalid-data). items: type: object properties: jsonPointer: type: string format: json-pointer description: RFC6901 compliant pointer that indicates what property/value was invalid. error: type: string description: A human-readable (but often technical) reason why the property was invalid. required: - jsonPointer - error required: - type - title - status x-internal: false responses: Forbidden: description: 'Forbidden. Your request was successfully authenticated but you do not have permission to perform this particular request. * type: https://api.publiq.be/probs/auth/forbidden * detail: might contain a developer-readable explanation of the reason' content: application/problem+json: schema: $ref: '#/components/schemas/Error' examples: Example: value: type: https://api.publiq.be/probs/auth/forbidden title: Forbidden status: 403 detail: user must be admin of organizer abcd1234 UnsupportedMediaType: description: The request does not work with the provided content-type. Check the detail to know which content-type you should use for this request. The `type` will always be `https://api.publiq.be/probs/body/unsupported-media-type`. content: application/problem+json: schema: $ref: '#/components/schemas/Error' examples: Example: value: type: https://api.publiq.be/probs/body/unsupported-media-type title: Unsupported Media Type status: 415 detail: POST requests require Content-Type text/plain. Unauthorized: description: 'Unauthorized. Your request is missing the required credentials to authenticate. See the Authentication documentation for more info. * type: https://api.publiq.be/probs/auth/unauthorized * detail: might contain a developer-readable explanation of the reason' content: application/problem+json: schema: $ref: '#/components/schemas/Error' examples: Example: value: type: https://api.publiq.be/probs/auth/unauthorized title: Unauthorized status: 401 NotFound: description: 'The requested resource (URL) could not be found. This can be due to one of multiple reasons: * The endpoint has a typo and/or does not exist on the API * One of the path parameters contains a value that is invalid or does not exist * One of the required query parameters is missing * One of the query parameters has an invalid value The `detail` property of the response should contain more specific information. The `type` will always be `https://api.publiq.be/probs/url/not-found`.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' examples: Example: value: type: https://api.publiq.be/probs/url/not-found title: URL not found status: 404 detail: The resource with id "76C6AC08-763C-492E-A68C-CBC43A857229" was not found. securitySchemes: USER_ACCESS_TOKEN: type: oauth2 flows: {} description: A user access token, obtained by redirecting the end user to publiq's authorization server to login using the **Authorization Code OAuth Flow**. See the [authentication docs about user access tokens](https://docs.publiq.be/docs/authentication/methods/client-access-token) for more info. CLIENT_ACCESS_TOKEN: type: oauth2 flows: {} description: A client access token, obtained by exchanging your client id and client secret for a token via an HTTP request to publiq's authorization server using the **Client Credentials OAuth Flow**. See the [authentication docs about client access tokens](https://docs.publiq.be/docs/authentication/methods/user-access-token) for more info. CLIENT_IDENTIFICATION: name: x-client-id type: apiKey in: header x-refined-from: - uitdatabank-search.json - publiq-uitdatabank-search-openapi.yml