Developer REST API

Official API specification to programmatically manage member access, integrate external payment checkouts, and query subscriber delivery logs.

Overview & Base URL

The Museed API communicates over HTTPS using JSON-encoded request bodies and returns standard JSON response payloads. All requests require authentication via a secret Bearer token.

Base API URL
https://museed.co/api/v1

Authentication

Authenticate your server-to-server requests by sending your secret API key in the HTTP Authorization header using the Bearer scheme.

Header Format
Authorization: Bearer msd_sk_your_secret_token_here
Security Warning: Your API secret key grants full administrative control to add, renew, and cancel memberships on your platform. Keep it confidential and never expose it in client-side applications.

POST Grant, Renew, or Revoke Access

Creates or updates listener memberships. Supports custom duration timestamps (e.g. annual, monthly), lifetime access, and immediate revocation.

POST /api/v1/access/

Request Payload (JSON)

Parameter Type Requirement Description
email string Required Member's email address (e.g. customer@example.com).
action string Required "grant" (create or renew access) or "revoke" (cancel access).
expires_at ISO 8601 string Optional Expiration date timestamp (e.g. 2027-08-19T23:59:59-03:00). Omit or null for lifetime access.
group string Optional Target platform group name. Omit for default general access.
reference string Optional External order ID or transaction reference (e.g. "order_123").

Code Examples

cURL
curl -X POST "https://museed.co/api/v1/access/" \
  -H "Authorization: Bearer <YOUR_SECRET_TOKEN>" \
  -H "Idempotency-Key: order_123" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "customer@example.com",
    "action": "grant",
    "expires_at": "2027-08-19T23:59:59-03:00",
    "reference": "order_123",
    "group": "Members"
  }'

Response (200 OK)

JSON Response
{
  "ok": true,
  "email": "customer@example.com",
  "result": "granted",
  "expires_at": "2027-08-19T23:59:59-03:00"
}

GET Query Member Access Status

Returns the real-time access state, expiration timestamp, and platform groups for a specific member.

GET /api/v1/access/?email=customer@example.com
cURL
curl -X GET "https://museed.co/api/v1/access/?email=customer@example.com" \
  -H "Authorization: Bearer <YOUR_SECRET_TOKEN>"

Response (200 OK)

JSON Response
{
  "ok": true,
  "email": "customer@example.com",
  "is_active": true,
  "is_access_valid": true,
  "expires_at": "2027-08-19T23:59:59-03:00",
  "reference": "order_123",
  "groups": ["Members"],
  "created_at": "2026-08-26T20:00:00Z"
}

GET Health Check & Token Test

Instantly verifies whether your API token is valid and returns the creator's platform identity.

GET /api/v1/ping/
cURL
curl -X GET "https://museed.co/api/v1/ping/" \
  -H "Authorization: Bearer <YOUR_SECRET_TOKEN>"

Response (200 OK)

JSON Response
{
  "ok": true,
  "authenticated": true,
  "platform": "Creator Studio",
  "username": "creator_name",
  "status": "active"
}

GET Inspect Delivery Logs

Programmatically inspect recent incoming webhook and API delivery logs to debug automated integrations without opening the dashboard.

GET /api/v1/logs/
cURL
curl -X GET "https://museed.co/api/v1/logs/" \
  -H "Authorization: Bearer <YOUR_SECRET_TOKEN>"

Response (200 OK)

JSON Response
{
  "ok": true,
  "total_logs": 2,
  "logs": [
    {
      "status": "processed",
      "result": "granted",
      "email": "customer@example.com",
      "idempotency_key": "order_123",
      "created_at": "2026-08-26 20:30:15"
    }
  ]
}

GET List Platform Groups

Returns the list of platform group names configured for the authenticated platform.

GET /api/v1/groups/
cURL
curl -X GET "https://museed.co/api/v1/groups/" \
  -H "Authorization: Bearer <YOUR_SECRET_TOKEN>"

Response (200 OK)

JSON Response
{
  "ok": true,
  "groups": ["Members", "VIP"]
}

Idempotency & Retries

The API supports idempotent requests via the Idempotency-Key header to prevent double-processing on network retries.

Idempotency-Key: unique_transaction_id_here

When an Idempotency-Key is re-sent, the server returns the cached response instantly without creating duplicate members or extending expiration dates twice.

HTTP Status & Error Responses

All errors return standard HTTP status codes along with a descriptive JSON error payload.

HTTP Status Description
400 Bad Request Missing or invalid payload fields (e.g. invalid email address or date format).
401 Unauthorized Missing, invalid, or expired Bearer token in the Authorization header.
404 Not Found Requested member email does not exist on this platform.