{
  "name": "PawForge Art public API",
  "version": "1.2.0",
  "description": "A read-only catalogue for PawForge Art, and a keyed proof API for approved platforms: AI-rendered, painted-style pet portraits, printed on canvas or a phone case. Every proof is free to review before payment.",
  "docs": "https://pawforgeart.com/developers",
  "openapi": "https://pawforgeart.com/api/v1/openapi.json",
  "contact": "curator@pawforgeart.com",
  "authentication": "None for these read endpoints. The proof endpoints (proofApi) need a connector key in the X-PawForge-Key header.",
  "endpoints": [
    {
      "path": "/api/v1",
      "url": "https://pawforgeart.com/api/v1",
      "method": "GET",
      "summary": "What this API is, its endpoints, its documentation and its contact."
    },
    {
      "path": "/api/v1/styles",
      "url": "https://pawforgeart.com/api/v1/styles",
      "method": "GET",
      "summary": "The portrait styles on offer, with sample images and each style's page."
    },
    {
      "path": "/api/v1/products",
      "url": "https://pawforgeart.com/api/v1/products",
      "method": "GET",
      "summary": "Canvas sizes and phone-case styles with exact prices, and the shipping countries."
    },
    {
      "path": "/api/v1/openapi.json",
      "url": "https://pawforgeart.com/api/v1/openapi.json",
      "method": "GET",
      "summary": "This API described in OpenAPI 3.1."
    }
  ],
  "freeProofAllowance": {
    "proofsPerEmail": 10,
    "proofsPerVerifiedEmail": 20,
    "windowDays": 30,
    "note": "Applies today to every proof from the free generator (https://pawforgeart.com/free-pet-portrait-generator), and to connector proofs: 10 per email address every 30 days, and 20 once the address is confirmed."
  },
  "proofApi": {
    "status": "Live for approved platforms: callable only with a connector key the studio issues. There is no public sign-up; write to the contact address to be considered.",
    "host": "https://api.pawforgeart.com",
    "authentication": {
      "type": "apiKey",
      "in": "header",
      "name": "X-PawForge-Key"
    },
    "endpoints": [
      {
        "method": "POST",
        "path": "/api/v1/proofs",
        "url": "https://api.pawforgeart.com/api/v1/proofs",
        "summary": "Start a free proof: send a pet photo, a style id, the user's email address, and an optional orientation (multipart/form-data). Answers 202 with the proof's id."
      },
      {
        "method": "GET",
        "path": "/api/v1/proofs/{id}",
        "url": "https://api.pawforgeart.com/api/v1/proofs/{id}",
        "summary": "Read a proof this key started: its status (processing, ready or failed) and, when ready, an image URL and a checkout URL."
      }
    ],
    "limits": {
      "connectorDailyProofs": 24,
      "maxPhotoBytes": 12582912,
      "maxRequestBytes": 12648448,
      "note": "By default up to 24 free proofs a day per connector; each must also fit the per-address allowance. A photo may be at most 12 MiB, in JPEG, PNG, WEBP."
    }
  }
}
