openapi: 3.2.0 info: title: Piknik.Spot Admin API description: Piknik.Spot API with OAuth2 authentication, Model Context Protocol (MCP) support, and Agent-to-Agent (A2A) capabilities for AI-powered local food system interactions. version: 1.0.0 contact: name: Piknik.Spot API Support url: https://piknik.spot email: info@piknik.spot license: name: Proprietary url: https://piknik.spot/terms servers: - url: https://piknik.spot/api description: Production Server - url: http://localhost:3000/api description: Development Server tags: - name: Admin paths: /admin/agent-settings: get: summary: GET /admin/agent-settings description: Endpoint for /admin/agent-settings tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminAgentSettings x-operation-id-source: derived put: summary: PUT /admin/agent-settings description: Endpoint for /admin/agent-settings tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: putAdminAgentSettings x-operation-id-source: derived /admin/announcements/cleanup: post: summary: POST /admin/announcements/cleanup description: Endpoint for /admin/announcements/cleanup tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminAnnouncementsCleanup x-operation-id-source: derived get: summary: GET /admin/announcements/cleanup description: Endpoint for /admin/announcements/cleanup tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminAnnouncementsCleanup x-operation-id-source: derived /admin/associations/{id}/memberships/bulk: post: summary: POST /admin/associations/{id}/memberships/bulk description: Endpoint for /admin/associations/{id}/memberships/bulk tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier requestBody: required: true content: application/json: schema: type: object operationId: postAdminAssociationsByIdMembershipsBulk x-operation-id-source: derived /admin/associations/{id}/memberships: get: summary: GET /admin/associations/{id}/memberships description: Endpoint for /admin/associations/{id}/memberships tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: getAdminAssociationsByIdMemberships x-operation-id-source: derived delete: summary: DELETE /admin/associations/{id}/memberships description: Endpoint for /admin/associations/{id}/memberships tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: deleteAdminAssociationsByIdMemberships x-operation-id-source: derived patch: summary: PATCH /admin/associations/{id}/memberships description: Endpoint for /admin/associations/{id}/memberships tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier requestBody: required: true content: application/json: schema: type: object operationId: patchAdminAssociationsByIdMemberships x-operation-id-source: derived /admin/associations/{id}: get: summary: GET /admin/associations/{id} description: Endpoint for /admin/associations/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: getAdminAssociationsById x-operation-id-source: derived put: summary: PUT /admin/associations/{id} description: Endpoint for /admin/associations/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier requestBody: required: true content: application/json: schema: type: object operationId: putAdminAssociationsById x-operation-id-source: derived delete: summary: DELETE /admin/associations/{id} description: Endpoint for /admin/associations/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: deleteAdminAssociationsById x-operation-id-source: derived /admin/associations/{id}/surveys: get: summary: GET /admin/associations/{id}/surveys description: Endpoint for /admin/associations/{id}/surveys tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: getAdminAssociationsByIdSurveys x-operation-id-source: derived post: summary: POST /admin/associations/{id}/surveys description: Endpoint for /admin/associations/{id}/surveys tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier requestBody: required: true content: application/json: schema: type: object operationId: postAdminAssociationsByIdSurveys x-operation-id-source: derived /admin/associations: get: summary: GET /admin/associations description: Endpoint for /admin/associations tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: page in: query schema: type: string description: page parameter - name: limit in: query schema: type: integer description: Maximum number of results - name: search in: query schema: type: string description: Search query string - name: category in: query schema: type: string description: category parameter operationId: getAdminAssociations x-operation-id-source: derived post: summary: POST /admin/associations description: Endpoint for /admin/associations tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: page in: query schema: type: string description: page parameter - name: limit in: query schema: type: integer description: Maximum number of results - name: search in: query schema: type: string description: Search query string - name: category in: query schema: type: string description: category parameter requestBody: required: true content: application/json: schema: type: object operationId: postAdminAssociations x-operation-id-source: derived /admin/associations/verification-queue: get: summary: GET /admin/associations/verification-queue description: Endpoint for /admin/associations/verification-queue tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: page in: query schema: type: string description: page parameter - name: limit in: query schema: type: integer description: Maximum number of results operationId: getAdminAssociationsVerificationQueue x-operation-id-source: derived /admin/associations/verify/{membershipId}: put: summary: PUT /admin/associations/verify/{membershipId} description: Endpoint for /admin/associations/verify/{membershipId} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: membershipId in: path required: true schema: type: string description: membershipId identifier requestBody: required: true content: application/json: schema: type: object operationId: putAdminAssociationsVerifyByMembershipId x-operation-id-source: derived /admin/campaign-batch: post: summary: POST /api/admin/campaign-batch tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminCampaignBatch x-operation-id-source: derived /admin/campaign-status: get: summary: GET /admin/campaign-status description: Endpoint for /admin/campaign-status tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminCampaignStatus x-operation-id-source: derived /admin/categories/{id}: get: summary: GET /admin/categories/{id} description: Endpoint for /admin/categories/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: getAdminCategoriesById x-operation-id-source: derived patch: summary: PATCH /admin/categories/{id} description: Endpoint for /admin/categories/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier requestBody: required: true content: application/json: schema: type: object operationId: patchAdminCategoriesById x-operation-id-source: derived delete: summary: DELETE /admin/categories/{id} description: Endpoint for /admin/categories/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: deleteAdminCategoriesById x-operation-id-source: derived /admin/categories/reorder: post: summary: POST /api/admin/categories/reorder tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminCategoriesReorder x-operation-id-source: derived /admin/categories: get: summary: GET /admin/categories description: Endpoint for /admin/categories tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminCategories x-operation-id-source: derived post: summary: POST /admin/categories description: Endpoint for /admin/categories tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminCategories x-operation-id-source: derived /admin/event-sources/{id}: get: summary: GET /admin/event-sources/{id} description: Endpoint for /admin/event-sources/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: getAdminEventSourcesById x-operation-id-source: derived put: summary: PUT /admin/event-sources/{id} description: Endpoint for /admin/event-sources/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier requestBody: required: true content: application/json: schema: type: object operationId: putAdminEventSourcesById x-operation-id-source: derived delete: summary: DELETE /admin/event-sources/{id} description: Endpoint for /admin/event-sources/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: deleteAdminEventSourcesById x-operation-id-source: derived /admin/event-sources: get: summary: GET /admin/event-sources description: Endpoint for /admin/event-sources tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: activeOnly in: query schema: type: string description: activeOnly parameter - name: limit in: query schema: type: integer description: Maximum number of results - name: offset in: query schema: type: integer description: Pagination offset operationId: getAdminEventSources x-operation-id-source: derived post: summary: POST /admin/event-sources description: Endpoint for /admin/event-sources tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: activeOnly in: query schema: type: string description: activeOnly parameter - name: limit in: query schema: type: integer description: Maximum number of results - name: offset in: query schema: type: integer description: Pagination offset requestBody: required: true content: application/json: schema: type: object operationId: postAdminEventSources x-operation-id-source: derived /admin/events/recurrence: post: summary: POST /admin/events/recurrence description: Endpoint for /admin/events/recurrence tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminEventsRecurrence x-operation-id-source: derived get: summary: GET /admin/events/recurrence description: Endpoint for /admin/events/recurrence tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminEventsRecurrence x-operation-id-source: derived /admin/fee-profiles/{id}/assignments/{assignmentId}: delete: summary: DELETE /admin/fee-profiles/{id}/assignments/{assignmentId} description: Endpoint for /admin/fee-profiles/{id}/assignments/{assignmentId} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier - name: assignmentId in: path required: true schema: type: string description: assignmentId identifier operationId: deleteAdminFeeProfilesByIdAssignmentsByAssignmentId x-operation-id-source: derived /admin/fee-profiles/{id}/assignments: post: summary: POST /admin/fee-profiles/{id}/assignments description: Endpoint for /admin/fee-profiles/{id}/assignments tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier requestBody: required: true content: application/json: schema: type: object operationId: postAdminFeeProfilesByIdAssignments x-operation-id-source: derived /admin/fee-profiles/{id}: put: summary: PUT /admin/fee-profiles/{id} description: Endpoint for /admin/fee-profiles/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier requestBody: required: true content: application/json: schema: type: object operationId: putAdminFeeProfilesById x-operation-id-source: derived delete: summary: DELETE /admin/fee-profiles/{id} description: Endpoint for /admin/fee-profiles/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: deleteAdminFeeProfilesById x-operation-id-source: derived /admin/fee-profiles: get: summary: GET /admin/fee-profiles description: Endpoint for /admin/fee-profiles tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminFeeProfiles x-operation-id-source: derived post: summary: POST /admin/fee-profiles description: Endpoint for /admin/fee-profiles tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminFeeProfiles x-operation-id-source: derived /admin/for-towns-pdf: post: summary: POST /admin/for-towns-pdf description: Endpoint for /admin/for-towns-pdf tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminForTownsPdf x-operation-id-source: derived /admin/frost-dates/import: post: summary: POST /admin/frost-dates/import description: Endpoint for /admin/frost-dates/import tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: postAdminFrostDatesImport x-operation-id-source: derived /admin/frost-dates: get: summary: GET /admin/frost-dates description: Endpoint for /admin/frost-dates tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminFrostDates x-operation-id-source: derived /admin/games/{id}: put: summary: PUT /admin/games/{id} description: Endpoint for /admin/games/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: id in: path required: true schema: type: string description: id identifier requestBody: required: true content: application/json: schema: type: object operationId: putAdminGamesById x-operation-id-source: derived get: summary: GET /admin/games/{id} description: Endpoint for /admin/games/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: getAdminGamesById x-operation-id-source: derived delete: summary: DELETE /admin/games/{id} description: Endpoint for /admin/games/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: deleteAdminGamesById x-operation-id-source: derived /admin/games/place-interests: get: summary: GET /admin/games/place-interests description: Endpoint for /admin/games/place-interests tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: status in: query schema: type: string description: status parameter operationId: getAdminGamesPlaceInterests x-operation-id-source: derived patch: summary: PATCH /admin/games/place-interests description: Endpoint for /admin/games/place-interests tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: status in: query schema: type: string description: status parameter requestBody: required: true content: application/json: schema: type: object operationId: patchAdminGamesPlaceInterests x-operation-id-source: derived /admin/games: post: summary: POST /admin/games description: Endpoint for /admin/games tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminGames x-operation-id-source: derived get: summary: GET /admin/games description: Endpoint for /admin/games tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] operationId: getAdminGames x-operation-id-source: derived /admin/geocode-missing: post: summary: POST /admin/geocode-missing description: Endpoint for /admin/geocode-missing tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminGeocodeMissing x-operation-id-source: derived /admin/global-features: get: summary: GET /api/admin/global-features tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] operationId: getAdminGlobalFeatures x-operation-id-source: derived post: summary: GET /api/admin/global-features tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] operationId: postAdminGlobalFeatures x-operation-id-source: derived /admin/global-features/seed: post: summary: POST /api/admin/global-features/seed tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] operationId: postAdminGlobalFeaturesSeed x-operation-id-source: derived /admin/grant-feature: post: summary: POST /api/admin/grant-feature tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: feature in: query schema: type: string description: feature parameter - name: userId in: query schema: type: string description: userId parameter operationId: postAdminGrantFeature x-operation-id-source: derived get: summary: POST /api/admin/grant-feature tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: feature in: query schema: type: string description: feature parameter - name: userId in: query schema: type: string description: userId parameter operationId: getAdminGrantFeature x-operation-id-source: derived /admin/missing-coords: get: summary: GET /admin/missing-coords description: Endpoint for /admin/missing-coords tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminMissingCoords x-operation-id-source: derived /admin/neighborhoods/discover-osm: get: summary: GET /admin/neighborhoods/discover-osm description: Endpoint for /admin/neighborhoods/discover-osm tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] operationId: getAdminNeighborhoodsDiscoverOsm x-operation-id-source: derived /admin/neighborhoods/waterloo-region/{id}: put: summary: PUT /admin/neighborhoods/waterloo-region/{id} description: Endpoint for /admin/neighborhoods/waterloo-region/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: id in: path required: true schema: type: string description: id identifier requestBody: required: true content: application/json: schema: type: object operationId: putAdminNeighborhoodsWaterlooRegionById x-operation-id-source: derived delete: summary: DELETE /admin/neighborhoods/waterloo-region/{id} description: Endpoint for /admin/neighborhoods/waterloo-region/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: deleteAdminNeighborhoodsWaterlooRegionById x-operation-id-source: derived /admin/neighborhoods/waterloo-region/rebuild: post: summary: POST /admin/neighborhoods/waterloo-region/rebuild description: Endpoint for /admin/neighborhoods/waterloo-region/rebuild tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminNeighborhoodsWaterlooRegionRebuild x-operation-id-source: derived /admin/neighborhoods/waterloo-region: get: summary: GET /admin/neighborhoods/waterloo-region description: Endpoint for /admin/neighborhoods/waterloo-region tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] operationId: getAdminNeighborhoodsWaterlooRegion x-operation-id-source: derived post: summary: POST /admin/neighborhoods/waterloo-region description: Endpoint for /admin/neighborhoods/waterloo-region tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminNeighborhoodsWaterlooRegion x-operation-id-source: derived put: summary: PUT /admin/neighborhoods/waterloo-region description: Endpoint for /admin/neighborhoods/waterloo-region tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] requestBody: required: true content: application/json: schema: type: object operationId: putAdminNeighborhoodsWaterlooRegion x-operation-id-source: derived /admin/neighborhoods/waterloo-region/samples: get: summary: GET /admin/neighborhoods/waterloo-region/samples description: Endpoint for /admin/neighborhoods/waterloo-region/samples tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: radius in: query schema: type: integer description: Search radius in kilometers operationId: getAdminNeighborhoodsWaterlooRegionSamples x-operation-id-source: derived /admin/notifications: get: summary: GET /admin/notifications description: Endpoint for /admin/notifications tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminNotifications x-operation-id-source: derived /admin/osm-explorer/connections: get: summary: GET /admin/osm-explorer/connections description: Endpoint for /admin/osm-explorer/connections tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminOsmExplorerConnections x-operation-id-source: derived /admin/osm-explorer/ignored-names: get: summary: GET /admin/osm-explorer/ignored-names description: Endpoint for /admin/osm-explorer/ignored-names tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminOsmExplorerIgnoredNames x-operation-id-source: derived post: summary: POST /admin/osm-explorer/ignored-names description: Endpoint for /admin/osm-explorer/ignored-names tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminOsmExplorerIgnoredNames x-operation-id-source: derived /admin/osm-explorer/local-food-score: get: summary: GET /admin/osm-explorer/local-food-score description: Endpoint for /admin/osm-explorer/local-food-score tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: lat in: query schema: type: number format: double description: Latitude coordinate - name: lng in: query schema: type: number format: double description: Longitude coordinate - name: radius in: query schema: type: integer description: Search radius in kilometers operationId: getAdminOsmExplorerLocalFoodScore x-operation-id-source: derived /admin/osm-explorer/neighborhood-match: get: summary: GET /admin/osm-explorer/neighborhood-match description: Endpoint for /admin/osm-explorer/neighborhood-match tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: name in: query schema: type: string description: name parameter operationId: getAdminOsmExplorerNeighborhoodMatch x-operation-id-source: derived /admin/osm-explorer/reverse-geocode: get: summary: GET /admin/osm-explorer/reverse-geocode description: Endpoint for /admin/osm-explorer/reverse-geocode tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: lat in: query schema: type: number format: double description: Latitude coordinate - name: lng in: query schema: type: number format: double description: Longitude coordinate operationId: getAdminOsmExplorerReverseGeocode x-operation-id-source: derived /admin/osm-explorer: get: summary: GET /admin/osm-explorer description: Endpoint for /admin/osm-explorer tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: south in: query schema: type: string description: south parameter - name: west in: query schema: type: string description: west parameter - name: north in: query schema: type: string description: north parameter - name: east in: query schema: type: string description: east parameter operationId: getAdminOsmExplorer x-operation-id-source: derived /admin/osm-explorer/simulate: post: summary: POST /admin/osm-explorer/simulate description: Endpoint for /admin/osm-explorer/simulate tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminOsmExplorerSimulate x-operation-id-source: derived /admin/participants/import: post: summary: POST /admin/participants/import description: Endpoint for /admin/participants/import tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: postAdminParticipantsImport x-operation-id-source: derived /admin/participants/notify: post: summary: POST /api/admin/participants/notify tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminParticipantsNotify x-operation-id-source: derived /admin/participants: get: summary: GET /admin/participants description: Endpoint for /admin/participants tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] operationId: getAdminParticipants x-operation-id-source: derived /admin/participants/template: get: summary: GET /admin/participants/template description: Endpoint for /admin/participants/template tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminParticipantsTemplate x-operation-id-source: derived /admin/participants/verify/generate-link: post: summary: POST /api/admin/participants/verify/generate-link tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminParticipantsVerifyGenerateLink x-operation-id-source: derived /admin/performance: get: summary: GET /admin/performance description: Endpoint for /admin/performance tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: timeRange in: query schema: type: string description: timeRange parameter operationId: getAdminPerformance x-operation-id-source: derived /admin/places/google-places: post: summary: POST /admin/places/google-places description: Endpoint for /admin/places/google-places tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminPlacesGooglePlaces x-operation-id-source: derived /admin/places/store-qr/{participantId}/pdf: get: summary: GET /admin/places/store-qr/{participantId}/pdf description: Endpoint for /admin/places/store-qr/{participantId}/pdf tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: participantId in: path required: true schema: type: string description: participantId identifier - name: size in: query schema: type: string description: size parameter operationId: getAdminPlacesStoreQrByParticipantIdPdf x-operation-id-source: derived /admin/places/store-qr: get: summary: GET /admin/places/store-qr description: Endpoint for /admin/places/store-qr tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: participantId in: query schema: type: string description: Participant identifier operationId: getAdminPlacesStoreQr x-operation-id-source: derived put: summary: PUT /admin/places/store-qr description: Endpoint for /admin/places/store-qr tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: participantId in: query schema: type: string description: Participant identifier requestBody: required: true content: application/json: schema: type: object operationId: putAdminPlacesStoreQr x-operation-id-source: derived /admin/planting-guides/import: post: summary: POST /admin/planting-guides/import description: Endpoint for /admin/planting-guides/import tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: postAdminPlantingGuidesImport x-operation-id-source: derived /admin/planting-guides: get: summary: GET /admin/planting-guides description: Endpoint for /admin/planting-guides tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminPlantingGuides x-operation-id-source: derived /admin/products/{id}: get: summary: GET /admin/products/{id} description: Endpoint for /admin/products/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: getAdminProductsById x-operation-id-source: derived patch: summary: PATCH /admin/products/{id} description: Endpoint for /admin/products/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier requestBody: required: true content: application/json: schema: type: object operationId: patchAdminProductsById x-operation-id-source: derived delete: summary: DELETE /admin/products/{id} description: Endpoint for /admin/products/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: deleteAdminProductsById x-operation-id-source: derived /admin/products: get: summary: GET /admin/products description: Endpoint for /admin/products tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminProducts x-operation-id-source: derived post: summary: POST /admin/products description: Endpoint for /admin/products tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminProducts x-operation-id-source: derived /admin/provenance-categories: get: summary: GET /api/admin/provenance-categories?days=30[&participantId=...] tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: days in: query schema: type: string description: days parameter - name: participantId in: query schema: type: string description: Participant identifier operationId: getAdminProvenanceCategories x-operation-id-source: derived /admin/provenance-reports/place-interest: get: summary: GET /api/admin/provenance-reports/place-interest?participantId=...&days=30 tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: participantId in: query schema: type: string description: Participant identifier - name: days in: query schema: type: string description: days parameter operationId: getAdminProvenanceReportsPlaceInterest x-operation-id-source: derived /admin/provenance-reports/producer-demand: get: summary: GET /api/admin/provenance-reports/producer-demand?producerId=...&days=30 tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: producerId in: query schema: type: string description: producerId parameter - name: days in: query schema: type: string description: days parameter operationId: getAdminProvenanceReportsProducerDemand x-operation-id-source: derived /admin/provenance-reports/producer-leads: get: summary: GET /api/admin/provenance-reports/producer-leads?producerId=...&days=30 tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: producerId in: query schema: type: string description: producerId parameter - name: days in: query schema: type: string description: days parameter operationId: getAdminProvenanceReportsProducerLeads x-operation-id-source: derived /admin/provenance-reports/regional-trend: get: summary: GET /api/admin/provenance-reports/regional-trend?days=90[®ion=...] tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: days in: query schema: type: string description: days parameter - name: region in: query schema: type: string description: region parameter operationId: getAdminProvenanceReportsRegionalTrend x-operation-id-source: derived /admin/real-estate-pdf/bulk: post: summary: POST /admin/real-estate-pdf/bulk description: Endpoint for /admin/real-estate-pdf/bulk tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: postAdminRealEstatePdfBulk x-operation-id-source: derived /admin/real-estate-pdf/connectivity-audit: get: summary: GET /admin/real-estate-pdf/connectivity-audit description: Endpoint for /admin/real-estate-pdf/connectivity-audit tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: address in: query schema: type: string description: address parameter - name: radiusKm in: query schema: type: integer description: radiusKm parameter - name: brandName in: query schema: type: string description: brandName parameter - name: brandImageUrl in: query schema: type: string description: brandImageUrl parameter - name: brandImageShape in: query schema: type: string description: brandImageShape parameter operationId: getAdminRealEstatePdfConnectivityAudit x-operation-id-source: derived /admin/real-estate-pdf/cover-letter: get: summary: GET /admin/real-estate-pdf/cover-letter description: Endpoint for /admin/real-estate-pdf/cover-letter tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: audience in: query schema: type: string description: audience parameter - name: address in: query schema: type: string description: address parameter - name: agentName in: query schema: type: string description: agentName parameter operationId: getAdminRealEstatePdfCoverLetter x-operation-id-source: derived /admin/recipes/db: get: summary: GET /admin/recipes/db description: Endpoint for /admin/recipes/db tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] operationId: getAdminRecipesDb x-operation-id-source: derived /admin/regional-score/apply-connection: post: summary: POST /admin/regional-score/apply-connection description: Endpoint for /admin/regional-score/apply-connection tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminRegionalScoreApplyConnection x-operation-id-source: derived /admin/regional-score/regions: get: summary: GET /admin/regional-score/regions description: Endpoint for /admin/regional-score/regions tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] operationId: getAdminRegionalScoreRegions x-operation-id-source: derived /admin/score-cache: get: summary: GET /admin/score-cache description: Endpoint for /admin/score-cache tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminScoreCache x-operation-id-source: derived post: summary: POST /admin/score-cache description: Endpoint for /admin/score-cache tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminScoreCache x-operation-id-source: derived /admin/set-gps: post: summary: POST /admin/set-gps description: Endpoint for /admin/set-gps tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminSetGps x-operation-id-source: derived /admin/settings: get: summary: Get admin settings tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminSettings x-operation-id-source: derived patch: summary: Get admin settings tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: patchAdminSettings x-operation-id-source: derived /admin/sponsorships/{id}: patch: summary: PATCH /admin/sponsorships/{id} description: Endpoint for /admin/sponsorships/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: id in: path required: true schema: type: string description: id identifier requestBody: required: true content: application/json: schema: type: object operationId: patchAdminSponsorshipsById x-operation-id-source: derived delete: summary: DELETE /admin/sponsorships/{id} description: Endpoint for /admin/sponsorships/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: deleteAdminSponsorshipsById x-operation-id-source: derived /admin/sponsorships: get: summary: GET /admin/sponsorships description: Endpoint for /admin/sponsorships tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] operationId: getAdminSponsorships x-operation-id-source: derived post: summary: POST /admin/sponsorships description: Endpoint for /admin/sponsorships tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] requestBody: required: true content: application/json: schema: type: object operationId: postAdminSponsorships x-operation-id-source: derived /admin/stats: get: summary: GET /admin/stats description: Endpoint for /admin/stats tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: timeRange in: query schema: type: string description: timeRange parameter operationId: getAdminStats x-operation-id-source: derived /admin/store-qr/default-layout: get: summary: GET /admin/store-qr/default-layout description: Endpoint for /admin/store-qr/default-layout tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminStoreQrDefaultLayout x-operation-id-source: derived put: summary: PUT /admin/store-qr/default-layout description: Endpoint for /admin/store-qr/default-layout tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: putAdminStoreQrDefaultLayout x-operation-id-source: derived /admin/surveys/{id}: get: summary: GET /admin/surveys/{id} description: Endpoint for /admin/surveys/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: getAdminSurveysById x-operation-id-source: derived put: summary: PUT /admin/surveys/{id} description: Endpoint for /admin/surveys/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier requestBody: required: true content: application/json: schema: type: object operationId: putAdminSurveysById x-operation-id-source: derived delete: summary: DELETE /admin/surveys/{id} description: Endpoint for /admin/surveys/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: deleteAdminSurveysById x-operation-id-source: derived /admin/surveys: get: summary: GET /admin/surveys description: Endpoint for /admin/surveys tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: status in: query schema: type: string description: status parameter - name: surveyType in: query schema: type: string description: surveyType parameter operationId: getAdminSurveys x-operation-id-source: derived post: summary: POST /admin/surveys description: Endpoint for /admin/surveys tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: status in: query schema: type: string description: status parameter - name: surveyType in: query schema: type: string description: surveyType parameter requestBody: required: true content: application/json: schema: type: object operationId: postAdminSurveys x-operation-id-source: derived /admin/tasks: get: summary: GET /admin/tasks description: Endpoint for /admin/tasks tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: status in: query schema: type: string description: status parameter operationId: getAdminTasks x-operation-id-source: derived /admin/template: get: summary: GET /admin/template description: Endpoint for /admin/template tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: type in: query schema: type: string description: type parameter operationId: getAdminTemplate x-operation-id-source: derived /admin/users/{id}/admin: put: summary: PUT /admin/users/{id}/admin description: Endpoint for /admin/users/{id}/admin tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier requestBody: required: true content: application/json: schema: type: object operationId: putAdminUsersByIdAdmin x-operation-id-source: derived /admin/users/{id}/email: put: summary: PUT /admin/users/{id}/email description: Endpoint for /admin/users/{id}/email tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier requestBody: required: true content: application/json: schema: type: object operationId: putAdminUsersByIdEmail x-operation-id-source: derived /admin/users/admin-info: get: summary: GET /admin/users/admin-info description: Endpoint for /admin/users/admin-info tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminUsersAdminInfo x-operation-id-source: derived /admin/users: get: summary: GET /admin/users description: Endpoint for /admin/users tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] operationId: getAdminUsers x-operation-id-source: derived /admin/users/search: get: summary: GET /api/admin/users/search?email=xxx tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: email in: query schema: type: string description: email parameter operationId: getAdminUsersSearch x-operation-id-source: derived /admin/widget-access: get: summary: GET /api/admin/widget-access tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: search in: query schema: type: string description: Search query string - name: userId in: query schema: type: string description: userId parameter operationId: getAdminWidgetAccess x-operation-id-source: derived post: summary: GET /api/admin/widget-access tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: search in: query schema: type: string description: Search query string - name: userId in: query schema: type: string description: userId parameter requestBody: required: true content: application/json: schema: type: object operationId: postAdminWidgetAccess x-operation-id-source: derived delete: summary: GET /api/admin/widget-access tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: search in: query schema: type: string description: Search query string - name: userId in: query schema: type: string description: userId parameter operationId: deleteAdminWidgetAccess x-operation-id-source: derived /admin/widget-usage: get: summary: GET /api/admin/widget-usage tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: [] parameters: - name: userId in: query schema: type: string description: userId parameter - name: days in: query schema: type: string description: days parameter operationId: getAdminWidgetUsage x-operation-id-source: derived /v2/admin/business-claims/{id}: put: summary: PUT /v2/admin/business-claims/{id} description: Endpoint for /v2/admin/business-claims/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier requestBody: required: true content: application/json: schema: type: object operationId: putV2AdminBusinessClaimsById x-operation-id-source: derived get: summary: GET /v2/admin/business-claims/{id} description: Endpoint for /v2/admin/business-claims/{id} tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: id in: path required: true schema: type: string description: id identifier operationId: getV2AdminBusinessClaimsById x-operation-id-source: derived /v2/admin/business-claims/release: post: summary: POST /v2/admin/business-claims/release description: Endpoint for /v2/admin/business-claims/release tags: - Admin responses: '201': description: Created successfully content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] requestBody: required: true content: application/json: schema: type: object operationId: postV2AdminBusinessClaimsRelease x-operation-id-source: derived /v2/admin/business-claims: get: summary: GET /v2/admin/business-claims description: Endpoint for /v2/admin/business-claims tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: status in: query schema: type: string description: status parameter - name: search in: query schema: type: string description: Search query string - name: page in: query schema: type: string description: page parameter - name: limit in: query schema: type: integer description: Maximum number of results operationId: getV2AdminBusinessClaims x-operation-id-source: derived /v2/admin/users/search: get: summary: GET /v2/admin/users/search description: Endpoint for /v2/admin/users/search tags: - Admin responses: '200': description: Success content: application/json: schema: type: object '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - bearerAuth: [] - cookieAuth: [] parameters: - name: q in: query schema: type: string description: Search query string - name: limit in: query schema: type: integer description: Maximum number of results operationId: getV2AdminUsersSearch x-operation-id-source: derived components: schemas: Error: type: object properties: error: type: string description: Error message error_description: type: string description: Detailed error description securitySchemes: cookieAuth: type: apiKey in: cookie name: next-auth.session-token description: Session-based authentication for web browsers oauth2: type: oauth2 description: OAuth 2.0 authentication for external applications and AI agents flows: authorizationCode: authorizationUrl: https://piknik.spot/api/oauth/authorize tokenUrl: https://piknik.spot/api/oauth/token refreshUrl: https://piknik.spot/api/oauth/token scopes: marketplace:write: Create and manage marketplace listings events:write: Create and manage community events read:profile: Read user profile information write:profile: Update user profile information bearerAuth: type: http scheme: bearer bearerFormat: JWT description: 'OAuth2 access token (JWT). Include in Authorization header as: Bearer {token}'