# ReplyNodes quickstart

You are integrating ReplyNodes' **read-only public data API**. The canonical base is
`https://api.replynodes.com`; this API has no social publishing or write tools.

## 1. Get a workspace Read API key

Check for `REPLYNODES_API_KEY` without printing it:

```sh
test -n "$REPLYNODES_API_KEY" && echo "key present" || echo "key missing"
```

If it is missing, follow [`auth.md`](https://replynodes.com/auth.md). Headless/manual access uses a ReplyNodes API key beginning with `rn_test_` or `rn_live_`; store it only in the project's existing secret convention. Organization context is resolved from the authenticated key; do not send an organization id.

## 2. Inspect the live contract

```sh
curl -sS https://api.replynodes.com/v1/capabilities \
  -H "Authorization: Bearer ${REPLYNODES_API_KEY}" \
```

Use the response's `data.document` and `data.providers` as the source of truth. Call only routes with `callable: true`, using their listed method and parameters. Do not invent an SDK, package version, route, or field.

## 3. Make the smallest read

All data calls on this boundary are `GET` requests:

```sh
curl -sS "https://api.replynodes.com/v1/<provider>/<route>" \
  -H "Authorization: Bearer ${REPLYNODES_API_KEY}" \
```

Follow the live schema for the provider and route. Preserve the response envelope and surface `meta.request_id`; honor `429` and `Retry-After`. Never put the key in browser code, logs, commits, or chat.

## 4. Use remote MCP instead

The canonical MCP endpoint is `https://mcp.replynodes.com/mcp`. For headless/manual clients, configure it with an environment-backed Bearer header and an `rn_test_` or `rn_live_` API key. Clients that support native MCP OAuth can use Better Auth issuer `https://auth.replynodes.com` with scope `mcp:read`. Examples for Claude Code, Codex, and Hermes are in [`skill.md`](https://replynodes.com/skill.md).

## 5. Verify and report

Run the project's real test or command, make a real authenticated GET, and report the HTTP status, request ID, fields confirmed, and the capabilities document version/hash if present. If approval or credentials are unavailable, say `prepared but not live-verified`.
