Welcome to the #about Documentation
The complete reference guide for integrating, building, and scaling with the #about platform. Everything you need to get started and build production-grade applications.
Quick Start
Get up and running in under 5 minutes with our step-by-step guide.
API Reference
Complete REST API documentation with interactive examples.
Authentication
Learn about API keys, OAuth 2.0, and session management.
Webhooks
Set up real-time event notifications for your integrations.
โก Quick Start
Get your first #about integration up and running in minutes. This guide walks you through the essential steps to authenticate, make your first API call, and process responses.
Prerequisites
- Node.js 18+ or Python 3.10+
- An #about account with API access enabled
- Basic familiarity with REST APIs
Step 1: Install the SDK
# Install via npm
npm install @about/sdk
# or yarn
yarn add @about/sdk
# or pnpm
pnpm add @about/sdk# Install via pip
pip install about-sdk
# or for the latest dev version
pip install git+https://github.com/about/sdk-python.git<script src="https://cdn.about.dev/sdk/v3.2/about.min.js"></script># Direct API call without SDK
curl https://api.about.dev/v3/projects \
-H "Authorization: Bearer YOUR_API_KEY"Step 2: Initialize the Client
import { AboutClient } from '@about/sdk';
const client = new AboutClient({
apiKey: process.env.ABOUT_API_KEY,
environment: 'production', // or 'sandbox'
timeout: 5000,
retries: 3,
});
// Make your first API call
const projects = await client.projects.list();
console.log(`Found ${projects.total} projects`);from about import AboutClient
client = AboutClient(
api_key="your-api-key-here",
environment="production",
timeout=5.0,
max_retries=3,
)
# Make your first API call
projects = client.projects.list()
print(f"Found {projects.total} projects")Step 3: Make Your First Call
// Create a new project
const project = await client.projects.create({
name: "My Awesome Project",
description: "Built with #about SDK",
visibility: "private",
tags: ["tutorial", "new"],
});
console.log(`Created project: ${project.id}`);
// Output: Created project: proj_abc123def456๐ฆ Installation
#about offers SDKs for multiple platforms. Choose the one that best fits your stack.
Supported Platforms
| Platform | Package | Version | Status |
|---|---|---|---|
| JavaScript / TypeScript | @about/sdk |
3.2.1 | Stable |
| Python | about-sdk |
3.2.0 | Stable |
| Ruby | about-ruby |
3.1.4 | Stable |
| Go | github.com/about/go-sdk |
3.2.0 | Stable |
| PHP | about/about-php |
3.0.2 | Beta |
| Rust | about-rs |
0.9.0 | Beta |
Install via Package Manager
Choose your language and install the latest version using your preferred package manager.
Verify Installation
Run about --version to confirm the SDK is properly installed.
Configure Environment Variables
Add your API key to your environment: export ABOUT_API_KEY="your-key-here"
Start Building
Import the SDK and start making API calls. Check the Quick Start guide for a complete walkthrough.
๐ Project Structure
When using the #about CLI to scaffold a new project, the following directory structure is generated:
my-about-project/
โโโ .about/ # Configuration & secrets
โ โโโ config.json # Project configuration
โ โโโ secrets.env # Environment secrets
โโโ src/
โ โโโ index.js # Entry point
โ โโโ routes/ # API route handlers
โ โ โโโ projects.js
โ โ โโโ webhooks.js
โ โโโ services/ # Business logic
โ โ โโโ auth.js
โ โ โโโ content.js
โ โโโ utils/ # Helper functions
โ โโโ helpers.js
โโโ tests/
โ โโโ __fixtures__/
โ โโโ integration.test.js
โโโ package.json
โโโ .gitignore
โโโ README.md๐ Authentication
The #about API uses API keys and OAuth 2.0 for authentication. All API requests must include an authentication credential.
API Keys
API keys are the simplest way to authenticate. Include your key in the Authorization header of every request:
GET /v3/projects HTTP/2
Host: api.about.dev
Authorization: Bearer about_live_sk_a1b2c3d4e5f6g7h8i9j0
Content-Type: application/json
X-About-Client-Id: client_abc123Key Types
| Type | Prefix | Scope | Use Case |
|---|---|---|---|
| Sandbox | about_test_sk_ |
Full access (test mode) | Development & testing |
| Production | about_live_sk_ |
Full access (live mode) | Production deployments |
| Restricted | about_live_rk_ |
Limited scope | Third-party integrations |
OAuth 2.0
For applications that act on behalf of users, use OAuth 2.0 authorization code flow:
import { OAuthClient } from '@about/sdk/oauth';
const oauth = new OAuthClient({
clientId: "your-client-id",
clientSecret: process.env.CLIENT_SECRET,
redirectUri: "https://yourapp.com/callback",
scopes: ["projects:read", "projects:write", "analytics:read"],
});
// Step 1: Get authorization URL
const authUrl = oauth.getAuthorizationUrl();
// Step 2: Exchange code for tokens
const tokens = await oauth.exchangeCode(code);
// Step 3: Create authenticated client
const client = new AboutClient({
accessToken: tokens.accessToken,
refreshToken: tokens.refreshToken,
});โ๏ธ Configuration
The #about platform can be configured via environment variables, configuration files, or the SDK client constructor.
Environment Variables
| Variable | Description | Default | Required |
|---|---|---|---|
ABOUT_API_KEY |
Your API key for authentication | โ | Yes |
ABOUT_ENVIRONMENT |
API environment: sandbox or production |
sandbox |
No |
ABOUT_BASE_URL |
Custom API base URL | https://api.about.dev/v3 |
No |
ABOUT_TIMEOUT |
Request timeout in milliseconds | 5000 |
No |
ABOUT_MAX_RETRIES |
Maximum retry attempts for failed requests | 3 |
No |
ABOUT_LOG_LEVEL |
Logging verbosity: silent, info, debug |
info |
No |
Configuration File
{
"apiKey": "about_live_sk_...",
"environment": "production",
"timeout": 5000,
"retries": 3,
"logLevel": "info",
"regions": {
"default": "us-east-1",
"analytics": "eu-west-1"
}
}๐ก API Reference
Our REST API is organized around resources. Every API call follows the pattern /v3/{resource} and returns JSON responses.
https://api.about.dev/v3
Users
Get the authenticated user's profile information.
Headers
Bearer API key. Example: Bearer about_live_sk_...
Response
{
"id": "usr_xyz789",
"name": "Alex Johnson",
"email": "alex@example.com",
"role": "admin",
"avatar": "https://cdn.about.dev/avatars/usr_xyz789.jpg",
"created_at": "2024-01-15T08:30:00Z",
"plan": {
"tier": "professional",
"api_calls_limit": 100000,
"api_calls_used": 2341
}
}
Status Codes
Create a new team member or user account.
Request Body
Full name of the user. Maximum 100 characters.
Valid email address. Must not already be in use.
One of: admin, member, viewer
Custom key-value pairs for additional user data.
Response
{
"id": "usr_new123",
"name": "New User",
"email": "new@example.com",
"role": "member",
"invitation_sent": true,
"created_at": "2025-01-20T12:00:00Z"
}
Projects
List all projects with optional filtering and pagination.
Query Parameters
Page number for pagination. Default: 1
Results per page. Range: 1-100. Default: 20
Sort field: created_at, name, updated_at. Prefix with - for descending.
Filter by status: active, archived, draft
Analytics
Execute an analytics query to retrieve metrics and reports. Beta
Request Body
List of metrics to retrieve. Examples: pageviews, conversions, revenue
Date range object with start and end dates (ISO 8601 format).
Data granularity: hourly, daily, weekly, monthly. Default: daily
Dimensions to group results by. Examples: country, device, source
Response
{
"query_id": "q_abc123",
"status": "completed",
"data": {
"pageviews": [{"date":"2025-01-01","value":1234},{"date":"2025-01-02","value":1567}],
"conversions": [{"date":"2025-01-01","value":42},{"date":"2025-01-02","value":58}]
},
"summary": {
"total_pageviews": 2801,
"total_conversions": 100,
"conversion_rate": 0.0357
}
}
๐ช Webhooks
Webhooks allow you to receive real-time notifications when events occur in your #about account. Configure webhook endpoints to subscribe to specific event types.
Event Types
| Event | Trigger | Available |
|---|---|---|
project.created |
A new project is created | Stable |
project.updated |
A project is modified | Stable |
project.deleted |
A project is permanently deleted | Stable |
user.invited |
A new team member is invited | Stable |
analytics.report_ready |
Analytics report generation completes | Beta |
payment.failed |
A payment or subscription charge fails | Stable |
Webhook Payload
{
"id": "evt_abc123",
"type": "project.created",
"timestamp": "2025-01-20T15:30:00Z",
"data": {
"project": {
"id": "proj_xyz789",
"name": "New Project",
"status": "active",
"owner_id": "usr_def456"
}
},
"signature": "sha256=abc123def456..."
}X-About-Signature header to ensure the payload originated from #about.
๐ Rate Limiting
API requests are rate-limited to ensure fair usage and platform stability. Limits vary by plan tier.
| Plan | Requests / Minute | Requests / Day | Burst Limit |
|---|---|---|---|
| Free | 60 | 1,000 | 10 |
| Starter | 300 | 10,000 | 30 |
| Professional | 1,000 | 100,000 | 100 |
| Enterprise | 10,000 | Unlimited | 500 |
X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset
๐ Migrations
Follow these guides when migrating between API versions or upgrading your integration.
v2 โ v3 Migration
Key Changes
- Base URL: Changed from
api.about.dev/apitoapi.about.dev/v3 - Pagination: Replaced cursor-based pagination with offset-based pagination
- Response format: Wrapped responses in
{ data, meta, links }envelope - Error format: Standardized error objects with
{ code, message, details } - Auth headers: Now requires
Bearerprefix (v2 usedToken)
# Run the migration helper to audit your codebase
npx @about/migrate v2-to-v3
# It will:
# โ Detect deprecated API calls
# โ Update base URLs
# โ Suggest auth header changes
# โ Generate a migration report๐ Deployment
Deploy your #about-integrated application to any major cloud platform with our deployment guides.
Vercel
Deploy with zero configuration using the Vercel CLI.
AWS
Deploy to Lambda, ECS, or EC2 with CloudFormation templates.
Docker
Official Docker images and multi-stage build instructions.
Kubernetes
Helm charts and K8s manifests for container orchestration.
Azure
Deploy to Azure App Service and Functions with Bicep templates.
Google Cloud
Deploy to Cloud Run, GKE, or App Engine with gcloud CLI.
โจ Best Practices
Follow these guidelines to build reliable, efficient, and secure integrations with the #about platform.
Error Handling
try {
const project = await client.projects.create(payload);
} catch (error) {
if (error.code === 'RATE_LIMITED') {
// Implement exponential backoff
await sleep(error.retry_after * 1000);
return retry(payload);
}
if (error.code === 'VALIDATION_ERROR') {
error.details.forEach(detail => {
console.error(`${detail.field}: ${detail.message}`);
});
}
throw error; // Re-throw for upstream handling
}Security Checklist
- โ Always use
ABOUT_ENVIRONMENT=sandboxduring development - โ Store API keys in environment variables, never in code
- โ Use restricted API keys for third-party integrations
- โ Implement webhook signature verification
- โ Use HTTPS for all API calls
- โ Rotate API keys periodically
- โ Enable IP allowlisting for production keys
๐ Changelog
Stay up to date with the latest releases, features, and fixes.
Feature New users/list endpoint with filtering
Docs Updated all SDK documentation and examples
Breaking Dropped Node.js 16 support
Docs Added migration guide for v2 โ v3
๐ SDK Reference
Complete API reference for each supported SDK. Browse by language for detailed type signatures and method descriptions.
JavaScript / TypeScript
@about/sdk v3.2.1 โ Full TypeScript support with complete type definitions.
Python
about-sdk v3.2.0 โ Async and sync clients with type hints.
Ruby
about-ruby v3.1.4 โ Idiomatic Ruby DSL with lazy loading.
Go
go-sdk v3.2.0 โ Concurrent-safe client with context support.
PHP
about-php v3.0.2 โ PSR-18 compatible HTTP client.
Rust
about-rs v0.9.0 โ Async with Tokio, zero-copy deserialization.
โ FAQ
๐ฌ Support
Need help? We're here for you.
Live Chat
Available MonโFri, 9AMโ6PM EST. Average response time: 2 minutes.
Email Support
Write to support@about.dev for detailed technical questions.
Community
Join our Discord server with 15,000+ developers sharing knowledge.
Report a Bug
Found an issue? Open a GitHub issue or submit a bug report.