# GrowSurf developer resources > The first-party index of GrowSurf developer resources: the REST API, the OpenAPI spec, the GrowSurf MCP server, official SDKs, webhooks, authentication, and the API lifecycle policy. - URL: https://growsurf.com/developers/ --- One REST API, at a predictable address. The SDKs, the CLI, and the MCP server are interfaces over it — every one of them ends up calling the same endpoints you can call yourself. Your first request ``` # Every endpoint except POST /accounts takes an API key curl https://api.growsurf.com/v2/campaigns \ -H "Authorization: Bearer $GROWSURF_API_KEY" ``` ## GrowSurf REST API The universal surface. Create and manage teams, programs, participants, referrals, and rewards from your own server. Every endpoint except `POST /accounts` takes an API key in an `Authorization: Bearer` header, and you create and scope keys in [GrowSurf Settings](https://app.growsurf.com/settings#api-keys). - [REST API documentation](https://docs.growsurf.com/developer-tools/rest-api) — endpoint reference and guides - [Authentication](/developers/authentication/) — how to get and present an API key - [API lifecycle, versioning, and deprecation policy](/developers/api-lifecycle/) - [Webhooks](/developers/webhooks/) — subscribe to referral and reward events Base URL https://api.growsurf.com/v2 ## GrowSurf OpenAPI spec The machine-readable contract for the REST API, in OpenAPI 3.1, generated from the same source the API runs on and served same-origin so a client never has to guess a location. No API key is needed to read it. - [OpenAPI spec page](/developers/openapi/) — every fetch location, scopes, and code generation - [arazzo.yaml](/arazzo.yaml) — the Arazzo 1.1 onboarding workflow Spec [growsurf.com/openapi.json](/openapi.json) [growsurf.com/openapi.yaml](/openapi.yaml) ## GrowSurf MCP server Connect an AI assistant to GrowSurf over the Model Context Protocol. The hosted server authenticates with OAuth, so your assistant never handles an API key; the same tools also run locally over stdio. It is an interface over the REST API, not a separate product — if your assistant can send HTTPS requests, you do not need it. - [MCP server page](/developers/mcp/) — hosted, local, and public read-only endpoints - [Build with AI](/build-with-ai/) — the same thing, written for your team Hosted server https://mcp.growsurf.com ## GrowSurf CLI The official CLI ships in the same npm package as the local MCP server, so one install covers both. Set `GROWSURF_API_KEY` and run it. - [CLI guide](/developers/cli.md) — install, authentication, and commands - [growsurf-mcp on GitHub](https://github.com/growsurf/growsurf-mcp) Command npx -y @growsurfteam/growsurf-mcp ## Official SDKs Five hand-maintained libraries wrap the same REST API. If one exists for your language, prefer it over generating a client from the spec. - TypeScript [growsurf-typescript](https://www.npmjs.com/package/growsurf-typescript) npm - Python [growsurf-python](https://pypi.org/project/growsurf-python/) PyPI - Ruby [growsurf-ruby](https://rubygems.org/gems/growsurf-ruby) RubyGems - PHP [growsurf/growsurf-php](https://packagist.org/packages/growsurf/growsurf-php) Packagist - Java [com.growsurf.api:growsurf-java](https://central.sonatype.com/artifact/com.growsurf.api/growsurf-java) Maven Central For browser-side work, use the [JavaScript SDK](https://docs.growsurf.com/developer-tools/javascript-sdk). For apps, use the [native iOS and Android SDKs](https://docs.growsurf.com/getting-started-for-native-mobile). Libraries ## Resources for agents If you are an AI agent rather than a person, start with these. They are written to be executed, not read for pleasure. - [agent-start.md](/agent-start.md) — client-neutral REST onboarding - [auth.md](/auth.md) — how to obtain and handle credentials - [llms.txt](/llms.txt) and [llms-full.txt](/llms-full.txt) — the site and API index - [ai-catalog.json](/.well-known/ai-catalog.json) and [server-card.json](/.well-known/mcp/server-card.json) — discovery metadata ### Every canonical page has a Markdown companion Drop the trailing slash and append `.md`. This page is served as prose at [growsurf.com/developers.md](/developers.md). Machine-readable