# Piknik.Spot REST API

**Canonical:** https://apis.io/apis/piknik-spot/piknikspot-rest-api/  
**Provider:** Piknik.Spot — https://apis.io/providers/piknik-spot/  
**Base URL:** https://piknik.spot/api  
**Documentation:** https://piknik.spot/api/docs

Piknik.Spot REST API is one of 3 APIs that [Piknik.Spot](https://apis.io/providers/piknik-spot/) publishes on the [APIs.io](https://apis.io/) network, described by a machine-readable OpenAPI specification. Tagged areas include Local Food, Marketplace, Event, Job, and Recipes. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an API reference, a getting-started guide, authentication docs, and rate-limit docs.

REST API under https://piknik.spot/api covering participants (places), offerings and pack prices, service locations, marketplace listings, events and RSVPs, jobs, recipes, associations and place tours, CSA interests, spend challenges, delivery tasks, geocoding, the Local Food Score, OAuth 2.0 client management and an unauthenticated public place-summary endpoint for AI agents (max 5 results, 30 requests per minute). Described by a provider-hosted OpenAPI 3.0.3 document with 509 paths and 683 operations; the same document is served as YAML at /api/openapi. Authentication is an OAuth 2.0 bearer JWT or a pik_pat_ personal access token; browser sessions use a next-auth cookie.

## Operations (60 of 683)

| Method | Path | Summary |
|---|---|---|
| GET | `/a2a` | GET /a2a |
| POST | `/a2a` | POST /a2a |
| GET | `/admin/agent-settings` | GET /admin/agent-settings |
| PUT | `/admin/agent-settings` | PUT /admin/agent-settings |
| POST | `/admin/announcements/cleanup` | POST /admin/announcements/cleanup |
| GET | `/admin/announcements/cleanup` | GET /admin/announcements/cleanup |
| POST | `/admin/associations/{id}/memberships/bulk` | POST /admin/associations/{id}/memberships/bulk |
| GET | `/admin/associations/{id}/memberships` | GET /admin/associations/{id}/memberships |
| DELETE | `/admin/associations/{id}/memberships` | DELETE /admin/associations/{id}/memberships |
| PATCH | `/admin/associations/{id}/memberships` | PATCH /admin/associations/{id}/memberships |
| GET | `/admin/associations/{id}` | GET /admin/associations/{id} |
| PUT | `/admin/associations/{id}` | PUT /admin/associations/{id} |
| DELETE | `/admin/associations/{id}` | DELETE /admin/associations/{id} |
| GET | `/admin/associations/{id}/surveys` | GET /admin/associations/{id}/surveys |
| POST | `/admin/associations/{id}/surveys` | POST /admin/associations/{id}/surveys |
| GET | `/admin/associations` | GET /admin/associations |
| POST | `/admin/associations` | POST /admin/associations |
| GET | `/admin/associations/verification-queue` | GET /admin/associations/verification-queue |
| PUT | `/admin/associations/verify/{membershipId}` | PUT /admin/associations/verify/{membershipId} |
| POST | `/admin/campaign-batch` | POST /api/admin/campaign-batch |
| GET | `/admin/campaign-status` | GET /admin/campaign-status |
| GET | `/admin/categories/{id}` | GET /admin/categories/{id} |
| PATCH | `/admin/categories/{id}` | PATCH /admin/categories/{id} |
| DELETE | `/admin/categories/{id}` | DELETE /admin/categories/{id} |
| POST | `/admin/categories/reorder` | POST /api/admin/categories/reorder |
| GET | `/admin/categories` | GET /admin/categories |
| POST | `/admin/categories` | POST /admin/categories |
| GET | `/admin/event-sources/{id}` | GET /admin/event-sources/{id} |
| PUT | `/admin/event-sources/{id}` | PUT /admin/event-sources/{id} |
| DELETE | `/admin/event-sources/{id}` | DELETE /admin/event-sources/{id} |
| GET | `/admin/event-sources` | GET /admin/event-sources |
| POST | `/admin/event-sources` | POST /admin/event-sources |
| POST | `/admin/events/recurrence` | POST /admin/events/recurrence |
| GET | `/admin/events/recurrence` | GET /admin/events/recurrence |
| DELETE | `/admin/fee-profiles/{id}/assignments/{assignmentId}` | DELETE /admin/fee-profiles/{id}/assignments/{assignmentId} |
| POST | `/admin/fee-profiles/{id}/assignments` | POST /admin/fee-profiles/{id}/assignments |
| PUT | `/admin/fee-profiles/{id}` | PUT /admin/fee-profiles/{id} |
| DELETE | `/admin/fee-profiles/{id}` | DELETE /admin/fee-profiles/{id} |
| GET | `/admin/fee-profiles` | GET /admin/fee-profiles |
| POST | `/admin/fee-profiles` | POST /admin/fee-profiles |
| POST | `/admin/for-towns-pdf` | POST /admin/for-towns-pdf |
| POST | `/admin/frost-dates/import` | POST /admin/frost-dates/import |
| GET | `/admin/frost-dates` | GET /admin/frost-dates |
| PUT | `/admin/games/{id}` | PUT /admin/games/{id} |
| GET | `/admin/games/{id}` | GET /admin/games/{id} |
| DELETE | `/admin/games/{id}` | DELETE /admin/games/{id} |
| GET | `/admin/games/place-interests` | GET /admin/games/place-interests |
| PATCH | `/admin/games/place-interests` | PATCH /admin/games/place-interests |
| POST | `/admin/games` | POST /admin/games |
| GET | `/admin/games` | GET /admin/games |
| POST | `/admin/geocode-missing` | POST /admin/geocode-missing |
| GET | `/admin/global-features` | GET /api/admin/global-features |
| POST | `/admin/global-features` | GET /api/admin/global-features |
| POST | `/admin/global-features/seed` | POST /api/admin/global-features/seed |
| POST | `/admin/grant-feature` | POST /api/admin/grant-feature |
| GET | `/admin/grant-feature` | POST /api/admin/grant-feature |
| GET | `/admin/missing-coords` | GET /admin/missing-coords |
| GET | `/admin/neighborhoods/discover-osm` | GET /admin/neighborhoods/discover-osm |
| PUT | `/admin/neighborhoods/waterloo-region/{id}` | PUT /admin/neighborhoods/waterloo-region/{id} |
| DELETE | `/admin/neighborhoods/waterloo-region/{id}` | DELETE /admin/neighborhoods/waterloo-region/{id} |

…and 623 more operations. The page lists the first 250; the full set of 683 is in the OpenAPI linked below.

## Machine-readable artifacts (17)

- **OpenAPI** — https://raw.githubusercontent.com/api-evangelist/piknik-spot/refs/heads/main/openapi/piknik-spot-openapi.yml
- **OpenAPI** — https://piknik.spot/openapi.json
- **Documentation** — https://piknik.spot/api/docs
- **APIReference** — https://piknik.spot/api/docs
- **GettingStarted** — https://piknik.spot/skills/piknik-rest-api/SKILL.md
- **Authentication** — https://raw.githubusercontent.com/api-evangelist/piknik-spot/refs/heads/main/authentication/piknik-spot-authentication.yml
- **OAuthScopes** — https://raw.githubusercontent.com/api-evangelist/piknik-spot/refs/heads/main/scopes/piknik-spot-scopes.yml
- **Conventions** — https://raw.githubusercontent.com/api-evangelist/piknik-spot/refs/heads/main/conventions/piknik-spot-conventions.yml
- **Idempotency** — https://raw.githubusercontent.com/api-evangelist/piknik-spot/refs/heads/main/conventions/piknik-spot-conventions.yml
- **ErrorCatalog** — https://raw.githubusercontent.com/api-evangelist/piknik-spot/refs/heads/main/errors/piknik-spot-problem-types.yml
- **DataModel** — https://raw.githubusercontent.com/api-evangelist/piknik-spot/refs/heads/main/data-model/piknik-spot-data-model.yml
- **RateLimits** — https://raw.githubusercontent.com/api-evangelist/piknik-spot/refs/heads/main/rate-limits/piknik-spot-rate-limits.yml
- **Overlay** — https://raw.githubusercontent.com/api-evangelist/piknik-spot/refs/heads/main/overlays/piknik-spot-openapi-overlay.yaml
- **Webhooks** — https://raw.githubusercontent.com/api-evangelist/piknik-spot/refs/heads/main/asyncapi/piknik-spot-webhooks.yml
- **AgentSkill** — https://raw.githubusercontent.com/api-evangelist/piknik-spot/refs/heads/main/skills/_index.yml
- **OpenAPI** — https://piknik.spot/api/openapi
- **APIsJSON** — https://raw.githubusercontent.com/api-evangelist/piknik-spot/refs/heads/main/apis.yml

## Other Piknik.Spot APIs (2)

- [Piknik.Spot MCP Server](https://apis.io/apis/piknik-spot/piknikspot-mcp-server/)
- [Piknik.Spot A2A Agent](https://apis.io/apis/piknik-spot/piknikspot-a2a-agent/)

## Tags

Local Food, Marketplace, Event, Job, Recipes, Geolocation, Authentication

---

Profiled by [API Evangelist](https://apievangelist.com) and published on [APIs.io](https://apis.io/apis/piknik-spot/piknikspot-rest-api/). The API's provider profile, Kin Score and agent-readiness rating are at https://apis.io/providers/piknik-spot/.
