> ## Documentation Index
> Fetch the complete documentation index at: https://docs.introw.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Developer Platform

> Build on and embed Introw - a public REST API with scoped keys, portal and CRM embeds, and an MCP server that exposes your partner program to AI clients like Claude, ChatGPT, and Cursor.

export const Headless = ({prompts = []}) => {
  const PromptRow = ({prompt}) => {
    const [copied, setCopied] = useState(false);
    const copy = () => {
      try {
        navigator.clipboard?.writeText(prompt);
      } catch {}
      setCopied(true);
      setTimeout(() => setCopied(false), 1600);
    };
    return <div className="group flex items-center justify-between gap-3 px-4 py-3 transition-colors hover:bg-[#FD90FF]/[0.06]">
        <span className="text-sm leading-relaxed text-zinc-700 dark:text-zinc-200">{prompt}</span>
        <button type="button" onClick={copy} aria-label={copied ? "Copied to clipboard" : "Copy prompt"} className={`shrink-0 rounded-md p-1.5 transition-all hover:bg-[#FD90FF]/10 focus:opacity-100 focus:outline-none ${copied ? "text-[#FD90FF] opacity-100" : "text-zinc-400 opacity-0 group-hover:opacity-100 dark:text-zinc-500"}`}>
          {copied ? <svg viewBox="0 0 24 24" fill="none" className="h-4 w-4" aria-hidden="true">
              <path d="M20 6L9 17l-5-5" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
            </svg> : <svg viewBox="0 0 24 24" fill="none" className="h-4 w-4" aria-hidden="true">
              <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" strokeWidth="2" />
              <path d="M5 15V5a2 2 0 0 1 2-2h10" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
            </svg>}
        </button>
      </div>;
  };
  return <>
      <p>
        Introw is <strong>headless</strong> by design: run everything here in plain language from Claude, ChatGPT,
        Slack, Teams, or your own CRM through Introw's <a href="/features/developer/mcp">MCP server</a>, with every
        action written straight back to your CRM source of truth. The portal is one surface, never the only one.
      </p>

      {prompts.length > 0 ? <div className="not-prose my-6 overflow-hidden rounded-2xl border border-zinc-200/80 bg-white shadow-sm dark:border-white/10 dark:bg-white/[0.02]">
          <div className="flex items-center gap-2 border-b border-zinc-200/80 bg-gradient-to-r from-[#FD90FF]/10 via-[#FD90FF]/5 to-transparent px-4 py-2.5 dark:border-white/10">
            <svg viewBox="0 0 24 24" fill="none" className="h-4 w-4 text-[#FD90FF]" aria-hidden="true">
              <path d="M12 2.5l2 5.5 5.5 2-5.5 2-2 5.5-2-5.5L4.5 10l5.5-2 2-5.5z" fill="currentColor" />
              <path d="M18.5 14l1 2.6 2.6 1-2.6 1-1 2.6-1-2.6-2.6-1 2.6-1 1-2.6z" fill="currentColor" opacity="0.55" />
            </svg>
            <span className="text-xs font-semibold uppercase tracking-wider text-zinc-500 dark:text-zinc-400">
              Try it from your LLM
            </span>
          </div>

          <div className="flex flex-col divide-y divide-zinc-100 dark:divide-white/[0.06]">
            {prompts.map(prompt => <PromptRow key={prompt} prompt={prompt} />)}
          </div>

          <a href="/headless" className="flex items-center justify-between gap-2 border-t border-zinc-200/80 px-4 py-2.5 text-sm font-medium text-zinc-600 no-underline transition-colors hover:text-[#FD90FF] dark:border-white/10 dark:text-zinc-300">
            <span>See the full headless playbook</span>
            <svg viewBox="0 0 24 24" fill="none" className="h-4 w-4" aria-hidden="true">
              <path d="M5 12h14M13 6l6 6-6 6" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
          </a>
        </div> : <Card title="See the headless motion" icon="wand-magic-sparkles" href="/headless">
          The agentic playbook - lifecycle deep dives and a Claude Code skill library that run your partner program
          from Claude, ChatGPT, Slack, and your CRM.
        </Card>}
    </>;
};

> Introw is building blocks, not a monolith. Use the API to read and write program data, embed the portal in your product or your CRM, and connect AI clients over MCP, so partnerships fit into the stack and the surfaces you already run.

## What this area does

The Developer Platform exposes Introw as composable pieces. The public REST API lets you read and write
partners, commissions, and payouts with scoped API keys. Embed lets you drop the partner portal into
your own product through an iframe, or meet partners inside HubSpot and Salesforce with CRM embeds. MCP
exposes your program to AI clients over an OAuth-protected server, so assistants like Claude, ChatGPT,
and Cursor can work with your partner data on your behalf.

Each capability is a way to take Introw beyond its own surfaces, into your product, your CRM, and your
AI tools, while the CRM stays the source of truth.

## Why it matters

* **Composability** - API, embed, and MCP are building blocks you combine into your own stack, so you adopt exactly the surface you need instead of accepting a monolith.
* **Work where you already are** - Embeds and MCP bring partnerships into the tools you already use, so capabilities show up where partners and teams work.
* **Time to value** - Drop in a portal with an iframe or reach the documented REST API in minutes, with minimal glue code, so an integration ships without a custom build.

## How it fits together

Three building blocks take Introw into your product, CRM, and AI tools:

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart LR
  introw["Introw"] --> api["REST API"]
  introw --> embed["Embed"]
  introw --> mcp["MCP"]
  api --> stack["Your stack"]
  embed --> stack
  mcp --> stack
```

## Capabilities

<CardGroup cols={2}>
  <Card title="API Keys & REST API" icon="key" href="./api">
    Read and write program data with scoped keys.
  </Card>

  <Card title="Embed" icon="window-maximize" href="./embed">
    Put the portal in your product or CRM.
  </Card>

  <Card title="MCP" icon="robot" href="./mcp">
    Connect AI clients to your partner program.
  </Card>
</CardGroup>

## Who works in this area

<CardGroup cols={2}>
  <Card title="Developer / Integrator" icon="user">
    Builds on the API, embed, and MCP.
  </Card>

  <Card title="Revenue Operations" icon="user">
    Wires Introw into the revenue stack.
  </Card>

  <Card title="CRM Administrator" icon="user">
    Sets up CRM embeds and access.
  </Card>
</CardGroup>

## Headless

<Headless
  prompts={[
"Connect an assistant over MCP and ask which partners are at risk.",
"Register a deal or prepare a QBR from Claude.",
"Give partners their own scoped AI assistant.",
]}
/>

## All guides

{/* ROLLUP:START - generated content goes here */}

<CardGroup cols={2}>
  <Card title="Create and manage API keys" icon="book-open" href="/features/developer/api/guides/create-and-manage-api-keys">
    Create a scoped, time-limited API key, capture its one-time secret, and revoke it when it is no longer needed.
  </Card>

  <Card title="Embed Introw in your CRM" icon="book-open" href="/features/developer/embed/guides/embed-introw-in-your-crm">
    Meet partners inside HubSpot and Salesforce - this lives in the CRM embed feature, which is the canonical home for setup.
  </Card>

  <Card title="Embed the partner portal" icon="book-open" href="/features/developer/embed/guides/embed-the-partner-portal">
    Authorize a domain, create a portal-session key, and render the authenticated partner portal inside your own product.
  </Card>

  <Card title="Connect an MCP client" icon="book-open" href="/features/developer/mcp/guides/connect-an-mcp-client">
    Connect any MCP-capable client - Cursor, Gemini, Windsurf, Notion AI, Lovable, Langdock, and more - to Introw with the generic MCP connector.
  </Card>

  <Card title="Connect ChatGPT" icon="book-open" href="/features/developer/mcp/guides/connect-chatgpt">
    Connect ChatGPT to Introw over MCP so you can query and act on your partner program from inside ChatGPT.
  </Card>

  <Card title="Connect Claude" icon="book-open" href="/features/developer/mcp/guides/connect-claude">
    Connect Claude to Introw over MCP so you can query and act on your partner program from inside Claude.
  </Card>

  <Card title="Partner MCP use cases" icon="book-open" href="/features/developer/mcp/guides/explore-partner-mcp-use-cases">
    What partners can do once they connect their own AI assistant to the partner MCP - and how to drive adoption.
  </Card>

  <Card title="Give partners their own AI assistant" icon="book-open" href="/features/developer/mcp/guides/give-partners-their-own-ai-assistant">
    Partners connect their own AI client to the partner MCP from their portal and work with only their own scoped data - no vendor setup required.
  </Card>
</CardGroup>
