Skip to content
API Reference

An API you’d actually want to ship on.

Public REST API, OpenAPI 3.1 spec and interactive reference, and HMAC-signed webhooks. API keys and webhook subscriptions are not self-serve today.

GET /api/v1/equipment · illustrative
# Illustrative, read-only request. Use your own API key.
# Authorization: Bearer <key> works in place of x-api-key.
curl "https://app.gogoengine.com/api/v1/equipment?page=1&limit=25" \
 -H "x-api-key: ${GOGO_API_KEY}"
response · 200 OK · abridged
{
  "data": [
    {
      "id": "6f1d2c3e-8a4b-4c5d-9e6f-0a1b2c3d4e5f",
      "slug": "pontoon-boat",
      "name": "Pontoon Boat",
      "hourly_rate": null,
      "daily_rate": 285,
      "weekly_rate": 1500,
      "quantity": 2,
      "payment_schedule_type": "full",
      "is_featured": true,
      "location_id": "0b9a8c7d-6e5f-4a3b-8c2d-1e0f9a8b7c6d",
      "category_id": "5e4d3c2b-1a0f-4e9d-8c7b-6a5f4e3d2c1b"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 25,
    "total": 1,
    "totalPages": 1
  }
}
Foundations

The conventions we ship on.

Authentication

Authenticated endpoints take an API key that belongs to one business, in the x-api-key header or as Authorization: Bearer. Health, the OpenAPI spec and the reference are public. Keys carry permissions, read by default. A missing, invalid, revoked or expired key answers 401; a key without the permission an operation needs answers 403. When the account's subscription is not active, every authenticated call answers 402 (subscription_inactive). More than 30 failed key attempts a minute from one address answer 429 (auth_rate_limited).

Pagination

List endpoints are page-based: page starts at 1, and limit defaults to 25 on most lists, up to 100. Larger values are clamped to 100. Responses return data plus a pagination object with page, limit, total and totalPages.

Errors

JSON with an error sentence safe to show a customer. Most failures add a stable code to branch on and a retryable flag; some add detail or hint. A 500 or 503 means the engine could not answer, never an empty result.

Idempotency

Creating a customer or a booking accepts Idempotency-Key. A repeated key returns the original response without creating a second record; the same key with a different body is refused.

Rate limits

Each API key has a per-minute limit, 100 requests by default. Headers include X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset; over the limit answers 429 (rate_limited) with Retry-After. If the limiter cannot be reached, the call answers 503 (rate_limit_unavailable), which is safe to retry.

Versioning

URL-versioned. The current and only version is /v1.