API Documentation
Integrate GrowthArc's powerful coaching platform into your applications. Our REST API provides programmatic access to client management, journey tracking, goal setting, and more.
π Overview
The GrowthArc API is organized around REST principles. Our API accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes and authentication.
Base URL
https://api.growtharc.com/v1
API Versioning
The API is versioned via the URL path. The current version is v1. When we make backwards-incompatible changes, we release a new version.
π Authentication
GrowthArc uses API keys to authenticate requests. You can view and manage your API keys in your Dashboard Settings.
Using Your API Key
Include your API key in the Authorization header as a Bearer token:
Authorization: Bearer ga_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Example Request
curl -X GET "https://api.growtharc.com/v1/clients" \
-H "Authorization: Bearer ga_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json"
β οΈ Important: Keep your API keys secure. Never expose them in client-side code or public repositories.
β±οΈ Rate Limits
API requests are rate-limited to ensure fair usage and system stability. Limits vary by plan:
Starter
Professional
Growth / Enterprise
Rate limit information is included in response headers:
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 498
X-RateLimit-Reset: 1706817600
π₯ Clients
Manage your coaching clients programmatically.
Retrieve a list of all your clients.
| Parameter | Type | Description |
|---|---|---|
| limit | integer | Number of clients to return (default: 20, max: 100) |
| offset | integer | Pagination offset |
| status | string | Filter by status: active, paused, completed |
Create a new client.
| Parameter | Type | Description |
|---|---|---|
| email required | string | Client's email address |
| first_name required | string | Client's first name |
| last_name | string | Client's last name |
| journey_id | string | Journey to assign (optional) |
Code Examples
// Create a new client
const response = await fetch('https://api.growtharc.com/v1/clients', {
method: 'POST',
headers: {
'Authorization': 'Bearer ga_live_xxxxxxxxxxxxxxxx',
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: 'client@example.com',
first_name: 'Sarah',
last_name: 'Johnson',
journey_id: 'jrn_abc123'
})
});
const client = await response.json();
console.log(client.id); // cli_xyz789
import requests
# Create a new client
response = requests.post(
'https://api.growtharc.com/v1/clients',
headers={
'Authorization': 'Bearer ga_live_xxxxxxxxxxxxxxxx',
'Content-Type': 'application/json'
},
json={
'email': 'client@example.com',
'first_name': 'Sarah',
'last_name': 'Johnson',
'journey_id': 'jrn_abc123'
}
)
client = response.json()
print(client['id']) # cli_xyz789
πΊοΈ Journeys
Create and manage coaching journeys.
List all journey templates.
Retrieve a specific journey with all phases and activities.
Create a new journey template.
π― Goals
Track and manage client goals.
List all goals for a specific client.
Create a new goal for a client.
Update goal progress or details.
π Sessions
Schedule and manage coaching sessions.
List all upcoming and past sessions.
Schedule a new coaching session.
π Webhooks
Receive real-time notifications when events happen in your GrowthArc account.
Available Events
client.created
A new client was added to your account
client.updated
Client information was modified
goal.completed
A client completed a goal
session.scheduled
A coaching session was scheduled
session.completed
A coaching session was marked complete
journey.started
A client started a new journey
journey.phase_completed
A client completed a journey phase
payment.received
A payment was received from a client
Webhook Security
All webhook payloads are signed with a secret key. Verify the signature to ensure the webhook came from GrowthArc:
const crypto = require('crypto');
function verifyWebhook(payload, signature, secret) {
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expectedSignature)
);
}
π¦ SDKs & Libraries
Official client libraries are coming soon to make integration even easier.
JavaScript / Node.js
Coming SoonPython
Coming SoonRuby
Coming SoonPHP
Coming SoonIn the meantime, you can use our REST API directly with any HTTP client. Check out the code examples above for guidance.