Error Handling

Handle errors gracefully when using Synth API.

HTTP Status Codes

Code
Meaning
Action

200

Success

Process response

400

Bad Request

Check authentication header

401

Unauthorized

Check API key

402

Payment Required

Check subscription or billing status

404

Not Found

Check parameters or data availability

429

Rate Limited

Retry after delay

500

Server Error

Retry later

Error Response Format

Errors return JSON with a message field:

{"message": "Unauthorized"}
{"message": "missing key in request header"}

Some endpoints return a plain string for data errors:

"No prediction available"

Best Practices

example.py
import requests
import time

def fetch_percentiles(asset):
    response = requests.get(
        "https://api.synthdata.co/insights/prediction-percentiles",
        headers={"Authorization": "Apikey YOUR_API_KEY"},
        params={"asset": asset}
    )
    
    if response.status_code == 200:
        return response.json()
    elif response.status_code == 401:
        raise Exception("Invalid API key")
    elif response.status_code == 404:
        raise Exception(f"No data available for {asset}")
    elif response.status_code == 429:
        time.sleep(60)
        return fetch_percentiles(asset)  # Retry
    else:
        response.raise_for_status()

Last updated