Developer Resources
Built for Developers, by Developers
Powerful REST API, 4 native SDKs on a shared TypeScript Core, real-time webhooks, and 80+ integrations. Everything you need to embed surveys into any application or workflow.
curl -X GET https://api.claform.com/api/v1/surveys \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"REST API
Comprehensive REST API
A fully documented, RESTful API with predictable resource-oriented URLs, JSON request/response bodies, and standard HTTP methods.
API Fundamentals
All endpoints are prefixed with the versioned base URL
Generate API keys from your dashboard or use JWT for user-scoped access
Default per-key rate limiting with higher tiers available; headers show remaining quota
All requests and responses use JSON encoding with UTF-8
All API traffic is encrypted end-to-end over HTTPS
Authentication Example
// Using API Key (recommended for server-to-server)
const headers = {
'Authorization': 'Bearer sk_live_your_api_key',
'Content-Type': 'application/json',
};
// Using JWT (for user-scoped access)
const { token } = await fetch('/api/v1/auth/login', {
method: 'POST',
body: JSON.stringify({ email, password }),
}).then(r => r.json());Key Endpoints
/api/v1/surveysList all surveys with pagination, filtering, and sorting
/api/v1/surveysCreate a new survey with questions, logic, and settings
/api/v1/surveys/:id/responsesRetrieve survey responses with advanced filtering
/api/v1/email-campaignsLaunch email distribution campaigns to audience lists
/api/v1/analytics/surveys/:idGet analytics with charts, trends, and AI insights
/api/v1/webhooksRegister webhook endpoints for real-time events
75+ endpoints covering surveys, questions, responses, campaigns, analytics, audiences, contacts, integrations, webhooks, and administration. Full pagination, filtering, and sorting on all list endpoints.
Native SDKs
4 Native SDKs on a Shared Core
Embed surveys natively in any application. Four native SDKs are built on a shared TypeScript Core engine, each with all 35+ question types, offline support, theming, accessibility, and real-time event handling.
TypeScript Core
Web & Node.js · ~27KB gzipped
npm install @claform/sdk-core- Pure TypeScript, zero deps
- 35+ question types
- Offline support
- Event-driven architecture
import { SurveySDK } from '@claform/sdk-core';
const sdk = new SurveySDK({
apiKey: 'your-api-key',
baseUrl: 'https://api.claform.com/api/v1',
});
const survey = await sdk.loadSurvey('survey-id');
const response = await sdk.submitResponse(answers);React Native
iOS & Android · 262KB + Core
npm install @claform/sdk-react-native- Native UI components
- 12 custom hooks
- Offline queuing
- Accessibility support
import { SurveyProvider, SurveyView } from '@claform/sdk-react-native';
function App() {
return (
<SurveyProvider apiKey="your-api-key">
<SurveyView
surveyId="survey-id"
onComplete={(response) => console.log(response)}
/>
</SurveyProvider>
);
}Flutter
iOS & Android · Pure Dart
flutter pub add claform_sdk_flutter- Material 3 theming
- Provider state management
- Offline sync
- 35+ question widgets
import 'package:claform_sdk_flutter/claform_sdk_flutter.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return SurveyProvider(
apiKey: 'your-api-key',
child: SurveyScreen(surveyId: 'survey-id'),
);
}
}iOS (Swift)
iOS 15+ · No External Deps
.package(url: "https://github.com/claform/sdk-ios")- SwiftUI native views
- SPM & CocoaPods
- UIKit bridge
- Dynamic Type support
import ClaformSDK
struct ContentView: View {
var body: some View {
SurveyView(
apiKey: "your-api-key",
surveyId: "survey-id"
) { response in
print("Completed: \(response)")
}
}
}Android (Kotlin)
API 24+ · Jetpack Compose
implementation("com.claform:sdk-android:1.0.0")- Compose UI
- Material3 theme
- Gradle version catalog
- Coroutines & Flow
import com.claform.sdk.SurveyScreen
import com.claform.sdk.SurveyViewModel
@Composable
fun SurveyPage(viewModel: SurveyViewModel = viewModel()) {
SurveyScreen(
apiKey = "your-api-key",
surveyId = "survey-id",
onComplete = { response -> /* handle */ }
)
}Webhooks
Real-Time Event Notifications
Subscribe to events and get instant HTTP callbacks when things happen in your account. No polling required.
Supported Events
response.createdTriggered when a new survey response is submitted
response.updatedTriggered when a partial response is updated or completed
survey.publishedTriggered when a survey is published and goes live
survey.closedTriggered when a survey is closed to new responses
campaign.sentTriggered when a distribution campaign is launched
campaign.deliveredTriggered when campaign messages are delivered
campaign.bouncedTriggered when campaign messages bounce
contact.opted_outTriggered when a contact unsubscribes or opts out
Webhook Features
- Signature Verification
Every webhook payload is signed with HMAC-SHA256 using your secret key for tamper-proof delivery.
- Automatic Retries
Failed deliveries are retried with exponential backoff up to 5 times over 24 hours.
- Delivery Logs
Full delivery history with request/response bodies, status codes, and timing for debugging.
- Event Filtering
Subscribe only to the events you care about. Filter by survey, campaign, or event type.
{
"event": "response.created",
"timestamp": "2026-04-05T14:30:00Z",
"data": {
"responseId": "resp_abc123",
"surveyId": "srv_xyz789",
"status": "completed",
"completionTime": 245,
"answers": [...]
},
"signature": "sha256=..."
}Integrations
Connect Your Entire Stack
Pre-built connectors for the most popular platforms, plus Zapier and Make for connecting to thousands more.
Zapier
Connect to 5,000+ apps with triggers and actions
Make
Visual workflow automation with complex scenarios
Salesforce
Sync responses with contacts, leads, and cases
HubSpot
Map survey data to deals, contacts, and tickets
Mailchimp
Trigger surveys from email campaigns and segments
Klaviyo
Embed surveys in customer journey flows
Slack
Distribute surveys and receive notifications in channels
Microsoft Teams
Send surveys via Teams bots and tabs
Quick Start
Up and Running in 3 Steps
From sign-up to your first API call in under 5 minutes.
Get Your API Key
Create a free account and generate an API key from your dashboard. Keys are scoped per project with configurable permissions and rate limits.
Install an SDK
Choose from 4 native SDKs or use the REST API directly. Each SDK includes full TypeScript/type definitions, comprehensive docs, and example code.
Ship It
Create your first survey, embed it in your app, and start collecting responses. Use webhooks to trigger real-time workflows.
Start Building Today
Get your free API key and make your first API call in minutes. Our generous free tier includes 1,000 API requests per day.