GrowSurf OpenAPI spec
The machine-readable contract for the GrowSurf REST API. It is an OpenAPI 3.1 document, generated from the same source the API runs on, and served same-origin from growsurf.com so a client never has to guess a location.
Where to fetch it
https://growsurf.com/openapi.json
https://growsurf.com/openapi.yaml
https://growsurf.com/arazzo.yaml- openapi.json — the spec in JSON
- openapi.yaml — the same spec in YAML
- arazzo.yaml — the Arazzo 1.1 onboarding workflow
The same documents are served from the API itself at https://api.growsurf.com/v2/openapi.json and https://api.growsurf.com/v2/openapi.yaml. All of them are public: no API key is needed to read the spec.
What it covers
Every public REST v2 operation, with an operationId, a typed request and response schema, and a shared error schema that 4xx and 5xx responses reference.
Each operation also lists the API-key scope it requires in x-growsurf-required-scopes, so a client can pick the smallest scope set before it asks a user for a credential.
Generating a client
The spec is valid input for code generators and for function-calling tool definitions.
Prefer a published library where one exists
GrowSurf maintains official TypeScript, Python, Ruby, PHP, and Java SDKs. They are hand-maintained, so they track the API more closely than a generated client will. All five are listed on GrowSurf developer resources.
Versioning
The API is versioned in the URL path (/v2). Before you build against the spec, read the GrowSurf API lifecycle, versioning, and deprecation policy: it says how long notice you get before a breaking removal, and which response fields signal one.
Authentication
Reading the spec needs no credential. Calling the API does.
Authorization: Bearer <api_key>See authentication, or auth.md if you are an AI agent.

Webhooks