API
Submit feedback to Circuit programmatically. Useful for piping data from support tools, CRMs, in-app forms or any internal system.
Authentication
Use your API key from Settings → Integrations → Surface. Pass it as a Bearer token:
Authorization: Bearer YOUR_API_KEY
Submit Feedback
Single item
POST https://api.withcircuit.com/feedback
{
"text": "The export is too slow on large datasets",
"customer_name": "Jane Smith",
"customer_email": "jane@example.com",
"revenue_band": "enterprise",
"source": "api"
}
Batch
{
"items": [
{
"text": "Can't find the export button",
"customer_email": "alex@example.com",
"revenue_band": "paid"
},
{
"text": "Love the new dashboard layout",
"customer_name": "Sam Lee"
}
]
}
Fields
| Field | Type | Required | Description |
|---|---|---|---|
text | string | Yes | The feedback content |
customer_name | string | No | Customer's name (appears in Customer Voice quotes) |
customer_email | string | No | Customer's email (enables close-the-loop notifications) |
revenue_band | string | No | enterprise, paid or free |
sku | string | No | Product tier or plan identifier |
external_id | string | No | Your internal ID for the record (for deduplication and tracking) |
source | string | No | Defaults to api |
Deduplication
Duplicate feedback is skipped by text hash. Submitting the same text twice produces one feedback item.
Use external_id to pass your own unique identifier — if the same external ID is submitted twice, the second is skipped regardless of text.
Response
{
"id": "fb_a1b2c3d4",
"status": "accepted",
"deduplicated": false
}
For batch submissions, the response includes a result for each item.
Rate Limits
- 100 requests per minute per API key
- 1,000 items per batch request
Source Types
Setting source helps with filtering in the Activity Log:
| Source | Use For |
|---|---|
api | Programmatic submissions (default) |
widget | Widget embed (set automatically) |
csv | CSV imports (set automatically) |
slack | Slack integration (set automatically) |
Submitting Transcripts via API
POST https://api.withcircuit.com/transcripts/upload
Accepts the same auth header. Body should include text (transcript content) and optionally transcript_type (interview, sales_call, support, other) and customer metadata.
Questions?
Email support@withcircuit.com