Skip to main content

Overview

The Fifteenth Partner API uses Bearer token authentication with API keys. All requests must include a valid API key in the Authorization header to access protected endpoints.

Getting Started

1

Contact Partner Success

Email [email protected] to request API access. Include:
  • Your company name and website
  • Estimated client volume
  • Integration timeline
2

Complete Onboarding

Our partner success team will guide you through:
  • Partnership agreement execution
  • Technical requirements review
3

Receive API Keys

Once onboarded, you’ll receive:
  • Production API key for live integration

API Key Authentication

Using Your API Key

Include your API key in the Authorization header of all requests:
Authorization: Bearer your_api_key_here

API Key Format

Fifteenth API keys follow this format:
15th_<random_string>

Example:
15th_M4pQ7vN9xR2mK5wL8S1E6B

Production Environment

Production

Purpose: Live client operationsEnvironment: Production with real client dataRate Limits: 100 requests/minute, 10,000/day

Request Examples

import requests

headers = {
    "Authorization": "Bearer 15th_your_api_key_here",
    "Content-Type": "application/json"
}

response = requests.get(
    "https://api.fifteenth.com/v1beta/accounts",
    headers=headers
)

if response.status_code == 200:
    accounts = response.json()
    print(f"Found {len(accounts)} accounts")
else:
    print(f"Error: {response.status_code}")

Rate Limits

The API enforces rate limits to ensure fair usage:
  • Production: 100 requests per minute, 10,000 per day
When you exceed rate limits, the API returns a 429 Too Many Requests response:
{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Please retry after 60 seconds.",
    "details": {
      "limit": 100,
      "window_seconds": 60,
      "reset_at": "2024-01-15T10:31:00Z"
    }
  }
}

Security Best Practices

API Key Security

  • Store Securely: Never commit API keys to version control
  • Use Environment Variables: Store keys in environment variables or secure configuration
  • Monitor Usage: Watch for unusual activity in your API usage

Implementation Example

import os
import requests

# Good: Use environment variables
api_key = os.environ.get('FIFTEENTH_API_KEY')
if not api_key:
    raise ValueError("FIFTEENTH_API_KEY environment variable not set")

headers = {"Authorization": f"Bearer {api_key}"}

Error Handling

Authentication Errors

Status CodeError CodeDescriptionSolution
401INVALID_API_KEYAPI key is invalid or malformedCheck your API key format
401EXPIRED_API_KEYAPI key has expiredContact support for a new key
403INSUFFICIENT_PERMISSIONSKey lacks required permissionsVerify your integration scope
429RATE_LIMIT_EXCEEDEDToo many requestsWait and retry with backoff

Example Error Response

{
  "error": {
    "code": "INVALID_API_KEY",
    "message": "The provided API key is invalid",
    "details": {
      "hint": "Ensure your API key starts with '15th_'"
    }
  }
}

Next Steps