Now in Public Beta

Build with the
Meridian API

A unified platform for payments, users, and analytics.
RESTful endpoints, predictable responses, and comprehensive documentation.

Quick Start
# Check service health
curl https://api.example.com/v1/health \
  -H "Authorization: Bearer sk_test_..."

# Response
{
  "status": "healthy",
  "version": "1.8.3",
  "latency_ms": 4
}

Getting Started

Everything you need to integrate the Meridian API into your application.

RESTful Design

Predictable resource-oriented URLs, standard HTTP methods, and JSON responses. Follows OpenAPI 3.1 specification.

Authentication

Bearer token auth with scoped API keys. Test keys (sk_test_) for staging, live keys (sk_live_) for production.

Rate Limits

1,000 req/s for test mode, 10,000 req/s for production. Headers X-RateLimit-Remaining included in every response.

Webhooks

Real-time event notifications with HMAC-SHA256 signatures. Automatic retries with exponential backoff on failure.

Idempotency

Safe retries via Idempotency-Key header. Duplicate POST requests return cached responses for 24 hours.

SDKs & Libraries

Official clients for Node.js, Python, Go, and Ruby. Community-maintained SDKs for PHP, Java, and .NET.

Works with your stack

Quick integration examples in popular languages.

curl -X POST https://api.example.com/v1/users \
  -H "Authorization: Bearer sk_test_4eC39HqLyjWDarjtT1zdp7dc" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "developer@example.com",
    "name": "Jane Doe",
    "role": "developer"
  }'
import Meridian from '@meridian/sdk';

const client = new Meridian('sk_test_4eC39HqLyjWDarjtT1zdp7dc');

const user = await client.users.create({
  email: 'developer@example.com',
  name:  'Jane Doe',
  role:  'developer',
});

console.log(user.id); // usr_a1b2c3d4
import meridian

client = meridian.Client("sk_test_4eC39HqLyjWDarjtT1zdp7dc")

user = client.users.create(
    email="developer@example.com",
    name="Jane Doe",
    role="developer",
)

print(user.id)  # usr_a1b2c3d4
package main

import (
    "fmt"
    "github.com/meridian-api/meridian-go"
)

func main() {
    client := meridian.New("sk_test_4eC39HqLyjWDarjtT1zdp7dc")

    user, _ := client.Users.Create(&meridian.UserParams{
        Email: "developer@example.com",
        Name:  "Jane Doe",
        Role:  "developer",
    })

    fmt.Println(user.ID) // usr_a1b2c3d4
}

API Reference

Core resources and endpoints. All requests require a valid API key.

Users
6 endpoints
GET/v1/usersList all users
GET/v1/users/:idRetrieve a user
POST/v1/usersCreate a user
PUT/v1/users/:idUpdate a user
DELETE/v1/users/:idDelete a user
POST/v2/users/batchBatch create users
Authentication
3 endpoints
POST/v1/auth/loginCreate session
POST/v1/auth/refreshRefresh access token
POST/v1/auth/logoutInvalidate session
Products
4 endpoints
GET/v1/productsList products
GET/v1/products/:idRetrieve a product
POST/v1/productsCreate a product
PUT/v1/products/:idUpdate a product
Orders
3 endpoints
GET/v1/ordersList orders
POST/v1/ordersCreate an order
GET/v1/orders/:idRetrieve an order
Payments
2 endpoints
POST/v1/payments/chargeCreate a charge
GET/v1/payments/:id/statusRetrieve charge status
Webhooks
3 endpoints
GET/v1/webhooksList webhooks
POST/v1/webhooksRegister a webhook
DELETE/v1/webhooks/:idDelete a webhook
Analytics
2 endpoints
GET/v1/analytics/overviewUsage summary
GET/v1/analytics/funnelConversion funnel

System Status

Current health of Meridian API services. Updated every 60 seconds.

All systems operational
API Gateway
Latency: 12ms
99.99% uptime
Auth Service
Latency: 8ms
99.98% uptime
Database (Primary)
Latency: 5ms
99.97% uptime
Notification Worker
Latency: 210ms
98.2% uptime — degraded
Cache (Redis)
Latency: 2ms
100% uptime
Webhook Delivery
Latency: 34ms
99.95% uptime

Interactive Console

Test API endpoints directly from your browser with live responses,
auto-generated request IDs, and detailed timing metrics.

Coming Soon

Sign up for early access and we'll notify you when it launches.

Error Handling

Meridian API uses standard HTTP status codes. All errors return a consistent JSON body.

{
  "error": {
    "type": "invalid_request",
    "code": "missing_field",
    "message": "The 'email' field is required.",
    "param": "email",
    "request_id": "req_a1b2c3d4e5f6"
  }
}
200OK — Request succeeded
201Created — Resource created successfully
400Bad Request — Invalid parameters or missing fields
401Unauthorized — Missing or invalid API key
403Forbidden — Insufficient permissions for this action
404Not Found — Resource does not exist
429Rate Limited — Too many requests, retry after cooldown
500Server Error — Unexpected internal error