Quickstart
Five minutes from zero to your AI agent reading and writing your UserPulse boards.
1Create an API key
Go to Settings → API keys and click New key. Pick:
- Scope: account (all your boards) or board (one board only).
- Permission: read or read + write.
Copy the secret up_… immediately. You won't see it again.
2Make a request
curl
curl -H "Authorization: Bearer up_..." \
https://your-deployment.convex.site/api/v1/boardsjavascript
const res = await fetch(
"https://your-deployment.convex.site/api/v1/boards",
{ headers: { Authorization: `Bearer ${process.env.USERPULSE_KEY}` } },
);
const { boards } = await res.json();python
import os, requests
r = requests.get(
"https://your-deployment.convex.site/api/v1/boards",
headers={"Authorization": f"Bearer {os.environ['USERPULSE_KEY']}"},
)
print(r.json()["boards"])3File feedback as the agent
curl
curl -X POST \
-H "Authorization: Bearer up_..." \
-H "Content-Type: application/json" \
-d '{"title":"Add CSV export","description":"Customers want it"}' \
https://your-deployment.convex.site/api/v1/boards/product/feedbackjavascript
await fetch(
"https://your-deployment.convex.site/api/v1/boards/product/feedback",
{
method: "POST",
headers: {
Authorization: `Bearer ${process.env.USERPULSE_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
title: "Add CSV export",
description: "Customers want it",
}),
},
);python
requests.post(
"https://your-deployment.convex.site/api/v1/boards/product/feedback",
headers={
"Authorization": f"Bearer {os.environ['USERPULSE_KEY']}",
"Content-Type": "application/json",
},
json={"title": "Add CSV export", "description": "Customers want it"},
)4Read or update an item
See the full request/response shapes in the interactive API reference.
5Plug it into your agent
Read the AI Agents Guide for ready-to-paste tool definitions for Claude and GPT.