openapi: 3.2.0 info: title: Piknik.Spot Agritourism 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: Agritourism paths: /agritourism/campaigns/{id}/locations/{participantId}: delete: summary: DELETE /agritourism/campaigns/{id}/locations/{participantId} description: Endpoint for /agritourism/campaigns/{id}/locations/{participantId} tags: - Agritourism 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: participantId in: path required: true schema: type: string description: participantId identifier operationId: deleteAgritourismCampaignsByIdLocationsByParticipantId x-operation-id-source: derived /agritourism/campaigns/{id}/locations: post: summary: POST /agritourism/campaigns/{id}/locations description: Endpoint for /agritourism/campaigns/{id}/locations tags: - Agritourism 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: postAgritourismCampaignsByIdLocations x-operation-id-source: derived /agritourism/campaigns/{id}/opt-in: post: summary: POST /agritourism/campaigns/{id}/opt-in description: Endpoint for /agritourism/campaigns/{id}/opt-in tags: - Agritourism 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: postAgritourismCampaignsByIdOptIn x-operation-id-source: derived /agritourism/campaigns/{id}/participant-stats: get: summary: GET /agritourism/campaigns/{id}/participant-stats description: Endpoint for /agritourism/campaigns/{id}/participant-stats tags: - Agritourism 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: participantId in: query schema: type: string description: Participant identifier operationId: getAgritourismCampaignsByIdParticipantStats x-operation-id-source: derived /agritourism/campaigns/{id}: get: summary: GET /agritourism/campaigns/{id} description: Endpoint for /agritourism/campaigns/{id} tags: - Agritourism 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: getAgritourismCampaignsById x-operation-id-source: derived put: summary: PUT /agritourism/campaigns/{id} description: Endpoint for /agritourism/campaigns/{id} tags: - Agritourism 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: putAgritourismCampaignsById x-operation-id-source: derived delete: summary: DELETE /agritourism/campaigns/{id} description: Endpoint for /agritourism/campaigns/{id} tags: - Agritourism 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: deleteAgritourismCampaignsById x-operation-id-source: derived /agritourism/campaigns/{id}/scanner/attendees: get: summary: GET /agritourism/campaigns/{id}/scanner/attendees description: Endpoint for /agritourism/campaigns/{id}/scanner/attendees tags: - Agritourism 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: campaignId in: query schema: type: string description: campaignId parameter - name: filter in: query schema: type: string description: filter parameter - name: page in: query schema: type: string description: page parameter - name: pageSize in: query schema: type: string description: pageSize parameter - name: search in: query schema: type: string description: Search query string operationId: getAgritourismCampaignsByIdScannerAttendees x-operation-id-source: derived /agritourism/campaigns/{id}/scanner/bulk-reconcile: post: summary: POST /agritourism/campaigns/{id}/scanner/bulk-reconcile description: Endpoint for /agritourism/campaigns/{id}/scanner/bulk-reconcile tags: - Agritourism 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: postAgritourismCampaignsByIdScannerBulkReconcile x-operation-id-source: derived /agritourism/campaigns/{id}/scanner/checkin: post: summary: POST /agritourism/campaigns/{id}/scanner/checkin description: Endpoint for /agritourism/campaigns/{id}/scanner/checkin tags: - Agritourism 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: postAgritourismCampaignsByIdScannerCheckin x-operation-id-source: derived /agritourism/campaigns/{id}/scanner/context: get: summary: GET /agritourism/campaigns/{id}/scanner/context description: Endpoint for /agritourism/campaigns/{id}/scanner/context tags: - Agritourism 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: campaignId in: query schema: type: string description: campaignId parameter operationId: getAgritourismCampaignsByIdScannerContext x-operation-id-source: derived /agritourism/campaigns/{id}/scanner/guest-list: get: summary: GET /agritourism/campaigns/{id}/scanner/guest-list description: Endpoint for /agritourism/campaigns/{id}/scanner/guest-list tags: - Agritourism 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: campaignId in: query schema: type: string description: campaignId parameter operationId: getAgritourismCampaignsByIdScannerGuestList x-operation-id-source: derived /agritourism/campaigns/{id}/scanner/lookup: post: summary: POST /agritourism/campaigns/{id}/scanner/lookup description: Endpoint for /agritourism/campaigns/{id}/scanner/lookup tags: - Agritourism 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: postAgritourismCampaignsByIdScannerLookup x-operation-id-source: derived /agritourism/campaigns/{id}/scanner/stats: get: summary: GET /agritourism/campaigns/{id}/scanner/stats description: Endpoint for /agritourism/campaigns/{id}/scanner/stats tags: - Agritourism 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: campaignId in: query schema: type: string description: campaignId parameter operationId: getAgritourismCampaignsByIdScannerStats x-operation-id-source: derived /agritourism/campaigns/{id}/scanner/undo-checkin: post: summary: POST /agritourism/campaigns/{id}/scanner/undo-checkin description: Endpoint for /agritourism/campaigns/{id}/scanner/undo-checkin tags: - Agritourism 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: postAgritourismCampaignsByIdScannerUndoCheckin x-operation-id-source: derived /agritourism/campaigns/{id}/status: post: summary: POST /agritourism/campaigns/{id}/status description: Endpoint for /agritourism/campaigns/{id}/status tags: - Agritourism 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: postAgritourismCampaignsByIdStatus x-operation-id-source: derived /agritourism/campaigns/{id}/stop-busyness: get: summary: GET /agritourism/campaigns/{id}/stop-busyness description: Endpoint for /agritourism/campaigns/{id}/stop-busyness tags: - Agritourism 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 - name: participantId in: query schema: type: string description: Participant identifier operationId: getAgritourismCampaignsByIdStopBusyness x-operation-id-source: derived /agritourism/campaigns/{id}/ticket-types/{ticketTypeId}: patch: summary: PATCH /agritourism/campaigns/{id}/ticket-types/{ticketTypeId} description: Endpoint for /agritourism/campaigns/{id}/ticket-types/{ticketTypeId} tags: - Agritourism 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: ticketTypeId in: path required: true schema: type: string description: ticketTypeId identifier requestBody: required: true content: application/json: schema: type: object operationId: patchAgritourismCampaignsByIdTicketTypesByTicketTypeId x-operation-id-source: derived delete: summary: DELETE /agritourism/campaigns/{id}/ticket-types/{ticketTypeId} description: Endpoint for /agritourism/campaigns/{id}/ticket-types/{ticketTypeId} tags: - Agritourism 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: ticketTypeId in: path required: true schema: type: string description: ticketTypeId identifier operationId: deleteAgritourismCampaignsByIdTicketTypesByTicketTypeId x-operation-id-source: derived /agritourism/campaigns/{id}/ticket-types: post: summary: POST /agritourism/campaigns/{id}/ticket-types description: Endpoint for /agritourism/campaigns/{id}/ticket-types tags: - Agritourism 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: postAgritourismCampaignsByIdTicketTypes x-operation-id-source: derived /agritourism/campaigns/all: get: summary: GET /agritourism/campaigns/all description: Endpoint for /agritourism/campaigns/all tags: - Agritourism 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: getAgritourismCampaignsAll x-operation-id-source: derived /agritourism/campaigns/create: post: summary: POST /agritourism/campaigns/create description: Endpoint for /agritourism/campaigns/create tags: - Agritourism 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: postAgritourismCampaignsCreate x-operation-id-source: derived /agritourism/campaigns/joinable: get: summary: GET /agritourism/campaigns/joinable description: Endpoint for /agritourism/campaigns/joinable tags: - Agritourism 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: getAgritourismCampaignsJoinable x-operation-id-source: derived /agritourism/campaigns/mine: get: summary: GET /agritourism/campaigns/mine description: Endpoint for /agritourism/campaigns/mine tags: - Agritourism 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: associationId in: query schema: type: string description: associationId parameter operationId: getAgritourismCampaignsMine x-operation-id-source: derived /agritourism/campaigns: get: summary: GET /agritourism/campaigns description: Endpoint for /agritourism/campaigns tags: - Agritourism 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: 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: getAgritourismCampaigns x-operation-id-source: derived /agritourism/checkout: post: summary: POST /agritourism/checkout description: Endpoint for /agritourism/checkout tags: - Agritourism 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: postAgritourismCheckout x-operation-id-source: derived /agritourism/claim-free: post: summary: POST /agritourism/claim-free description: Endpoint for /agritourism/claim-free tags: - Agritourism 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: postAgritourismClaimFree x-operation-id-source: derived /agritourism/fee-profiles: get: summary: GET /agritourism/fee-profiles description: Endpoint for /agritourism/fee-profiles tags: - Agritourism 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 - name: associationId in: query schema: type: string description: associationId parameter operationId: getAgritourismFeeProfiles x-operation-id-source: derived /agritourism/lookup: post: summary: POST /agritourism/lookup description: Endpoint for /agritourism/lookup tags: - Agritourism 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: postAgritourismLookup x-operation-id-source: derived /agritourism/my-associations: get: summary: GET /agritourism/my-associations description: Endpoint for /agritourism/my-associations tags: - Agritourism 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: getAgritourismMyAssociations x-operation-id-source: derived /agritourism/stripe-connect/dashboard: get: summary: GET /agritourism/stripe-connect/dashboard description: Endpoint for /agritourism/stripe-connect/dashboard tags: - Agritourism 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: accountId in: query schema: type: string description: accountId parameter operationId: getAgritourismStripeConnectDashboard x-operation-id-source: derived /agritourism/stripe-connect: post: summary: POST /agritourism/stripe-connect description: Endpoint for /agritourism/stripe-connect tags: - Agritourism 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: postAgritourismStripeConnect x-operation-id-source: derived /agritourism/stripe-connect/status: get: summary: GET /agritourism/stripe-connect/status description: Endpoint for /agritourism/stripe-connect/status tags: - Agritourism 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: organizerType in: query schema: type: string description: organizerType parameter - name: organizerId in: query schema: type: string description: organizerId parameter operationId: getAgritourismStripeConnectStatus x-operation-id-source: derived /agritourism/ticket-types/{id}: put: summary: PUT /agritourism/ticket-types/{id} description: Endpoint for /agritourism/ticket-types/{id} tags: - Agritourism 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: putAgritourismTicketTypesById x-operation-id-source: derived /agritourism/tickets/{id}/cancel: post: summary: POST /agritourism/tickets/{id}/cancel description: Endpoint for /agritourism/tickets/{id}/cancel tags: - Agritourism 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 operationId: postAgritourismTicketsByIdCancel x-operation-id-source: derived /agritourism/tickets/{id}/download: get: summary: GET /agritourism/tickets/{id}/download description: Endpoint for /agritourism/tickets/{id}/download tags: - Agritourism 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: getAgritourismTicketsByIdDownload x-operation-id-source: derived /agritourism/tickets/{id}/pass: get: summary: GET /agritourism/tickets/{id}/pass description: Endpoint for /agritourism/tickets/{id}/pass tags: - Agritourism 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: getAgritourismTicketsByIdPass x-operation-id-source: derived /agritourism/tickets/{id}: get: summary: GET /agritourism/tickets/{id} description: Endpoint for /agritourism/tickets/{id} tags: - Agritourism 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: getAgritourismTicketsById x-operation-id-source: derived /agritourism/tickets: get: summary: GET /agritourism/tickets description: Endpoint for /agritourism/tickets tags: - Agritourism 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: getAgritourismTickets x-operation-id-source: derived /agritourism/validate: post: summary: POST /agritourism/validate description: Endpoint for /agritourism/validate tags: - Agritourism 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: postAgritourismValidate 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}'