# Podium Integration
## SDK
- Package: `@podium-sdk/node-sdk`
- Install: `npm install @podium-sdk/node-sdk`
- Client setup:
```typescript
import { createPodiumClient } from '@podium-sdk/node-sdk';
const client = createPodiumClient({
apiKey: process.env.PODIUM_API_KEY,
});
```
## Key Namespaces
| Namespace | Methods |
|-----------|---------|
| `client.product` | `list()`, `get()`, `create()`, `update()`, `delete()` |
| `client.agentic` | `listProductsFeed()`, `createCheckoutSessions()` |
| `client.companion` | `listProfile()`, `updateProfile()`, `listRecommendations()`, `createInteractions()` |
| `client.user` | `get()`, `listPoints()`, `awardPoints()` |
| `client.userOrder` | `list()`, `checkout()`, `getDiscount()` |
| `client.tasks` | `listTasks()`, `createTasks()`, `createTaskPools()` |
| `client.x402` | `createOrderPay()` |
| `client.campaign` | `list()`, `get()`, `createVote()` |
| `client.admin` | `listApiKeys()`, `createApiKeys()` |
## API
- Base URL (staging): `https://podium-staging.up.railway.app/api/v1`
- Auth: `Authorization: Bearer <podium_api_key>`
- Keys: org-scoped, prefixed `podium_test_` or `podium_live_`
## Architecture Notes
- Multi-tenant PostgreSQL with row-level security
- Async event system for background jobs (webhook delivery, enrichment)
- x402 protocol for machine-native USDC payments on Base
- Enrichment pipeline adds AI-extracted attributes to products
- Companion profiles store user taste/intent data
## Patterns
- Always use SDK methods over raw HTTP when available
- Handle pagination with `{ page, limit }` params
- Use `requestBody` for POST/PUT payloads in SDK calls
- Error responses follow `{ error: string, statusCode: number }` shape