hookVM API
The hookVM API enables you to send events from your application to webhook subscriptions, manage event types, and configure webhook endpoints programmatically.
Getting Started
- Obtain an API Key: Generate an API key from your hookVM dashboard
- Create Event Types: Define the types of events your application will send
- Create Subscriptions: Set up webhook endpoints to receive events
- Send Events: Trigger events that will be delivered to all active subscriptions
Authentication
All API requests require authentication using an API key. Include your API key in the X-Api-Key header:
X-Api-Key: sk_live_1234567890abcdef
Security Best Practices:
- Never expose your API key in client-side code
- Use environment variables to store API keys
- Rotate API keys regularly
- Use different API keys for development and production
Rate Limiting
All API requests are rate limited on a per-organization basis to ensure fair usage and system stability.
Rate Limit Details:
- Default Limit: 100 requests per minute per organization
- Plan-Based: Your rate limit may vary based on your subscription plan
- Scope: Rate limits are applied per organization, not per API key
- Window: 1 minute rolling window
Rate Limit Headers:
Every API response includes the following headers to help you track your usage:
X-RateLimit-Limit: Maximum number of requests allowed per minuteX-RateLimit-Remaining: Number of requests remaining in the current windowX-RateLimit-Reset: Seconds until the rate limit resets
Example Response Headers:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 45
Rate Limit Exceeded:
When you exceed your rate limit, you'll receive a 429 Too Many Requests response with additional headers:
Retry-After: Seconds to wait before retrying the request
Best Practices:
- Monitor the
X-RateLimit-Remainingheader to track your usage - Implement exponential backoff when receiving 429 responses
- Cache responses when possible to reduce API calls
- Distribute requests evenly throughout the minute window
Idempotency
To prevent duplicate event processing, use the optional idempotencyKey field when sending events.
If you retry a request with the same idempotency key within 24 hours, you'll receive the original
response without creating a duplicate event.
Example:
{
"eventType": "user.created",
"payload": {"userId": "123"},
"idempotencyKey": "user-123-created-20240115"
}
Error Handling
The API uses standard HTTP status codes and returns detailed error messages in JSON format:
200 OK: Request successful201 Created: Resource created successfully204 No Content: Resource deleted successfully400 Bad Request: Invalid request parameters401 Unauthorized: Invalid or missing API key404 Not Found: Resource not found409 Conflict: Duplicate resource (e.g., idempotency key already used)429 Too Many Requests: Rate limit exceeded500 Internal Server Error: Server error
Webhook Signatures
All webhook deliveries include a signature in the X-Webhook-Signature header for verification.
Use the subscription's signature secret to verify the authenticity of webhook payloads.
Support
- Email: support@hookvm.com
- Status Page: https://status.hookvm.com
Authentication
- API Key: ApiKeyAuth
API key for authentication. Generate API keys from your hookVM dashboard at https://app.hookvm.com/settings/api-keys
Security Scheme Type: | apiKey |
|---|---|
Header parameter name: | X-Api-Key |
Terms of Service
https://hookvm.com/termsLicense
MIT License