{
 "components": {
  "schemas": {
   "ComposedEndpointCreate": {
    "properties": {
     "allow_adhoc_loras": {
      "default": false,
      "title": "Allow Adhoc Loras",
      "type": "boolean"
     },
     "base_model_id": {
      "maxLength": 100,
      "minLength": 1,
      "title": "Base Model Id",
      "type": "string"
     },
     "composition": {
      "items": {
       "type": "object"
      },
      "maxItems": 5,
      "title": "Composition",
      "type": "array"
     }
    },
    "required": [
     "base_model_id"
    ],
    "title": "ComposedEndpointCreate",
    "type": "object"
   },
   "ComposedGenerateBody": {
    "properties": {
     "loras": {
      "items": {
       "type": "object"
      },
      "maxItems": 5,
      "title": "Loras",
      "type": "array"
     },
     "n": {
      "default": 1,
      "maximum": 4.0,
      "minimum": 1.0,
      "title": "N",
      "type": "integer"
     },
     "params": {
      "title": "Params",
      "type": "object"
     },
     "prompt": {
      "maxLength": 4000,
      "minLength": 1,
      "title": "Prompt",
      "type": "string"
     },
     "response_format": {
      "default": "b64_json",
      "pattern": "^(b64_json|png)$",
      "title": "Response Format",
      "type": "string"
     },
     "seed": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Seed"
     }
    },
    "required": [
     "prompt"
    ],
    "title": "ComposedGenerateBody",
    "type": "object"
   },
   "ConfigCreate": {
    "properties": {
     "is_default": {
      "default": false,
      "title": "Is Default",
      "type": "boolean"
     },
     "name": {
      "maxLength": 100,
      "minLength": 1,
      "title": "Name",
      "type": "string"
     },
     "negative_default": {
      "anyOf": [
       {
        "maxLength": 2000,
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Negative Default"
     },
     "params": {
      "title": "Params",
      "type": "object"
     },
     "trigger_words": {
      "items": {
       "type": "string"
      },
      "maxItems": 20,
      "title": "Trigger Words",
      "type": "array"
     }
    },
    "required": [
     "name"
    ],
    "title": "ConfigCreate",
    "type": "object"
   },
   "ConfigPatch": {
    "properties": {
     "name": {
      "anyOf": [
       {
        "maxLength": 100,
        "minLength": 1,
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Name"
     },
     "negative_default": {
      "anyOf": [
       {
        "maxLength": 2000,
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Negative Default"
     },
     "params": {
      "anyOf": [
       {
        "type": "object"
       },
       {
        "type": "null"
       }
      ],
      "title": "Params"
     },
     "trigger_words": {
      "anyOf": [
       {
        "items": {
         "type": "string"
        },
        "maxItems": 20,
        "type": "array"
       },
       {
        "type": "null"
       }
      ],
      "title": "Trigger Words"
     }
    },
    "title": "ConfigPatch",
    "type": "object"
   },
   "EndpointCreate": {
    "properties": {
     "acl_mode": {
      "default": "owner_only",
      "pattern": "^(owner_only|anyone_with_link|specific_accounts)$",
      "title": "Acl Mode",
      "type": "string"
     },
     "endpoint_type": {
      "default": "api",
      "pattern": "^(api|hosted_page|embed)$",
      "title": "Endpoint Type",
      "type": "string"
     },
     "serving_config_id": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Serving Config Id"
     }
    },
    "title": "EndpointCreate",
    "type": "object"
   },
   "EndpointPatch": {
    "properties": {
     "acl_mode": {
      "anyOf": [
       {
        "pattern": "^(owner_only|anyone_with_link|specific_accounts)$",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Acl Mode"
     },
     "serving_config_id": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Serving Config Id"
     }
    },
    "title": "EndpointPatch",
    "type": "object"
   },
   "FreezeBody": {
    "properties": {
     "frozen": {
      "title": "Frozen",
      "type": "boolean"
     },
     "reason": {
      "title": "Reason",
      "type": "string"
     }
    },
    "required": [
     "frozen",
     "reason"
    ],
    "title": "FreezeBody",
    "type": "object"
   },
   "GenerateBody": {
    "properties": {
     "n": {
      "default": 1,
      "maximum": 4.0,
      "minimum": 1.0,
      "title": "N",
      "type": "integer"
     },
     "params": {
      "title": "Params",
      "type": "object"
     },
     "prompt": {
      "maxLength": 4000,
      "minLength": 1,
      "title": "Prompt",
      "type": "string"
     },
     "response_format": {
      "default": "b64_json",
      "pattern": "^(b64_json|png)$",
      "title": "Response Format",
      "type": "string"
     },
     "seed": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Seed"
     }
    },
    "required": [
     "prompt"
    ],
    "title": "GenerateBody",
    "type": "object"
   },
   "GrantBody": {
    "properties": {
     "account_id": {
      "anyOf": [
       {
        "maxLength": 100,
        "minLength": 1,
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Account Id"
     },
     "email": {
      "anyOf": [
       {
        "maxLength": 320,
        "minLength": 3,
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Email"
     }
    },
    "title": "GrantBody",
    "type": "object"
   },
   "HTTPValidationError": {
    "properties": {
     "detail": {
      "items": {
       "$ref": "#/components/schemas/ValidationError"
      },
      "title": "Detail",
      "type": "array"
     }
    },
    "title": "HTTPValidationError",
    "type": "object"
   },
   "InactivityBody": {
    "properties": {
     "days": {
      "default": 180,
      "title": "Days",
      "type": "integer"
     },
     "dry_run": {
      "default": false,
      "title": "Dry Run",
      "type": "boolean"
     }
    },
    "title": "InactivityBody",
    "type": "object"
   },
   "LinkCreate": {
    "properties": {
     "expires_in_days": {
      "anyOf": [
       {
        "maximum": 365.0,
        "minimum": 1.0,
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Expires In Days"
     },
     "max_generations": {
      "anyOf": [
       {
        "maximum": 1000000.0,
        "minimum": 1.0,
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Max Generations"
     }
    },
    "title": "LinkCreate",
    "type": "object"
   },
   "ListingBody": {
    "properties": {
     "composable": {
      "anyOf": [
       {
        "type": "boolean"
       },
       {
        "type": "null"
       }
      ],
      "title": "Composable"
     },
     "listed": {
      "title": "Listed",
      "type": "boolean"
     },
     "price_multiplier": {
      "anyOf": [
       {
        "maximum": 1000.0,
        "minimum": 1.0,
        "type": "number"
       },
       {
        "type": "null"
       }
      ],
      "title": "Price Multiplier"
     }
    },
    "required": [
     "listed"
    ],
    "title": "ListingBody",
    "type": "object"
   },
   "PreviewBody": {
    "properties": {
     "civitai_url": {
      "maxLength": 500,
      "minLength": 10,
      "title": "Civitai Url",
      "type": "string"
     }
    },
    "required": [
     "civitai_url"
    ],
    "title": "PreviewBody",
    "type": "object"
   },
   "QuotaBody": {
    "properties": {
     "justification": {
      "anyOf": [
       {
        "maxLength": 2000,
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Justification"
     },
     "requested_cap": {
      "maximum": 500.0,
      "minimum": 1.0,
      "title": "Requested Cap",
      "type": "integer"
     }
    },
    "required": [
     "requested_cap"
    ],
    "title": "QuotaBody",
    "type": "object"
   },
   "RejectBody": {
    "properties": {
     "freeze": {
      "default": false,
      "title": "Freeze",
      "type": "boolean"
     },
     "reason": {
      "title": "Reason",
      "type": "string"
     }
    },
    "required": [
     "reason"
    ],
    "title": "RejectBody",
    "type": "object"
   },
   "SubmitBody": {
    "properties": {
     "civitai_url": {
      "maxLength": 500,
      "minLength": 10,
      "title": "Civitai Url",
      "type": "string"
     },
     "display_name": {
      "anyOf": [
       {
        "maxLength": 200,
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Display Name"
     }
    },
    "required": [
     "civitai_url"
    ],
    "title": "SubmitBody",
    "type": "object"
   },
   "TakedownBody": {
    "properties": {
     "reason": {
      "title": "Reason",
      "type": "string"
     }
    },
    "required": [
     "reason"
    ],
    "title": "TakedownBody",
    "type": "object"
   },
   "ValidationError": {
    "properties": {
     "loc": {
      "items": {
       "anyOf": [
        {
         "type": "string"
        },
        {
         "type": "integer"
        }
       ]
      },
      "title": "Location",
      "type": "array"
     },
     "msg": {
      "title": "Message",
      "type": "string"
     },
     "type": {
      "title": "Error Type",
      "type": "string"
     }
    },
    "required": [
     "loc",
     "msg",
     "type"
    ],
    "title": "ValidationError",
    "type": "object"
   }
  }
 },
 "info": {
  "description": "Serverless serving for community image models: every checkpoint a dedicated endpoint, LoRA composition, verified provenance, creator payouts. Authenticate with `Authorization: Bearer epm_live_...`.",
  "title": "endpoint-per-model",
  "version": "0.1.0"
 },
 "openapi": "3.1.0",
 "paths": {
  "/.well-known/epm-attestation": {
   "get": {
    "operationId": "attestation_key__well_known_epm_attestation_get",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Attestation Key  Well Known Epm Attestation Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Attestation Key"
   }
  },
  "/v1/account": {
   "get": {
    "operationId": "account_v1_account_get",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Account V1 Account Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Account"
   }
  },
  "/v1/accounts/lookup": {
   "get": {
    "description": "email -> account_id, for feeding the endpoint-grant ACL. Requires\nan authenticated key; returns only the id (no profile leakage).",
    "operationId": "lookup_account_v1_accounts_lookup_get",
    "parameters": [
     {
      "in": "query",
      "name": "email",
      "required": true,
      "schema": {
       "title": "Email",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Lookup Account V1 Accounts Lookup Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Lookup Account"
   }
  },
  "/v1/assets": {
   "get": {
    "description": "LISTED models only, SFW by default, ranked by 30-day usage \u2014\nranked in SQL with a (usage, id) keyset cursor, so the order holds\nACROSS pages, not just within one.",
    "operationId": "catalog_v1_assets_get",
    "parameters": [
     {
      "in": "query",
      "name": "family",
      "required": false,
      "schema": {
       "anyOf": [
        {
         "type": "string"
        },
        {
         "type": "null"
        }
       ],
       "title": "Family"
      }
     },
     {
      "in": "query",
      "name": "q",
      "required": false,
      "schema": {
       "anyOf": [
        {
         "maxLength": 100,
         "type": "string"
        },
        {
         "type": "null"
        }
       ],
       "title": "Q"
      }
     },
     {
      "in": "query",
      "name": "include_nsfw",
      "required": false,
      "schema": {
       "default": false,
       "title": "Include Nsfw",
       "type": "boolean"
      }
     },
     {
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "default": 50,
       "title": "Limit",
       "type": "integer"
      }
     },
     {
      "in": "query",
      "name": "cursor",
      "required": false,
      "schema": {
       "anyOf": [
        {
         "type": "string"
        },
        {
         "type": "null"
        }
       ],
       "title": "Cursor"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Catalog V1 Assets Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Catalog"
   }
  },
  "/v1/assets/by-civitai/{civitai_model_id}": {
   "get": {
    "description": "'Is this Civitai model servable on epm?' \u2014 the bridge for builders\nbrowsing the showroom. Never leaks unlisted models.",
    "operationId": "by_civitai_v1_assets_by_civitai__civitai_model_id__get",
    "parameters": [
     {
      "in": "path",
      "name": "civitai_model_id",
      "required": true,
      "schema": {
       "title": "Civitai Model Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response By Civitai V1 Assets By Civitai  Civitai Model Id  Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "By Civitai"
   }
  },
  "/v1/auth/google": {
   "get": {
    "operationId": "auth_google_v1_auth_google_get",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Auth Google V1 Auth Google Get"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Auth Google"
   }
  },
  "/v1/auth/google/callback": {
   "get": {
    "operationId": "auth_google_callback_v1_auth_google_callback_get",
    "parameters": [
     {
      "in": "query",
      "name": "code",
      "required": false,
      "schema": {
       "default": "",
       "title": "Code",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {}
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Auth Google Callback"
   }
  },
  "/v1/billing/checkout": {
   "post": {
    "description": "A prepaid credit-pack purchase. Real Stripe Checkout when a secret\nkey is configured; the dev fake keeps the identical flow shape in CI.",
    "operationId": "billing_checkout_v1_billing_checkout_post",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Billing Checkout V1 Billing Checkout Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Billing Checkout"
   }
  },
  "/v1/billing/webhook": {
   "post": {
    "description": "Stripe webhook. Idempotent by event id; a checkout.session.completed\ncredits the ledger \u2014 the only thing Stripe is ever allowed to do (the\nledger is the billing engine). With stripe_webhook_secret configured\nthe Stripe-Signature header is REQUIRED and verified over the raw\nbody; without it (dev/CI) the fake JSON contract applies.",
    "operationId": "billing_webhook_v1_billing_webhook_post",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Billing Webhook V1 Billing Webhook Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Billing Webhook"
   }
  },
  "/v1/cards/{creator_slug}/{model_slug}": {
   "get": {
    "operationId": "card_v1_cards__creator_slug___model_slug__get",
    "parameters": [
     {
      "in": "path",
      "name": "creator_slug",
      "required": true,
      "schema": {
       "title": "Creator Slug",
       "type": "string"
      }
     },
     {
      "in": "path",
      "name": "model_slug",
      "required": true,
      "schema": {
       "title": "Model Slug",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Card V1 Cards  Creator Slug   Model Slug  Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Card"
   }
  },
  "/v1/earnings": {
   "get": {
    "description": "The creator side of /usage: spread EARNED per model or per day.\nSource of truth is the ledger \u2014 the positive generation postings to\nthis account (the only way a generation credits an account is as the\nlisted owner's spread), attributed via the request event.",
    "operationId": "earnings_v1_earnings_get",
    "parameters": [
     {
      "in": "query",
      "name": "from_",
      "required": false,
      "schema": {
       "anyOf": [
        {
         "type": "string"
        },
        {
         "type": "null"
        }
       ],
       "title": "From "
      }
     },
     {
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "anyOf": [
        {
         "type": "string"
        },
        {
         "type": "null"
        }
       ],
       "title": "To"
      }
     },
     {
      "in": "query",
      "name": "group_by",
      "required": false,
      "schema": {
       "default": "model",
       "title": "Group By",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Earnings V1 Earnings Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Earnings"
   }
  },
  "/v1/endpoints": {
   "get": {
    "description": "Endpoints the caller COMPOSED (their account id), across bases\nthey may not own.",
    "operationId": "list_own_endpoints_v1_endpoints_get",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response List Own Endpoints V1 Endpoints Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "List Own Endpoints"
   },
   "post": {
    "description": "A callable composition (STRATEGY-PIVOT \u00a76): one base checkpoint +\n0..N LoRAs. Owned by the COMPOSER \u2014 referencing is consumption, so\nthe base and every LoRA just need to be listed + composable (or the\ncaller's own); every generation pays each component's owner.",
    "operationId": "create_composed_endpoint_v1_endpoints_post",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/ComposedEndpointCreate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Create Composed Endpoint V1 Endpoints Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Create Composed Endpoint"
   }
  },
  "/v1/endpoints/{endpoint_id}": {
   "patch": {
    "operationId": "patch_endpoint_v1_endpoints__endpoint_id__patch",
    "parameters": [
     {
      "in": "path",
      "name": "endpoint_id",
      "required": true,
      "schema": {
       "title": "Endpoint Id",
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/EndpointPatch"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Patch Endpoint V1 Endpoints  Endpoint Id  Patch",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Patch Endpoint"
   }
  },
  "/v1/endpoints/{endpoint_id}/attestation": {
   "get": {
    "description": "Composition attestation (STRATEGY-PIVOT \u00a76): signs the base AND\nthe ordered component list \u2014 fuse order is part of the served\nidentity (docs/findings/lora-fuse-spike.md), so the statement binds\nthe exact stack, in the exact order, to its sources.",
    "operationId": "get_endpoint_attestation_v1_endpoints__endpoint_id__attestation_get",
    "parameters": [
     {
      "in": "path",
      "name": "endpoint_id",
      "required": true,
      "schema": {
       "title": "Endpoint Id",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Get Endpoint Attestation V1 Endpoints  Endpoint Id  Attestation Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Get Endpoint Attestation"
   }
  },
  "/v1/endpoints/{endpoint_id}/generate": {
   "post": {
    "description": "Serve a COMPOSITION (STRATEGY-PIVOT \u00a76): the endpoint's base\ncheckpoint fused with its LoRA stack in canonical order. The caller\n(the composer, v0) pays floor + every third-party component owner's\nspread \u2014 one ledger event, N+2 sum-zero postings.",
    "operationId": "generate_composed_v1_endpoints__endpoint_id__generate_post",
    "parameters": [
     {
      "in": "path",
      "name": "endpoint_id",
      "required": true,
      "schema": {
       "title": "Endpoint Id",
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/ComposedGenerateBody"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {}
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Generate Composed"
   }
  },
  "/v1/endpoints/{endpoint_id}/grants": {
   "post": {
    "operationId": "add_grant_v1_endpoints__endpoint_id__grants_post",
    "parameters": [
     {
      "in": "path",
      "name": "endpoint_id",
      "required": true,
      "schema": {
       "title": "Endpoint Id",
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/GrantBody"
       }
      }
     },
     "required": true
    },
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Add Grant V1 Endpoints  Endpoint Id  Grants Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Add Grant"
   }
  },
  "/v1/endpoints/{endpoint_id}/grants/{account_id}": {
   "delete": {
    "operationId": "remove_grant_v1_endpoints__endpoint_id__grants__account_id__delete",
    "parameters": [
     {
      "in": "path",
      "name": "endpoint_id",
      "required": true,
      "schema": {
       "title": "Endpoint Id",
       "type": "string"
      }
     },
     {
      "in": "path",
      "name": "account_id",
      "required": true,
      "schema": {
       "title": "Account Id",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Remove Grant V1 Endpoints  Endpoint Id  Grants  Account Id  Delete",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Remove Grant"
   }
  },
  "/v1/endpoints/{endpoint_id}/link": {
   "delete": {
    "operationId": "revoke_link_v1_endpoints__endpoint_id__link_delete",
    "parameters": [
     {
      "in": "path",
      "name": "endpoint_id",
      "required": true,
      "schema": {
       "title": "Endpoint Id",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Revoke Link V1 Endpoints  Endpoint Id  Link Delete",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Revoke Link"
   },
   "post": {
    "description": "Mint (or rotate) the endpoint's secret link. The token is shown\nexactly once; only its sha256 is stored. Whoever holds it can call\nthe endpoint with no epm account \u2014 the OWNER pays per generation.\nOptional bounds: expiry and a generation budget; rotating resets the\ncounter and re-applies whatever bounds this call sets.",
    "operationId": "mint_link_v1_endpoints__endpoint_id__link_post",
    "parameters": [
     {
      "in": "path",
      "name": "endpoint_id",
      "required": true,
      "schema": {
       "title": "Endpoint Id",
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "anyOf": [
         {
          "$ref": "#/components/schemas/LinkCreate"
         },
         {
          "type": "null"
         }
        ],
        "title": "Body"
       }
      }
     }
    },
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Mint Link V1 Endpoints  Endpoint Id  Link Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Mint Link"
   }
  },
  "/v1/families": {
   "get": {
    "operationId": "families_v1_families_get",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Families V1 Families Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Families"
   }
  },
  "/v1/keys": {
   "get": {
    "operationId": "list_keys_v1_keys_get",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response List Keys V1 Keys Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "List Keys"
   },
   "post": {
    "operationId": "create_key_v1_keys_post",
    "parameters": [
     {
      "in": "query",
      "name": "name",
      "required": false,
      "schema": {
       "anyOf": [
        {
         "type": "string"
        },
        {
         "type": "null"
        }
       ],
       "title": "Name"
      }
     }
    ],
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Create Key V1 Keys Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Create Key"
   }
  },
  "/v1/keys/{key_id}": {
   "delete": {
    "operationId": "revoke_key_v1_keys__key_id__delete",
    "parameters": [
     {
      "in": "path",
      "name": "key_id",
      "required": true,
      "schema": {
       "title": "Key Id",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Revoke Key V1 Keys  Key Id  Delete",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Revoke Key"
   }
  },
  "/v1/link/{token}": {
   "get": {
    "description": "What the link holder sees before generating: the model's face and\nits knob schema \u2014 enough to build a client or a hosted page on.",
    "operationId": "link_info_v1_link__token__get",
    "parameters": [
     {
      "in": "path",
      "name": "token",
      "required": true,
      "schema": {
       "title": "Token",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Link Info V1 Link  Token  Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Link Info"
   }
  },
  "/v1/link/{token}/generate": {
   "post": {
    "operationId": "link_generate_v1_link__token__generate_post",
    "parameters": [
     {
      "in": "path",
      "name": "token",
      "required": true,
      "schema": {
       "title": "Token",
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/GenerateBody"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {}
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Link Generate"
   }
  },
  "/v1/link/{token}/requests/{request_id}": {
   "get": {
    "description": "Poll a link-started render \u2014 same contract as GET /requests/{id},\nscoped by the link's model instead of an account.",
    "operationId": "link_request_status_v1_link__token__requests__request_id__get",
    "parameters": [
     {
      "in": "path",
      "name": "token",
      "required": true,
      "schema": {
       "title": "Token",
       "type": "string"
      }
     },
     {
      "in": "path",
      "name": "request_id",
      "required": true,
      "schema": {
       "title": "Request Id",
       "type": "string"
      }
     },
     {
      "in": "query",
      "name": "wait",
      "required": false,
      "schema": {
       "default": 0,
       "title": "Wait",
       "type": "number"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Link Request Status V1 Link  Token  Requests  Request Id  Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Link Request Status"
   }
  },
  "/v1/models": {
   "get": {
    "operationId": "list_models_v1_models_get",
    "parameters": [
     {
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "default": 50,
       "title": "Limit",
       "type": "integer"
      }
     },
     {
      "in": "query",
      "name": "cursor",
      "required": false,
      "schema": {
       "anyOf": [
        {
         "type": "string"
        },
        {
         "type": "null"
        }
       ],
       "title": "Cursor"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response List Models V1 Models Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "List Models"
   },
   "post": {
    "operationId": "submit_model_v1_models_post",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/SubmitBody"
       }
      }
     },
     "required": true
    },
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Submit Model V1 Models Post"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Submit Model"
   }
  },
  "/v1/models/preview": {
   "post": {
    "description": "The read-only prefix of Gate 0: everything the submit screen wants\nto show BEFORE anything is committed. Fetches the live listing, runs\nthe license verdict and duplicate lookup, persists nothing.",
    "operationId": "preview_model_v1_models_preview_post",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/PreviewBody"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Preview Model V1 Models Preview Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Preview Model"
   }
  },
  "/v1/models/{model_id}": {
   "delete": {
    "operationId": "archive_model_v1_models__model_id__delete",
    "parameters": [
     {
      "in": "path",
      "name": "model_id",
      "required": true,
      "schema": {
       "title": "Model Id",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Archive Model V1 Models  Model Id  Delete",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Archive Model"
   },
   "get": {
    "operationId": "get_model_v1_models__model_id__get",
    "parameters": [
     {
      "in": "path",
      "name": "model_id",
      "required": true,
      "schema": {
       "title": "Model Id",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Get Model V1 Models  Model Id  Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Get Model"
   }
  },
  "/v1/models/{model_id}/attestation": {
   "get": {
    "operationId": "get_attestation_v1_models__model_id__attestation_get",
    "parameters": [
     {
      "in": "path",
      "name": "model_id",
      "required": true,
      "schema": {
       "title": "Model Id",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Get Attestation V1 Models  Model Id  Attestation Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Get Attestation"
   }
  },
  "/v1/models/{model_id}/endpoints": {
   "get": {
    "operationId": "list_endpoints_v1_models__model_id__endpoints_get",
    "parameters": [
     {
      "in": "path",
      "name": "model_id",
      "required": true,
      "schema": {
       "title": "Model Id",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response List Endpoints V1 Models  Model Id  Endpoints Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "List Endpoints"
   },
   "post": {
    "description": "Another endpoint over the model \u2014 its own config, ACL, and (later)\nsecret link; e.g. an owner-only tuning endpoint next to the shared one.",
    "operationId": "create_endpoint_v1_models__model_id__endpoints_post",
    "parameters": [
     {
      "in": "path",
      "name": "model_id",
      "required": true,
      "schema": {
       "title": "Model Id",
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/EndpointCreate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Create Endpoint V1 Models  Model Id  Endpoints Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Create Endpoint"
   }
  },
  "/v1/models/{model_id}/generate": {
   "post": {
    "operationId": "generate_v1_models__model_id__generate_post",
    "parameters": [
     {
      "in": "path",
      "name": "model_id",
      "required": true,
      "schema": {
       "title": "Model Id",
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/GenerateBody"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {}
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Generate"
   }
  },
  "/v1/models/{model_id}/listing": {
   "patch": {
    "description": "The listing toggle (STRATEGY-PIVOT \u00a74): flips a verified, parked,\npermissive model between unlisted (owner + grants/links at floor) and\nlisted (any builder pays floor x price_multiplier).",
    "operationId": "set_listing_v1_models__model_id__listing_patch",
    "parameters": [
     {
      "in": "path",
      "name": "model_id",
      "required": true,
      "schema": {
       "title": "Model Id",
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/ListingBody"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Set Listing V1 Models  Model Id  Listing Patch",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Set Listing"
   }
  },
  "/v1/models/{model_id}/serving-configs": {
   "get": {
    "operationId": "list_configs_v1_models__model_id__serving_configs_get",
    "parameters": [
     {
      "in": "path",
      "name": "model_id",
      "required": true,
      "schema": {
       "title": "Model Id",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response List Configs V1 Models  Model Id  Serving Configs Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "List Configs"
   },
   "post": {
    "description": "A second (third\u2026) preset for the model \u2014 'fast draft' vs 'quality'\n(\u00a73b: configs are first-class, shared by N endpoints).",
    "operationId": "create_config_v1_models__model_id__serving_configs_post",
    "parameters": [
     {
      "in": "path",
      "name": "model_id",
      "required": true,
      "schema": {
       "title": "Model Id",
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/ConfigCreate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Create Config V1 Models  Model Id  Serving Configs Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Create Config"
   }
  },
  "/v1/onboarding-requests": {
   "get": {
    "description": "Own funnels, newest first \u2014 the console's 'pending verifications'\npanel. The 202 from POST /models is no longer the only place the\nrequest id and code ever appear.",
    "operationId": "list_requests_v1_onboarding_requests_get",
    "parameters": [
     {
      "in": "query",
      "name": "state",
      "required": false,
      "schema": {
       "anyOf": [
        {
         "type": "string"
        },
        {
         "type": "null"
        }
       ],
       "title": "State"
      }
     },
     {
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "default": 50,
       "title": "Limit",
       "type": "integer"
      }
     },
     {
      "in": "query",
      "name": "cursor",
      "required": false,
      "schema": {
       "anyOf": [
        {
         "type": "string"
        },
        {
         "type": "null"
        }
       ],
       "title": "Cursor"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response List Requests V1 Onboarding Requests Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "List Requests"
   }
  },
  "/v1/onboarding-requests/{request_id}": {
   "delete": {
    "description": "Cancel a funnel that has not verified yet (wrong URL, changed\nmind) \u2014 user-cleanable instead of expiry-only.",
    "operationId": "cancel_request_v1_onboarding_requests__request_id__delete",
    "parameters": [
     {
      "in": "path",
      "name": "request_id",
      "required": true,
      "schema": {
       "title": "Request Id",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Cancel Request V1 Onboarding Requests  Request Id  Delete",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Cancel Request"
   },
   "get": {
    "operationId": "get_request_v1_onboarding_requests__request_id__get",
    "parameters": [
     {
      "in": "path",
      "name": "request_id",
      "required": true,
      "schema": {
       "title": "Request Id",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Get Request V1 Onboarding Requests  Request Id  Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Get Request"
   }
  },
  "/v1/onboarding-requests/{request_id}/verify": {
   "post": {
    "operationId": "verify_request_v1_onboarding_requests__request_id__verify_post",
    "parameters": [
     {
      "in": "path",
      "name": "request_id",
      "required": true,
      "schema": {
       "title": "Request Id",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Verify Request V1 Onboarding Requests  Request Id  Verify Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Verify Request"
   }
  },
  "/v1/payouts": {
   "get": {
    "description": "The money page: spendable balance, lifetime earned spread, what a\ncash-out could take today (under the risk gates), and history.",
    "operationId": "payouts_status_v1_payouts_get",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Payouts Status V1 Payouts Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Payouts Status"
   }
  },
  "/v1/payouts/connect": {
   "delete": {
    "description": "Stop receiving cash-outs; earnings keep accruing as spendable\ncredit. Reconnecting later reuses the same Connect account.",
    "operationId": "payouts_disconnect_v1_payouts_connect_delete",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Payouts Disconnect V1 Payouts Connect Delete",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Payouts Disconnect"
   },
   "post": {
    "description": "Start (or resume) Connect Express onboarding. Idempotent: an\nalready-connected account just gets a fresh onboarding link \u2014 Stripe\naccount links are single-use, re-minting is the contract.",
    "operationId": "payouts_connect_v1_payouts_connect_post",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Payouts Connect V1 Payouts Connect Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Payouts Connect"
   }
  },
  "/v1/payouts/dashboard": {
   "post": {
    "description": "A single-use Stripe Express dashboard link \u2014 bank account, KYC,\ntransfer arrival live there; the money NUMBERS live here.",
    "operationId": "payouts_dashboard_v1_payouts_dashboard_post",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Payouts Dashboard V1 Payouts Dashboard Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Payouts Dashboard"
   }
  },
  "/v1/payouts/request": {
   "post": {
    "description": "Cash out payable earnings \u2014 the ONLY way a payout starts (there is\nno automatic schedule). One open payout per account; the response is\nthe same generic shape whether the transfer runs now or a human\nlooks first.",
    "operationId": "payouts_request_v1_payouts_request_post",
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Payouts Request V1 Payouts Request Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Payouts Request"
   }
  },
  "/v1/quota-requests": {
   "get": {
    "description": "Own quota requests with their verdicts \u2014 closes the loop the\nsubmit-only surface left open ('did my cap request go anywhere?').",
    "operationId": "list_own_requests_v1_quota_requests_get",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response List Own Requests V1 Quota Requests Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "List Own Requests"
   },
   "post": {
    "operationId": "request_spots_v1_quota_requests_post",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/QuotaBody"
       }
      }
     },
     "required": true
    },
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Request Spots V1 Quota Requests Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Request Spots"
   }
  },
  "/v1/requests/{request_id}": {
   "get": {
    "operationId": "get_request_v1_requests__request_id__get",
    "parameters": [
     {
      "in": "path",
      "name": "request_id",
      "required": true,
      "schema": {
       "title": "Request Id",
       "type": "string"
      }
     },
     {
      "in": "query",
      "name": "wait",
      "required": false,
      "schema": {
       "default": 0,
       "title": "Wait",
       "type": "number"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Get Request V1 Requests  Request Id  Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Get Request"
   }
  },
  "/v1/serving-configs/{config_id}": {
   "patch": {
    "operationId": "patch_config_v1_serving_configs__config_id__patch",
    "parameters": [
     {
      "in": "path",
      "name": "config_id",
      "required": true,
      "schema": {
       "title": "Config Id",
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/ConfigPatch"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Patch Config V1 Serving Configs  Config Id  Patch",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Patch Config"
   }
  },
  "/v1/status": {
   "get": {
    "operationId": "status_v1_status_get",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Status V1 Status Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Status"
   }
  },
  "/v1/usage": {
   "get": {
    "operationId": "usage_v1_usage_get",
    "parameters": [
     {
      "in": "query",
      "name": "from_",
      "required": false,
      "schema": {
       "anyOf": [
        {
         "type": "string"
        },
        {
         "type": "null"
        }
       ],
       "title": "From "
      }
     },
     {
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "anyOf": [
        {
         "type": "string"
        },
        {
         "type": "null"
        }
       ],
       "title": "To"
      }
     },
     {
      "in": "query",
      "name": "group_by",
      "required": false,
      "schema": {
       "default": "model",
       "title": "Group By",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Usage V1 Usage Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Usage"
   }
  }
 },
 "servers": [
  {
   "description": "staging",
   "url": "https://epm-router.uridemay.workers.dev"
  }
 ]
}
