API Reference

Programmatic data access with integrated payments

Base URL

https://api.redpine.ai

Authentication

X-API-Key: YOUR_KEY

Credit System

1,000 credits = $1.00

Getting Started

Get up and running in minutes

  1. Get an API Key: Sign up at developer.redpine.ai to create an account and generate your API key
  2. Purchase Credits: Buy prepaid credits ($1 = 1,000 credits) through the dashboard
  3. Make Your First Query: Use the Query Data endpoint to search for data
  4. Complete Checkout: Pay for data access using credits, Stripe, or Solana
  5. Access Data: Use the access token to retrieve your purchased data

Endpoints

GET
/api/v1/dashboard/credits/balance

Get Credit Balance

Get your current credit balance and last update time.

No parameters required

Request

1import requests 2 3response = requests.get( 4 "https://api.redpine.ai/api/v1/dashboard/credits/balance", 5 headers={"X-API-Key": "YOUR_API_KEY"} 6) 7balance = response.json() 8print(f"Balance: {balance['current_balance']} credits")

Response

Response
1{ 2 "current_balance": 5000.0, 3 "last_updated": "2025-01-24T10:00:00Z" 4}
POST
/api/v1/acp/queries

Query Data

Query RAG data with cost estimation and caching. Supports filtering by category, publisher, and date range.

Parameters

query
required

Type: string

Search query for context retrieval

k
optional

Type: integer

Number of chunks to retrieve (default: 5)

alpha
optional

Type: float

RRF ranking weight 0.0-1.0 (default: 0.7)

category
optional

Type: string

Category filter (legal, medical, educational)

publisher
optional

Type: string

Publisher name to filter results by

date_range
optional

Type: array[string]

Date range filter as [start_date, end_date]. Formats: YYYY-MM-DD, YYYY/MM/DD, YYYYMMDD

Request

1import requests 2 3response = requests.post( 4 "https://api.redpine.ai/api/v1/acp/queries", 5 json={ 6 "query": "migration policies in Sweden", 7 "k": 5, 8 "alpha": 0.7, 9 "publisher": "EU Commission", 10 "date_range": ["2020-01-01", "2024-12-31"] 11 }, 12 headers={"X-API-Key": "YOUR_API_KEY"} 13) 14print(response.json())

Response

Response
1{ 2 "query_id": "qry_abc123def456", 3 "query": "migration policies in Sweden", 4 "sources_found": 5, 5 "total_tokens": 3500, 6 "estimated_cost_cents": 400, 7 "preview": "Found 5 relevant sources:\n- Publisher A: Content preview...\n...", 8 "metadata": { 9 "publishers": ["Publisher A", "Publisher B"], 10 "max_relevance_score": 0.95, 11 "publisher_filter": "EU Commission", 12 "date_range": ["2020-01-01", "2024-12-31"], 13 "expires_at": "2025-01-25T10:00:00Z" 14 }, 15 "next_step": { 16 "action": "create_checkout", 17 "endpoint": "/api/v1/acp/checkouts", 18 "method": "POST" 19 } 20}
POST
/api/v1/acp/checkouts

Create Checkout

Create an ACP checkout session for data access.

Parameters

query_id
required

Type: string

Query ID from previous query request

payment_provider
optional

Type: string

Preferred payment provider: 'stripe' or 'x402' (default: 'stripe')

Request

1response = requests.post( 2 "https://api.redpine.ai/api/v1/acp/checkouts", 3 json={"query_id": query_id}, 4 headers={"X-API-Key": "YOUR_API_KEY"} 5) 6checkout = response.json() 7checkout_id = checkout["id"]

Response

Response
1{ 2 "id": "chk_abc123xyz", 3 "status": "ready_for_payment", 4 "query_id": "qry_abc123def456", 5 "amount": 400, 6 "currency": "usd", 7 "payment_provider": { 8 "provider": "stripe", 9 "supported_payment_methods": ["card"] 10 }, 11 "created_at": "2025-01-01T12:00:00Z" 12}
POST
/api/v1/acp/checkouts/{checkout_id}/complete

Complete Checkout

Complete payment using one of two payment methods: credits or Stripe.

Parameters

checkout_id
required

Type: string

Checkout session ID (in URL path)

payment_data
optional

Type: object

Omit entirely or pass null for credit payment

Request

1response = requests.post( 2 f"https://api.redpine.ai/api/v1/acp/checkouts/{checkout_id}/complete", 3 json={"payment_data": None}, # None or omit for credits 4 headers={"X-API-Key": "YOUR_API_KEY"} 5) 6result = response.json() 7access_token = result["links"][0]["url"].split("token=")[1]

Response

Response
1{ 2 "id": "chk_abc123xyz", 3 "status": "completed", 4 "query_id": "qry_abc123def456", 5 "amount": 400, 6 "currency": "usd", 7 "links": [ 8 { 9 "type": "data_access", 10 "url": "https://api.redpine.ai/api/v1/acp/data/access?token=dat_xyz789abc", 11 "expires_at": "2025-01-08T12:00:00Z" 12 } 13 ], 14 "created_at": "2025-01-01T12:00:00Z", 15 "updated_at": "2025-01-01T12:05:00Z" 16}
GET
/api/v1/acp/data/access

Access Data

Retrieve full data using an access token. The access token itself serves as authentication.

Parameters

token
required

Type: string

Access token from completed checkout (query parameter)

Request

1# Note: No X-API-Key needed - access token serves as authentication 2response = requests.get( 3 f"https://api.redpine.ai/api/v1/acp/data/access?token={access_token}" 4) 5data = response.json()

Response

Response
1{ 2 "query_id": "qry_abc123def456", 3 "query": "migration policies in Sweden", 4 "data": [ 5 { 6 "chunk_id": "chunk_001", 7 "text": "Content of the research data...", 8 "metadata": { 9 "publisher": "Publisher A", 10 "relevance_score": 0.95 11 } 12 } 13 ], 14 "total_tokens": 3500, 15 "sources_count": 5, 16 "access_expires_at": "2025-01-08T12:00:00Z" 17}

Rate Limits

Query Endpoint60 req/min
Checkout Endpoint30 req/min
Data Access100 req/min

Common Errors

400
insufficient_credits
401
invalid_api_key
403
access_denied
429
rate_limit_exceeded