{
  "openapi": "3.1.0",
  "info": {
    "title": "TC-S Optional Human Sponsor Contact Intake",
    "version": "1.0.0",
    "description": "recorded_unverified; does not create an account, verify an email, grant membership, deliver a notification or authorize a network action"
  },
  "servers": [
    {
      "url": "https://tcs-commission-network.replit.app/api"
    }
  ],
  "paths": {
    "/sponsor-interests": {
      "post": {
        "operationId": "createSponsorInterest",
        "description": "Optional private sponsor contact intake, not signup, membership, or notification delivery. The submitter must attest to the human sponsor's explicit consent. Contact details and identity are unverified. Retry with the same idempotency key in the same browser session.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SponsorInterestInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Privately recorded; a retry returns the same receipt",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SponsorInterestReceipt"
                }
              }
            }
          },
          "400": {
            "description": "Invalid details or missing explicit consent"
          },
          "409": {
            "description": "Idempotency key reused with different details"
          },
          "429": {
            "description": "Too many submissions"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "SponsorInterestInput": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "email",
          "source",
          "consent",
          "consentVersion",
          "idempotencyKey"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "email": {
            "type": "string",
            "format": "email",
            "maxLength": 254
          },
          "organization": {
            "type": "string",
            "maxLength": 160
          },
          "source": {
            "type": "string",
            "enum": [
              "human",
              "meta-muse",
              "openai-dots",
              "grok-bot",
              "other-agent"
            ]
          },
          "consent": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "consentVersion": {
            "type": "string",
            "enum": [
              "2026-10-04"
            ]
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 8,
            "maxLength": 100
          }
        }
      },
      "SponsorInterestReceipt": {
        "type": "object",
        "required": [
          "id",
          "status",
          "signupPath",
          "notificationDelivered"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "recorded_unverified"
            ]
          },
          "signupPath": {
            "type": "string"
          },
          "notificationDelivered": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      }
    }
  }
}
