{
  "generated_at": "2026-07-11",
  "name": "Veezee",
  "tagline": "LinkedIn data for AI agents: structured profiles, companies, posts, and search over MCP or REST.",
  "scope": {
    "source": "hand, derived from generated/docs-data.json tool descriptions and public/AGENTS.md",
    "best_for": [
      "people search",
      "profile enrichment",
      "company enrichment",
      "candidate sourcing",
      "prospect research"
    ],
    "not_supported": [
      "No writing to LinkedIn: every tool is read-only (no posting, commenting, or messaging).",
      "No real-time monitoring or recurring watch jobs: each call is a one-time fetch, not a subscription.",
      "No bulk export guarantee: get_posts and search_people return one page per call, not a full-dataset dump.",
      "No OAuth: authentication is API key only.",
      "No published uptime guarantee or SLA.",
      "No contact details: get_profile does not return email addresses or phone numbers.",
      "No company search by name: get_company takes a URL, slug, or domain; resolve a name via search_people's current_company filter instead.",
      "No keyword search across LinkedIn posts: get_posts returns one entity's recent posts only, not a search."
    ]
  },
  "capabilities": {
    "source": "generated/docs-data.json (frozen tool contract) + src/contract/pricing.json",
    "tools": [
      {
        "name": "provision",
        "description": "Create a free trial account",
        "required_inputs": [],
        "credits": 0
      },
      {
        "name": "resolve_url",
        "description": "Identify a LinkedIn URL",
        "required_inputs": [
          "url"
        ],
        "credits": 2
      },
      {
        "name": "get_profile",
        "description": "Get a LinkedIn person profile",
        "required_inputs": [
          "identifier"
        ],
        "credits": 4
      },
      {
        "name": "search_people",
        "description": "Search people on LinkedIn",
        "required_inputs": [],
        "credits": 10
      },
      {
        "name": "get_company",
        "description": "Get a LinkedIn company",
        "required_inputs": [
          "identifier"
        ],
        "credits": 4
      },
      {
        "name": "get_posts",
        "description": "Get recent posts by a person or company",
        "required_inputs": [
          "identifier"
        ],
        "credits": 4
      },
      {
        "name": "get_usage",
        "description": "Check credits and recent charges",
        "required_inputs": [],
        "credits": 0
      }
    ]
  },
  "install": {
    "source": "hand, cross-checked against src/site/serve.ts and /docs/clients",
    "default_path": "Default path: use MCP when your host supports it, the SDK otherwise, REST as the fallback; the CLI and skills are conveniences layered on top of those.",
    "mcp": {
      "url": "https://mcp.veezee.io/mcp",
      "transport": "streamable-http",
      "legacy_sse_url": "https://mcp.veezee.io/sse",
      "add_command": "claude mcp add --transport http veezee https://mcp.veezee.io/mcp"
    },
    "sdk": {
      "install": "npm install @veezee/sdk",
      "node": "20+",
      "docs": "https://veezee.io/docs/sdk"
    },
    "rest": {
      "base_url": "https://api.veezee.io",
      "contract": "https://veezee.io/openapi.json"
    },
    "cli": {
      "install": "npm install -g @veezee/sdk",
      "bin": "veezee",
      "docs": "https://veezee.io/docs/cli"
    },
    "skills": {
      "install": "npx skills add veezeehq/veezee-skills",
      "index": "https://veezee.io/.well-known/agent-skills/index.json"
    }
  },
  "auth": {
    "source": "hand, matches /trust and /AGENTS.md",
    "method": "API key only, no OAuth.",
    "key_header": "Authorization: Bearer <api_key>",
    "keyless": "A small taste allowance works with no key at all: 20 credits per IP per day, cached data only, no Idempotency-Key needed.",
    "provision": "Call provision (no key required) for a free trial key; api_key is shown exactly once in the response, so store it immediately.",
    "claim": "provision and get_usage return claim_url; visiting it attaches an email to the trial account so the account can be recovered if the key is lost.",
    "manage": "get_usage returns manage_url; it opens the Stripe billing portal to change or cancel a paid plan. Humans without a link can paste the API key at https://veezee.io/manage."
  },
  "pricing": {
    "source": "src/contract/pricing.json",
    "currency": "usd",
    "unit_rate": "$2.00 per 1,000 credits",
    "minimum_purchase_usd": 20,
    "minimum_purchase_note": "The per-1,000-credit rate is a unit price, not a standalone purchase: the smallest purchasable pack is Flex at $20.00.",
    "trial": {
      "credits": 500,
      "price_usd": 0,
      "note": "One-time grant, no signup, no card."
    },
    "packs": [
      {
        "name": "flex",
        "credits": 10000,
        "price_usd": 20,
        "billing": "one-time",
        "note": "Prepaid, does not expire while the account is open."
      },
      {
        "name": "production",
        "credits_per_month": 50000,
        "price_usd_per_month": 99,
        "billing": "monthly",
        "note": "5 concurrent calls, higher rate limits (120 req/min, search up to 30 results/call)."
      }
    ]
  },
  "limits": {
    "source": "src/contract/pricing.json plan_caps",
    "trial": {
      "credits_grant": 500,
      "concurrent": 1,
      "requests_per_minute": 20,
      "search_max_results_per_call": 10,
      "realtime_fetches_total": 5
    },
    "paid": {
      "concurrent": 5,
      "requests_per_minute": 120,
      "search_max_results_per_call": 30
    }
  },
  "commercial_availability": {
    "status": "test",
    "note": "Stripe runs in TEST mode today: purchases on /upgrade do not charge a real card. Live charging is a later, explicitly gated release step."
  },
  "links": {
    "status": {
      "url": null,
      "note": "No public status page yet."
    },
    "evidence": {
      "url": "https://veezee.io/evidence",
      "note": "Tool-selection eval (picker/first-call/response-usability); JSON twin at https://veezee.io/evidence/tool-selection-eval.json. 30-day availability and latency are pending (no accumulated data yet)."
    },
    "support": {
      "url": "mailto:hello@veezee.io"
    },
    "legal": {
      "url": "https://veezee.io/trust",
      "note": "Trust page: data storage, key handling, auth, billing and cancellation. No separate terms-of-service page exists yet."
    }
  }
}
