{
  "schema_version": "1.0",
  "mode": "agent_onboarding",
  "name": "AI Content Drop",
  "summary": "Generate AI video and images across multiple leading AI video and image models on one credit balance. Reading the catalogue, pricing a generation, and asking questions in natural language need no account. Generating needs an API key.",
  "documentation": "https://aicontentdrop.com/docs",
  "agent_mode_url": "https://aicontentdrop.com/?mode=agent",
  "zero_auth_access": true,
  "free_tier_available": true,
  "sandbox_available": true,
  "self_serve_api_keys": true,
  "contact_sales_required": false,
  "waitlist": false,
  "approval_required": false,
  "authentication": {
    "type": "api_key",
    "scheme": "Bearer",
    "header": "Authorization",
    "format": "Bearer acd_live_…",
    "auth_required_for_generation": true,
    "anonymous_reads_available": true,
    "self_serve": true,
    "create_key_url": "https://aicontentdrop.com/settings/integrations",
    "read_token_registration_url": "https://aicontentdrop.com/agent/auth/register",
    "documentation": "https://aicontentdrop.com/docs/authentication"
  },
  "api_key_minting": {
    "self_serve": true,
    "human_action_required": true,
    "url": "https://aicontentdrop.com/settings/integrations",
    "output_format": "acd_live_…",
    "anonymous_read_token_is_not_an_api_key": true
  },
  "free_tier": {
    "available": true,
    "price_usd": 0,
    "credits": 10,
    "allocation": "one_time",
    "renews": false,
    "card_required": false,
    "email_verification_required": true,
    "signup_url": "https://aicontentdrop.com/register",
    "pricing_url": "https://aicontentdrop.com/pricing.md",
    "plans_api": "https://aicontentdrop.com/v1/plans",
    "models": [
      "z_image",
      "flux_2",
      "seedream_4_5"
    ],
    "video": false
  },
  "sandbox": {
    "available": true,
    "auth_required": false,
    "credits_charged": 0,
    "header": {
      "name": "X-Sandbox",
      "value": "true"
    },
    "actions": [
      "generate_video",
      "generate_image"
    ],
    "endpoints": [
      "https://aicontentdrop.com/v1/generate/video",
      "https://aicontentdrop.com/v1/generate/image"
    ],
    "documentation": "https://aicontentdrop.com/docs/sandbox"
  },
  "actions": [
    {
      "id": "list_models",
      "method": "GET",
      "url": "https://aicontentdrop.com/v1/models",
      "auth_required": false,
      "credits_charged": 0,
      "description": "List public video and image models with flat credit costs."
    },
    {
      "id": "estimate_credit_cost",
      "method": "GET",
      "url": "https://aicontentdrop.com/v1/models/{id}/cost",
      "auth_required": false,
      "credits_charged": 0,
      "description": "Quote a generation before committing credits."
    },
    {
      "id": "generate_video",
      "method": "POST",
      "url": "https://aicontentdrop.com/v1/generate/video",
      "auth_required": true,
      "credits_charged": "model-specific, on success only",
      "sandbox_supported": true,
      "sandbox_auth_required": false,
      "sandbox_credits_charged": 0
    },
    {
      "id": "generate_image",
      "method": "POST",
      "url": "https://aicontentdrop.com/v1/generate/image",
      "auth_required": true,
      "credits_charged": "model-specific, on success only",
      "sandbox_supported": true,
      "sandbox_auth_required": false,
      "sandbox_credits_charged": 0
    },
    {
      "id": "poll_generation",
      "method": "GET",
      "url": "https://aicontentdrop.com/v1/videos/{id}",
      "auth_required": true,
      "credits_charged": 0,
      "description": "Poll an asynchronous video generation until it completes or fails."
    },
    {
      "id": "register_read_token",
      "method": "POST",
      "url": "https://aicontentdrop.com/agent/auth/register",
      "auth_required": false,
      "credits_charged": 0,
      "description": "Receive an anonymous, read-scope bearer token without email or a human."
    }
  ],
  "onboarding": {
    "zero_auth_access": {
      "available": true,
      "description": "The model catalogue, cost estimation, batch reads, the natural-language endpoint, GraphQL reads and the MCP read tools all answer with no credential of any kind. No signup, no email, no key.",
      "endpoints": [
        "https://aicontentdrop.com/v1",
        "https://aicontentdrop.com/v1/models",
        "https://aicontentdrop.com/ask",
        "https://aicontentdrop.com/graphql",
        "https://aicontentdrop.com/mcp"
      ],
      "verify": [
        {
          "method": "GET",
          "path": "/v1/models",
          "expect_status": 200
        },
        {
          "method": "GET",
          "path": "/v1",
          "expect_status": 200
        }
      ]
    },
    "free_tier": {
      "available": true,
      "credits": 10,
      "allocation": "one_time",
      "renews": false,
      "card_required": false,
      "description": "A new account gets 10 credits and needs no card, for image generation with Z-Image, FLUX.2 or Seedream 4.5 (video needs a paid plan), one grant per person. The credits are released when the email address is confirmed, so an account created programmatically holds 0 until the human clicks the link. Credits are then charged only when a generation succeeds — a failed or blocked generation costs nothing, so there is no refund path to reason about.",
      "requires_email_verification": true,
      "signup_url": "https://aicontentdrop.com/register",
      "pricing": "https://aicontentdrop.com/pricing.md",
      "verify": [
        {
          "method": "GET",
          "path": "/pricing.md",
          "expect_status": 200
        }
      ]
    },
    "self_serve_key": {
      "available": true,
      "agent_initiated_signup": {
        "description": "POST the human's email address. They receive a sign-in link; clicking it creates the account, confirms the address, and releases the free credits. No password parameter exists: an agent never holds a user's password.",
        "uri": "https://aicontentdrop.com/v1/auth/register",
        "method": "POST",
        "body": {
          "email": "person@example.com"
        },
        "returns": "202 human_action_required, with a line to relay to the human",
        "credits_on_signup": 0,
        "credits_after_verification": 10,
        "verify": [
          {
            "method": "GET",
            "path": "/v1/auth/register",
            "expect_status": 405
          }
        ]
      },
      "human_flow": {
        "description": "Sign in, then mint an API key from settings. No sales call, no approval queue, no waiting period.",
        "url": "https://aicontentdrop.com/settings/integrations",
        "key_prefix": "acd_live_"
      },
      "agent_flow": {
        "description": "An agent with no account POSTs to the register endpoint and receives a read-scope bearer token in the same response. Anonymous, no email, no human in the loop. Read scope only — it cannot spend credits.",
        "register_uri": "https://aicontentdrop.com/agent/auth/register",
        "method": "POST",
        "scope": "read",
        "expires_in": 86400,
        "specification": "https://aicontentdrop.com/auth.md",
        "verify": [
          {
            "method": "POST",
            "path": "/agent/auth/register",
            "expect_status": 201
          }
        ]
      }
    },
    "sandbox": {
      "available": true,
      "description": "Send `X-Sandbox: true` on a generation request to get the real 202 response shape, with validation applied, without spending a credit or reaching a model. Works WITHOUT an API key, so the request and response contract can be learned before signing up for anything.",
      "header": "X-Sandbox: true",
      "endpoints": [
        "https://aicontentdrop.com/v1/generate/video",
        "https://aicontentdrop.com/v1/generate/image"
      ],
      "documentation": "https://aicontentdrop.com/docs/sandbox",
      "verify": [
        {
          "method": "POST",
          "path": "/v1/generate/video",
          "headers": {
            "Content-Type": "application/json",
            "X-Sandbox": "true"
          },
          "body": {
            "prompt": "a red balloon over a city",
            "model": "kling_3_0"
          },
          "expect_status": 202,
          "expect_body_contains": "sandbox",
          "note": "No Authorization header. A 202 here proves the whole claim: the contract is observable, validated, and free, before an account exists."
        }
      ]
    },
    "contact_sales_required": false,
    "waitlist": false,
    "approval_required": false
  },
  "verification": {
    "description": "Run these unauthenticated to prove public access, pricing, anonymous read-token registration, and sandbox behavior. Minting an acd_live_ API key is intentionally excluded because it is an authenticated human action.",
    "requests": [
      {
        "claim": "zero_auth_access",
        "method": "GET",
        "url": "https://aicontentdrop.com/v1/models",
        "expect_status": 200
      },
      {
        "claim": "free_tier",
        "method": "GET",
        "url": "https://aicontentdrop.com/v1/plans",
        "expect_status": 200,
        "expect_json": {
          "free_tier.available": true,
          "free_tier.price_usd": 0
        }
      },
      {
        "claim": "pricing_is_machine_readable",
        "method": "GET",
        "url": "https://aicontentdrop.com/pricing.md",
        "expect_status": 200
      },
      {
        "claim": "self_serve_read_token",
        "method": "POST",
        "url": "https://aicontentdrop.com/agent/auth/register",
        "expect_status": 201
      },
      {
        "claim": "sandbox",
        "method": "POST",
        "url": "https://aicontentdrop.com/v1/generate/video",
        "headers": {
          "Content-Type": "application/json",
          "X-Sandbox": "true"
        },
        "body": {
          "prompt": "a red balloon over a city",
          "model": "kling_3_0"
        },
        "expect_status": 202
      }
    ],
    "human_only": [
      {
        "claim": "self_serve_generation_api_key",
        "human_action_required": true,
        "url": "https://aicontentdrop.com/settings/integrations",
        "output_format": "acd_live_…",
        "live_anonymous_verification_available": false
      }
    ]
  },
  "quickstart": [
    {
      "step": 1,
      "description": "List the models and their credit costs.",
      "request": "GET /v1/models"
    },
    {
      "step": 2,
      "description": "Price the generation before committing to it.",
      "request": "GET /v1/models/kling_3_0/cost?duration=5"
    },
    {
      "step": 3,
      "description": "Learn the generation contract without spending anything.",
      "request": "POST /v1/generate/video with header X-Sandbox: true"
    },
    {
      "step": 4,
      "description": "Ask the human to sign in, confirm their email if new, and mint an API key at /settings/integrations. The acd_agent_ read token from /agent/auth/register cannot access an account or authorize generation.",
      "human_action_required": true,
      "url": "https://aicontentdrop.com/settings/integrations",
      "credential_output": "acd_live_…",
      "request": "HUMAN: open /settings/integrations and create an API key"
    },
    {
      "step": 5,
      "description": "Submit the real generation. Returns 202 with an id.",
      "request": "POST /v1/generate/video with Authorization: Bearer acd_live_..."
    },
    {
      "step": 6,
      "description": "Poll until status is completed or failed. Credits are charged on success only.",
      "request": "GET /v1/videos/{id}"
    }
  ],
  "read_only_quickstart": [
    {
      "step": 1,
      "description": "Register an anonymous read client for the higher public-read limit.",
      "request": "POST /agent/auth/register",
      "credential_output": "acd_agent_…"
    },
    {
      "step": 2,
      "description": "Use that token only for catalogue, docs, GraphQL, MCP, NLWeb, and A2A reads.",
      "request": "Authorization: Bearer acd_agent_…",
      "generation_authorized": false
    }
  ],
  "interfaces": {
    "rest": {
      "url": "https://aicontentdrop.com/v1",
      "specification": "https://aicontentdrop.com/openapi.json"
    },
    "graphql": {
      "url": "https://aicontentdrop.com/graphql",
      "schema": "https://aicontentdrop.com/graphql/schema.graphql"
    },
    "mcp": {
      "url": "https://aicontentdrop.com/mcp",
      "manifest": "https://aicontentdrop.com/.well-known/mcp.json",
      "registry": "com.aicontentdrop/ai-content-drop",
      "registry_entry": "https://registry.modelcontextprotocol.io/v0/servers?search=aicontentdrop",
      "directory_smithery": "https://smithery.ai/servers/aicontentdrop/ai-content-drop"
    },
    "natural_language": {
      "url": "https://aicontentdrop.com/ask"
    },
    "cli": {
      "package": "aicontentdrop",
      "registry": "npm",
      "status": "published",
      "install": "npm install -g aicontentdrop",
      "source": "https://github.com/aicontentdrop/aicontentdrop"
    },
    "sdks": [
      {
        "language": "typescript",
        "registry": "npm",
        "package": "aicontentdrop",
        "install": "npm install aicontentdrop",
        "url": "https://www.npmjs.com/package/aicontentdrop"
      },
      {
        "language": "python",
        "registry": "pypi",
        "package": "aicontentdrop",
        "install": "pip install aicontentdrop",
        "url": "https://pypi.org/project/aicontentdrop/",
        "dependencies": 0
      },
      {
        "language": "go",
        "registry": "go-modules",
        "package": "github.com/aicontentdrop/aicontentdrop/go",
        "install": "go get github.com/aicontentdrop/aicontentdrop/go",
        "url": "https://pkg.go.dev/github.com/aicontentdrop/aicontentdrop/go",
        "dependencies": 0
      }
    ]
  },
  "limits": {
    "rate_limit": "120 requests per minute per IP",
    "headers": [
      "RateLimit-Limit",
      "RateLimit-Remaining",
      "RateLimit-Reset",
      "Retry-After"
    ],
    "documentation": "https://aicontentdrop.com/docs/rate-limits"
  },
  "support": {
    "email": "support@aicontentdrop.com",
    "contact": "https://aicontentdrop.com/contact",
    "errors": "https://aicontentdrop.com/docs/errors",
    "versioning": "https://aicontentdrop.com/docs/versioning"
  }
}