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

# GTM Engineer Quickstart

> Give an AI agent governed access to AmpUp, make direct API calls, and pull meeting, deal, and coaching data

AmpUp gives a GTM engineer one governed context layer for meetings, transcripts,
accounts, contacts, deals, analysis scores, coaching feedback, tasks, briefs,
prospecting, and CRM workflows.

A human owner creates the workspace and authorizes access. The agent then uses
one of two interfaces:

| Interface      | Best for                                           | Authentication                     |
| -------------- | -------------------------------------------------- | ---------------------------------- |
| **MCP server** | Interactive agents that discover and compose tools | OAuth 2.1 (recommended) or API key |
| **Direct API** | ETL, scheduled jobs, and deterministic services    | Revocable API key                  |

<CardGroup cols={2}>
  <Card title="Start a free workspace" icon="user-plus" href="https://app.ampup.ai/trial">
    Begin a 14-day trial, choose **GTM Engineer** during onboarding, and connect
    the systems the agent should understand.
  </Card>

  <Card title="Open the MCP reference" icon="message-bot" href="/developer/mcp-server">
    Connect Claude, Codex, Cursor, or another MCP-compatible agent with OAuth.
  </Card>
</CardGroup>

## 1. Create and authorize the workspace

<Steps>
  <Step title="Start the AmpUp workspace">
    Open [app.ampup.ai/trial](https://app.ampup.ai/trial). The workspace owner
    completes signup, chooses **GTM Engineer**, and connects the relevant CRM,
    calendar, conversation-intelligence, and messaging integrations.
  </Step>

  <Step title="Choose the agent interface">
    Use MCP for an interactive agent. Use the direct API for a service or data
    pipeline whose calls should be explicit and repeatable.
  </Step>

  <Step title="Authorize only what the workflow needs">
    OAuth connections run as the signed-in user. API keys inherit the role and
    permissions of the user who creates them and can be revoked from **Settings
    → API Keys**.
  </Step>
</Steps>

<Warning>
  A human should retain ownership of signup, billing, consent, and material side
  effects. Keep CRM sync, campaign launch, and outbound messages behind an
  explicit approval step.
</Warning>

## 2. Connect an interactive agent with MCP

The hosted endpoint is:

```
https://app.ampup.ai/mcp
```

For Claude Code:

```bash theme={null}
claude mcp add --transport http ampup https://app.ampup.ai/mcp
```

For Codex:

```bash theme={null}
codex mcp add ampup -- npx -y mcp-remote https://app.ampup.ai/mcp
```

Complete the OAuth sign-in when the client prompts you. The agent can discover
the allowed AmpUp tools and their current input schemas through MCP
`tools/list`; treat that response as the source of truth for the connection.

See [MCP Server](/developer/mcp-server) for every client setup and the current
tool surface, and [MCP Server Authentication](/security/mcp-oauth) for token,
scope, and tenant-isolation details.

## 3. Call the API directly

Direct calls use this base URL:

```
https://app.ampup.ai/mcp/api
```

The workflow endpoints are JSON `POST` operations. Store the key in a secret
manager or environment variable; never put it in browser code or source
control.

```bash theme={null}
export AMPUP_API_KEY="sk-a79-..."
export AMPUP_API_BASE="https://app.ampup.ai/mcp/api"
```

### List analyzed meetings

```bash theme={null}
curl -sS "$AMPUP_API_BASE/v1/list_meetings" \
  -H "Authorization: Bearer $AMPUP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "analyzed",
    "limit": 25,
    "offset": 0
  }'
```

Useful filters include `account_id`, `opportunity_id`, `search`, `status`,
`scheduled_from`, `scheduled_to`, `limit`, and `offset`.

### Get one meeting and its analysis

Start here before pulling a full transcript. The meeting overview includes core
metadata, inline analysis when available, and `available_actions` flags that
tell the agent which deeper artifacts exist.

```bash theme={null}
curl -sS "$AMPUP_API_BASE/v1/get_meeting" \
  -H "Authorization: Bearer $AMPUP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"meeting_id":"MEETING_ID"}'
```

### Bulk-pull analysis for a warehouse job

Fetch scores, feedback, key moments, and deal intelligence for up to 100
meeting IDs in one request:

```bash theme={null}
curl -sS "$AMPUP_API_BASE/v1/list_meeting_analyses" \
  -H "Authorization: Bearer $AMPUP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "meeting_ids": ["MEETING_ID_1", "MEETING_ID_2"],
    "include_deal_intelligence": true,
    "include_feedback": true
  }'
```

### Pull the full transcript only when needed

```bash theme={null}
curl -sS "$AMPUP_API_BASE/v1/get_meeting_transcript" \
  -H "Authorization: Bearer $AMPUP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"meeting_id":"MEETING_ID"}'
```

Full transcripts can be large. For a quote or a specific section, prefer
`/v1/get_transcript_excerpt` with `meeting_id` plus a `start_time` / `end_time`
range or a chapter name.

### Pull deal-level conversation intelligence

```bash theme={null}
curl -sS "$AMPUP_API_BASE/v1/get_opportunity_analysis" \
  -H "Authorization: Bearer $AMPUP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"opportunity_id":"DEAL_ID"}'
```

This returns the deal metadata plus its linked meetings and inline analysis,
which is useful for deal health, qualification, forecasting, and coaching.

## Server-side JavaScript helper

Use a thin wrapper so every call has the same authentication and error
handling:

```typescript theme={null}
const baseUrl = "https://app.ampup.ai/mcp/api";
const apiKey = process.env.AMPUP_API_KEY;

async function ampup<T>(path: string, body: unknown): Promise<T> {
  if (!apiKey) throw new Error("AMPUP_API_KEY is not configured");

  const response = await fetch(`${baseUrl}${path}`, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${apiKey}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify(body),
  });

  if (!response.ok) {
    const detail = await response.text();
    throw new Error(`AmpUp ${response.status}: ${detail}`);
  }

  return response.json() as Promise<T>;
}

const meetings = await ampup("/v1/list_meetings", {
  status: "analyzed",
  limit: 25,
  offset: 0,
});
```

Run direct calls on a trusted server, worker, or job runner. Do not expose the
API key in client-side JavaScript.

## Python SDK equivalent

The SDK wraps the same workflow API:

```bash theme={null}
pip install ampup
```

```python theme={null}
from ampup.client import AmpUpClient
from ampup.models.list_meeting_analyses_request import ListMeetingAnalysesRequest
from ampup.models.list_meetings_request import ListMeetingsRequest

with AmpUpClient() as client:
    meetings = client.meetings.list_meetings(
        ListMeetingsRequest(status="analyzed", limit=25, offset=0)
    )

    analyses = client.meetings.list_meeting_analyses(
        ListMeetingAnalysesRequest(
            meeting_ids=["MEETING_ID_1", "MEETING_ID_2"],
            include_deal_intelligence=True,
            include_feedback=True,
        )
    )
```

The client reads `AMPUP_API_KEY` and `AMPUP_BASE_URL` from the environment.
See the [Python SDK guide](/developer/python-sdk) for the full client surface.

## What a GTM agent can retrieve

The exact surface depends on user permissions and enabled products.

| Context             | Start with                                    | Go deeper when needed                        |
| ------------------- | --------------------------------------------- | -------------------------------------------- |
| Workspace           | `get_workspace_overview`, `list_integrations` | `list_organizations`, `select_organization`  |
| Accounts and people | `list_accounts`, `list_contacts`              | `get_account`, `get_contact`                 |
| Pipeline            | `list_deals`                                  | `get_deal`, deal tasks and notes             |
| Meetings            | `list_meetings`, `get_meeting`                | transcript excerpts, full transcript, briefs |
| Analytics           | `list_evaluation_metrics`                     | bulk meeting analyses, deal intelligence     |
| Coaching            | `list_roleplays`, `list_courses`              | roleplay sessions and assignments            |
| Prospecting         | `get_icp`, `list_audiences`, `list_campaigns` | sequences, analytics, conversations          |

<Info>
  MCP tool names evolve as related operations are consolidated. For an MCP
  connection, use `tools/list` for the live schema. For direct API and SDK
  integrations, pin a tested client version and validate response shapes before
  promoting a pipeline.
</Info>

## Five starter journeys

### 1. Keep the CRM current

1. List newly analyzed meetings.
2. Get the meeting overview and supporting evidence.
3. Resolve the account, contacts, and deal.
4. Draft notes, tasks, and field updates.
5. Require human review before CRM sync or a stage change.

### 2. Build an ICP list

Use the MCP workflow tools to search companies and people, enrich missing
details, score ICP fit, save the qualified records to an audience, and draft a
sequence. Keep launch disabled until a person reviews targeting and copy.

### 3. Feed conversation data to BI

Use the direct API to page through analyzed meetings, bulk-fetch analyses in
batches of at most 100 IDs, normalize metric and deal-intelligence fields, and
checkpoint the last successful window before loading the warehouse.

### 4. Close the coaching loop

Find low-scoring meeting moments, create a meeting-derived roleplay, propose an
assignment, and read the resulting sessions back into the coaching workflow.

### 5. Act on external signals

Reconcile the incoming company and contact, attach the signal as prospecting
context, and draft signal-aware outreach. Require approval before sending.

## Production pattern for data pulls

1. **Discover narrowly.** Filter list calls and page with `limit` and `offset`.
2. **Hydrate selectively.** Fetch details only for new or changed IDs.
3. **Batch analysis.** Use `list_meeting_analyses` instead of one request per meeting.
4. **Avoid unnecessary transcripts.** Start with `get_meeting`; pull excerpts or
   the full transcript only when exact wording is required.
5. **Checkpoint progress.** Persist the last successful window or record IDs so
   retries do not restart the entire job.
6. **Retry safely.** Back off on `429` and transient `5xx` responses; surface
   persistent validation and authorization failures to an operator.

## Errors and troubleshooting

| Status | Meaning                                        | Action                                           |
| ------ | ---------------------------------------------- | ------------------------------------------------ |
| `401`  | Missing, invalid, or revoked credential        | Verify the bearer header or reconnect OAuth      |
| `403`  | The user or role cannot perform the operation  | Confirm workspace role and tool permissions      |
| `422`  | Request body does not match the current schema | Re-read the MCP tool schema or SDK request model |
| `429`  | Too many requests                              | Back off with jitter and retry                   |
| `5xx`  | Temporary service failure                      | Retry a bounded number of times, then alert      |

## Next steps

<CardGroup cols={2}>
  <Card title="MCP server reference" icon="message-bot" href="/developer/mcp-server">
    Endpoint, client setup, authentication, and the current tool catalog.
  </Card>

  <Card title="Security model" icon="shield-keyhole" href="/security/mcp-oauth">
    OAuth flow, token lifetimes, permissions, tenant isolation, and revocation.
  </Card>

  <Card title="Python SDK" icon="python" href="/developer/python-sdk">
    Typed request models and a high-level client for server-side jobs.
  </Card>

  <Card title="TypeScript SDK" icon="js" href="/developer/typescript-sdk">
    Generated API clients for TypeScript services.
  </Card>
</CardGroup>

Need help? Email [support@ampup.ai](mailto:support@ampup.ai).
