Beta Early access โ€” you're seeing this before public launch. Browse our books See terms of early access

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