Studios.mlStudios.ml
REST API v1

API Documentation

Build powerful integrations with our comprehensive REST API. Access SEO audits, keyword tracking, and analytics programmatically.

Authentication
Secure API access with API keys and OAuth 2.0 authentication. All requests require a valid Bearer token in the Authorization header.
header
Authorization: Bearer sk_live_your_api_key
Rate Limits
Starter: 100 req/min | Professional: 1,000 req/min | Enterprise: Unlimited. Rate limit headers included in every response.
X-RateLimit-Limit1000
X-RateLimit-Remaining998
X-RateLimit-Reset1679529600
Security
All API requests encrypted with TLS 1.3. IP whitelisting available. Webhook signatures for payload verification.
TLS 1.3 Encryption
SOC 2 Type II Certified
IP Whitelisting

Quick Start

1Get your API key

Navigate to your dashboard settings and generate a new API key. Keep this key secure - it provides full access to your account.

Generate API Key

2Make your first request

Test your API key by listing your customers:

bash
curl -X GET "https://api.studios.ml/v1/customers" \
  -H "Authorization: Bearer sk_live_your_api_key" \
  -H "Content-Type: application/json"

3Start an SEO audit

Trigger an automated SEO audit for any customer:

bash
curl -X POST "https://api.studios.ml/v1/audits" \
  -H "Authorization: Bearer sk_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "cust_abc123",
    "type": "full",
    "priority": "high"
  }'

API Reference

Webhooks

Receive real-time notifications when events happen in your account. Webhooks are sent as HTTP POST requests with a JSON payload.

Available Events

audit.startedTriggered when an SEO audit begins
audit.completedTriggered when an SEO audit finishes
audit.failedTriggered when an audit encounters an error
ranking.changedTriggered when keyword rankings change significantly
ranking.alertTriggered when a keyword drops below threshold
customer.createdTriggered when a new customer is added
customer.updatedTriggered when customer details change
content.suggestionTriggered when new content suggestions are ready

Webhook Payload Example

json
{
  "id": "evt_abc123xyz",
  "type": "audit.completed",
  "created": "2024-03-20T15:35:00Z",
  "data": {
    "audit_id": "audit_def456",
    "customer_id": "cust_abc123",
    "score": 85,
    "issues_found": 12,
    "status": "completed"
  }
}

Verifying Webhook Signatures

Each webhook includes a X-Signature header. Verify this signature using your webhook secret to ensure the request is from Studios.ml.

Error Codes

The API uses standard HTTP status codes. All errors return a JSON response with details.

200
OKRequest successful
201
CreatedResource created successfully
400
Bad RequestInvalid request parameters
401
UnauthorizedInvalid or missing API key
403
ForbiddenInsufficient permissions
404
Not FoundResource not found
429
Too Many RequestsRate limit exceeded
500
Server ErrorInternal server error

Error Response Format

json
{
  "error": {
    "code": "invalid_request",
    "message": "The customer_id parameter is required",
    "param": "customer_id",
    "doc_url": "https://studios.ml/docs/api#customers"
  }
}

SDK Libraries

Official client libraries make it easy to integrate Studios.ml into your applications.

JavaScript/Node.js
npm install @studiosml/sdk
Python
pip install studiosml
Ruby
gem install studiosml
PHP
composer require studiosml/sdk
Go
go get github.com/studiosml/go-sdk
Java
implementation "com.studiosml:sdk:1.0.0"

JavaScript Example

javascript
import { StudiosML } from '@studiosml/sdk';

const client = new StudiosML('sk_live_your_api_key');

// List customers
const customers = await client.customers.list({ limit: 10 });

// Start an audit
const audit = await client.audits.create({
  customer_id: 'cust_abc123',
  type: 'full'
});

// Track keywords
await client.keywords.create({
  customer_id: 'cust_abc123',
  keywords: ['seo tools', 'keyword tracker']
});

Python Example

python
import studiosml

client = studiosml.Client("sk_live_your_api_key")

# List customers
customers = client.customers.list(limit=10)

# Start an audit
audit = client.audits.create(
    customer_id="cust_abc123",
    type="full"
)

# Track keywords
client.keywords.create(
    customer_id="cust_abc123",
    keywords=["seo tools", "keyword tracker"]
)
Base URL
All API requests should be made to the following base URL:
https://api.studios.ml/v1
Versioning
The API version is included in the URL path. Current version:
v1Stable - Released Jan 2024

Ready to build?

Get started with the Studios.ml API today. Generate your API key and start building powerful SEO integrations.