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

# Integrations overview

> Official ReyGrid SDKs for Python and TypeScript, and the n8n community node.

Official SDKs wrap the [REST API](/rest-api/overview) with typed clients. Both cover the same endpoints and default to `https://reygrid.com/api/v1`. For no-code automation there is also an N8N node (npm package `n8n-nodes-reygrid`).

<CardGroup cols={3}>
  <Card title="Python SDK" icon="python" href="/integrations/python/installation">
    `pip install reygrid`. Sync and async methods built on httpx. Python 3.9+.
  </Card>

  <Card title="TypeScript SDK" icon="js" href="/integrations/typescript/installation">
    `npm install reygrid`. Fetch-based, no runtime HTTP dependency. Node.js 18+, ESM.
  </Card>

  <Card title="N8N Node" icon="diagram-project" href="/integrations/n8n/n8n-nodes-reygrid">
    Chat with agents from n8n workflows, with automatic AI tool calls.
  </Card>
</CardGroup>

## Feature comparison

| Capability | Python | TypeScript |
| - | - | - |
| Package | `reygrid` (PyPI) | `reygrid` (npm) |
| Client class | `ReyGrid` | `ReyGrid` |
| Version documented | 1.0.3 | 1.0.3 |
| Sync + async | Both (`async_` prefix) | Promises / async generators |
| Streaming | `stream_chat` / `async_stream_chat` | `streamChat` |
| Pagination helper | `Paginator` | `Paginator<T>` |
| Naming | `snake_case` methods and arguments | `camelCase` |
| Base URL option | `base_url` | `baseUrl` |
| Timeout option | `timeout` (seconds) | `timeoutMs` (milliseconds) |

## Method map

| Endpoint | Python | TypeScript |
| - | - | - |
| `GET /ping` | `ping()` | `ping()` |
| `GET /validate` | `validate()`, `get_usage()` | `validate()`, `getUsage()` |
| `POST /agents/{id}/chat` | `chat()` | `chat()` |
| `POST /agents/{id}/chat` (SSE) | `stream_chat()` | `streamChat()` |
| `GET /agents/{id}/conversations` | `list_conversations()` | `listConversations()` |
| `GET …/{ref}/messages` | `list_messages()` | `listMessages()` |
| `DELETE …/{ref}` | `delete_conversation()` | `deleteConversation()` |
| `DELETE …/messages/{id}` | `delete_message()` | `deleteMessage()` |
| `POST …/tool/cancel/{id}` | `cancel_tool_call()` | `cancelToolCall()` |
| `POST …/messages/{id}/feedback` | `rate_message()` | `rateMessage()` |
| `GET /agents` | `list_agents()` | `listAgents()` |
| `GET /agents/{id}` | `get_agent()` | `getAgent()` |
| `PATCH /agents/{id}` | `update_agent()` | `updateAgent()` |
| `GET /agents/{id}/sources` | `list_sources()`, `paginate_sources()` | `listSources()`, `paginateSources()` |
| `POST …/sources/text` | `add_text_source()` | `addTextSource()` |
| `POST …/sources/qa` | `add_qa_source()` | `addQaSource()` |
| `POST …/sources/files` | `upload_file()` | `uploadFile()` |
| `POST …/sources/website` | `crawl_website()` | `crawlWebsite()` |
| `DELETE …/sources/{sourceId}` | `delete_source()` | `deleteSource()` |
| `POST /agents/{id}/search` | `search()` | `search()` |
| `GET /models` | `list_models()` | `listModels()` |
| `GET /usage` | `get_usage_report()` | `getUsageReport()` |

Python async variants are prefixed `async_` (for example `async_chat()`).

<Note>
  Where the SDKs and the REST API differ, these pages describe the SDK's actual behavior.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.