Integration · Programmatic

Wire any source into Circuit.

Two paths for custom or agentic ingest. A direct REST API for your own tools, and an MCP path so AI agents can submit feedback or transcripts on a user’s behalf.

Programmatic and agent paths to Circuit, for the sources without a native connector.

— How it connects —

Two ingress paths, one pipeline.

01
POST to /feedback for single submits.

JSON body: text, optional customer name and email, source tag. One row per call.

02
POST to /import/batch for bulk loads.

Idempotent via a 24-hour dedup hash. Five thousand requests per hour per account.

03
Or use circuit.act from an agent.

MCP ingress for AI agents — submit feedback or transcripts via Cursor or Claude Code, same auth path.

04
Hit your limit? Voice queues, never drops.

Over-limit rows enter the feedback queue and release FIFO on the next billing cycle or top-up.

— What you get —

The same pipeline, however it arrives.

Two ingress paths, one pipeline.

Direct API or MCP ingress — both land in the same clustering, ranking and attribution flow.

Idempotent batch imports.

A 24-hour dedup hash means accidental re-sends don’t double-count.

Never-drop policy.

Over-limit feedback queues. Upgrade or top-up releases it FIFO.

— The proof —

Direct API: 5,000 requests per hour per account. Batch: idempotent via generate_idempotency_hash() with 24-hour dedup window. MCP: same OAuth as Cursor and Claude Code. Over-limit rows held in feedback_queue and released by the background sweep_feedback_queue task.

— Questions —

Asked and answered.

When should I use the API instead of a connector?

When you have a custom source — your own help desk, a homegrown survey, a niche tool with no native integration. The API gives you the same pipeline without the wait.

When is MCP ingress the right path?

When an AI agent is collecting feedback or transcribing a call on a user’s behalf, and you want it to land directly in Circuit. circuit.act has submit and transcript actions for exactly this.

What happens at the rate limit?

Five thousand requests per hour per account. Beyond that, requests are rejected with a clear error — not silently dropped.

What happens if I’m over my monthly limit?

Rows enter a feedback queue and stay there. The next billing cycle or a top-up releases them FIFO. Voice is never the thing you lose to billing.

If it isn’t a connector yet, it can still be a signal.

Related

Part of Circuit’s autonomous product intelligence stack — see the full picture.