Build with SurveyRock

A REST API for surveys, responses, distribution, and contacts — scoped bearer tokens, structured errors built for both humans and agents, and a reference generated straight from the live API so it never drifts from what's actually deployed.

What you can build

Trigger workflows on response submission

Pull new responses via the API the moment they land, or drive downstream automations off survey activity.

Build a custom analytics dashboard

Pull surveys, responses, and aggregates into your own visualization layer instead of relying on the built-in reports.

Automate contact management

Create, update, import, and suppress contacts programmatically — keep your CRM and SurveyRock’s contact list in sync.

Create and publish surveys programmatically

Build surveys, elements, and distributors from your own tooling instead of the builder UI.

Export response data on your own schedule

Request exports (CSV, XLSX, SPSS, DOCX, PPTX) and pull them into your own data warehouse or reporting pipeline.

Embed surveys in your product

Generate web links, QR codes, and embed codes for any distributor via the API.

What's in the API today
Bearer token authentication
Scoped API tokens (surveys, responses, contacts, exports, etc.)
Surveys, elements, and responses
Distribution — web links, QR codes, embeds
Contacts — create, update, import, suppress, anonymize
Response exports (CSV, XLSX, SPSS, DOCX, PPTX)
Survey versioning, drafts, and publishing
Structured, machine-readable error responses
Idempotency keys on writes; ETags for optimistic concurrency
OAuth 2.1 for third-party and agent accessRoadmap
SDKs and libraries
Coming soon

Official client libraries (JavaScript, Python, PHP) aren't built yet. In the meantime, call the REST API directly with your language's standard HTTP client — the getting started guide has a working example.

Common questions
How do I authenticate?

Every request carries a bearer token in the Authorization header. Tokens are scoped (surveys:read, contacts:write, etc.) rather than granting blanket account access, and are prefixed by environment (srk_live_ / srk_test_). Full authentication guide →

What are the rate limits?

Every endpoint allows 120 requests per minute — that’s what’s actively enforced today. Published daily allowances scale with plan tier (500/day on Solo up to 50,000/day on Pro, custom on Enterprise) ahead of daily enforcement shipping. API access itself requires a paid plan — the Free tier has no API access. Rate limits detail →

Is there an SDK for my language?

Not yet — call the REST API directly with your language’s standard HTTP client in the meantime. Official client libraries are on our roadmap.

Can agents and internal tools use SurveyRock programmatically?

Yes, today, via the same scoped bearer tokens a human would use. Delegated agent authorization (OAuth 2.1, no shared static tokens) is designed and on our roadmap, not yet built.

How do I avoid double-processing a write on retry?

Send an Idempotency-Key header on non-GET requests. A retry with the same key and body always returns the original result instead of re-applying the write. Errors and idempotency →

How to start building
  1. Sign up for a SurveyRock account. API access requires a paid plan.
  2. Generate an API token from Settings → API Tokens, scoped to what your integration needs.
  3. Read the API documentation for authentication, error handling, and rate limits.
  4. Explore the generated API reference for the full, current endpoint list.

Get help

Questions about the API? Email developers@surveyrock.com, or start with the docs below.