API Overview

Overview of the soft.house REST API structure, authentication, and conventions.

Base URL

All API requests are made to:

https://api.soft.house

Authentication

Include your API key in every request:

curl https://api.soft.house/wishes \
  -H "Authorization: Bearer sk_live_..."

Request Format

  • Content-Type: application/json
  • Method: Standard REST (GET, POST, PUT, DELETE)
  • Encoding: UTF-8

Response Format

All responses follow a consistent structure:

{
  "data": { },
  "meta": {
    "request_id": "req_abc123",
    "timestamp": "2026-01-20T10:30:00Z"
  }
}

Error Responses

{
  "error": {
    "code": "validation_error",
    "message": "budget.max must be a positive number",
    "field": "budget.max"
  },
  "meta": {
    "request_id": "req_abc123"
  }
}

Protocol Detection

The API automatically detects which protocol to use based on request headers:

HeaderProtocol
X-AP2-Mandate-IDAP2
X-ACP-Session-IDACP
DefaultStandard REST

You can also explicitly set the protocol:

curl https://api.soft.house/wishes \
  -H "Authorization: Bearer sk_live_..." \
  -H "X-Protocol: ap2"

Rate Limits

EndpointLimit
General API100 requests/minute per user
Login attempts5 per 15 minutes per IP
Mandate creation10 per hour per user

Rate limit headers are included in every response:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 97
X-RateLimit-Reset: 1706183400

Pagination

List endpoints support cursor-based pagination:

curl "https://api.soft.house/wishes?limit=10&offset=0"
ParameterTypeDefaultDescription
limitnumber10Items per page (max 100)
offsetnumber0Number of items to skip

Versioning

The API is currently at v2. Version is included in responses:

X-API-Version: 2

Available Endpoints

ResourceDescription
WishesCreate and manage wishes
MandatesAP2/ACP mandate management
PaymentsPayment processing
UsersUser management
WebhooksEvent notifications