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

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:

HTTP Header
Authorization: Bearer ga_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Example Request

cURL
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

100
requests / minute

Professional

500
requests / minute

Growth / Enterprise

2000
requests / minute

Rate limit information is included in response headers:

Response Headers
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 498
X-RateLimit-Reset: 1706817600

πŸ‘₯ Clients

Manage your coaching clients programmatically.

GET /clients

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
POST /clients

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

JavaScript
// 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
Python
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.

GET /journeys

List all journey templates.

GET /journeys/{id}

Retrieve a specific journey with all phases and activities.

POST /journeys

Create a new journey template.

🎯 Goals

Track and manage client goals.

GET /clients/{client_id}/goals

List all goals for a specific client.

POST /clients/{client_id}/goals

Create a new goal for a client.

PUT /goals/{id}

Update goal progress or details.

πŸ“… Sessions

Schedule and manage coaching sessions.

GET /sessions

List all upcoming and past sessions.

POST /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:

Node.js
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 Soon
🐍

Python

Coming Soon
πŸ’Ž

Ruby

Coming Soon
🐘

PHP

Coming Soon

In the meantime, you can use our REST API directly with any HTTP client. Check out the code examples above for guidance.