Documentation
Find tutorials, API references, SDK guides, and integration walkthroughs.
Quick access
Browse Documentation
Find the right resource for your integration stage.
Quick Start
Get up and running in under 5 minutes. Step-by-step instructions for authentication, making your first call, and handling responses.
API Reference
Complete endpoint documentation with request/response schemas, status codes, error formats, and live examples for every API.
SDKs & Libraries
Official client libraries in 8 languages. Installation guides, configuration options, and code samples for each SDK.
Authentication & Authorization
All API requests require authentication. We support three methods:
- API Key — Pass your key via the
X-API-Keyheader. Best for server-to-server calls. - OAuth 2.0 — Use authorization code flow for user-facing apps or client credentials for service accounts.
- mTLS — Mutual TLS for enterprise-grade security. Contact support for certificate provisioning.
See the Getting Started guide for step-by-step authentication setup.
Rate Limits & Throttling
Rate limits protect the platform and ensure fair usage:
- Free tier: 100 requests/minute, 1,000 requests/day
- Pro tier: 1,000 requests/minute, 100,000 requests/day
- Enterprise: Custom limits based on your agreement
Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers. Our SDKs handle rate limiting automatically with exponential backoff.
Webhooks & Events
Subscribe to real-time events via webhooks. Configure endpoints in your dashboard to receive notifications for:
- Resource creation, updates, and deletions
- Subscription lifecycle events
- Usage threshold alerts
All webhook payloads include HMAC signatures for verification. Retry logic ensures delivery with exponential backoff up to 24 hours.
Error Handling
All errors follow a consistent JSON format:
{\n "error": {\n "code": "VALIDATION_ERROR",\n "message": "The zip parameter must be a valid US ZIP code.",\n "details": [...]\n }\n}HTTP status codes: 400 validation errors, 401 authentication, 403 authorization, 404 not found, 429 rate limited, 500 server error.
Pagination & Filtering
List endpoints support cursor-based pagination:
GET /v1/buildings?limit=25&cursor=eyJpZCI6MTAwfQ==Response includes next_cursor and has_more fields. Filter with query parameters specific to each resource. Sort with sort=field:asc|desc.
# Authenticate and fetch building data
curl -X GET 'https://api.devportal.com/v1/buildings?zip=10001&limit=5' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Accept: application/json'
# Response (200 OK)
{
"data": [
{
"id": "bld_abc123",
"address": "350 Fifth Avenue",
"city": "New York",
"state": "NY",
"zip": "10001",
"type": "commercial"
}
],
"meta": {
"total": 1247,
"has_more": true,
"next_cursor": "eyJpZCI6NX0="
}
}