API reference, signal schema, integration specs, AI pipeline, security, and developer resources.
Signals are the raw material Clarion operates on. The platform supports three ingestion methods: CSV file upload, webhook endpoints, and direct integrations with popular tools.
Every signal contains these core fields:
| Field | Required | Description |
|---|---|---|
| title | Yes | Short summary of the feedback (max 500 chars) |
| rawContent | Yes | Full feedback text (max 50,000 chars) |
| sourceType | Yes | Origin: csv_import, webhook, zendesk, intercom, gong, amplitude, manual, slack, email, app_review, survey, github, jira, linear |
| status | Auto | Processing state: PENDING → PROCESSING → PROCESSED / FAILED / DUPLICATE / ARCHIVED. Set automatically — do not send on creation. |
| category | Auto | Auto-classified: feature_request, bug_report, ux_feedback, praise, churn_signal, support_question, competitive_intel |
| customerName | No | Name of the customer who gave the feedback |
| customerEmail | No | Customer email — used for automatic customer matching |
| customerCompany | No | Company name |
| customerArr | No | Annual recurring revenue (USD) |
| sourceId | No | External system ID (e.g., Zendesk ticket ID) |
| sourceUrl | No | Link back to the original source |
| sourceMetadata | No | JSON object with source-specific fields (ticket ID, channel, tags, priority, timestamps, etc.) |
Navigate to Signals → Import to upload a CSV file of customer feedback. Clarion parses the file, maps columns to signal fields, and queues each row for AI processing.
Your CSV should have a header row. Clarion recognizes these column names (case-insensitive):
title,rawContent,customerName,customerEmail,customerCompany,customerArr
"Need dark mode","Our entire team works late and the bright UI is painful","Jane Smith","jane@acme.com","Acme Corp",120000
"API rate limiting","Getting 429s when syncing more than 100 records","Bob Lee","bob@widgets.io","Widgets Inc",45000rawContent within 24 hours are automatically skipped.Note
Create custom webhook endpoints to receive signals from any external system. Navigate to Settings → Webhooks to create a new webhook.
Create a webhook
Configure your source
X-Webhook-Secret header for HMAC verification.Send signals
{
"title": "Feature request from Typeform",
"rawContent": "I wish I could export reports as PDF...",
"sourceType": "webhook",
"customerName": "Alice Chen",
"customerEmail": "alice@example.com",
"sourceMetadata": {
"formId": "abc123",
"submittedAt": "2026-02-15T10:30:00Z"
}
}For security, Clarion signs every expected payload with your webhook secret using HMAC-SHA256. Include the secret in the X-Webhook-Secret header. Requests with missing or invalid signatures are rejected with a 401 status.
Clarion connects directly with your existing tools via OAuth. Navigate to Settings → Integrations to connect any of the supported services.
subject → signal title, description → rawContent. Priority, status, tags, and timestamps are stored in sourceMetadata.Every signal passes through a multi-stage AI pipeline that runs asynchronously in the background. See the User Guide for the full walkthrough with screenshots.
Each processed signal produces these fields on its linked insight record:
| Stage | Output Field | Details |
|---|---|---|
| Classification | category | One of: feature_request, bug_report, ux_feedback, praise, churn_signal, support_question, competitive_intel. Includes confidence score (0–1). |
| Theme Extraction | themes | 1–3 topic labels (e.g., "Dashboard Performance"). Named entities (products, competitors) also extracted. |
| Sentiment | sentimentScore | Float from -1.0 (very negative) to +1.0 (very positive). |
| Importance | importanceScore | Integer 1–10 based on urgency, customer ARR, request frequency, and business impact. |
| Embeddings | embedding | 1024-dimension vector. Powers semantic search, Knowledge Explorer, and opportunity clustering. |
Signals with classification confidence below 70% are flagged in a review queue for manual verification.
| Tier | Available On | Used For |
|---|---|---|
| Clarion AI | Starter + Essentials | Classification, theme extraction, sentiment analysis, summaries |
| Clarion AI Pro | Pro + Enterprise | PRD generation, What to Build recommendations, machine spec generation |
| Vector Embeddings | Essentials + Pro + Enterprise | Semantic search powered by advanced AI embeddings |
Note
Spec Studio generates dual-audience documents — human-readable PRDs and machine-verifiable specs for AI coding agents. See the User Guide for the full editor walkthrough.
After generating a machine spec, generate five agent artifacts optimized for AI coding assistants:
| Artifact | File | Purpose |
|---|---|---|
| Cursor Rules | .cursorrules | Project context, tech stack, coding conventions, and implementation guidance for Cursor AI |
| Machine Spec | SPEC.md | Machine-verifiable specification with numbered requirements, data models, API contracts, and acceptance tests |
| Agent Guide | agents.md | 5-agent team workflow (Architect, Backend, Frontend, Testing, Review) with phased implementation strategy |
| Task Breakdown | tasks.json | Structured task list with dependency ordering, priorities, effort estimates, and acceptance criteria |
| Test Scenarios | acceptance_tests.spec.ts | TypeScript test file — each requirement becomes one or more test cases with edge cases |
Export specs formatted for specific AI coding tools:
| Tool | Format | Optimized For |
|---|---|---|
| Cursor | .cursorrules | Project context with spec constraints and testing requirements |
| Claude Code | CLAUDE.md | Implementation guidance with architecture decisions |
| v0 | Prompt | Component-focused prompts for Vercel v0 |
| Bolt | Prompt | Full-stack prompts for StackBlitz Bolt |
| Lovable | Prompt | Feature-focused prompts for Lovable |
| Format | Use Case |
|---|---|
| Word (.docx) | Formatted PRD for stakeholder review |
| Print-ready specification document | |
| Markdown (.md) | SPEC.md for repository inclusion |
| ZIP | All agent artifacts bundled in a single download |
| Jira | Structured export compatible with Jira issue import |
| Linear | Formatted for Linear project import |
Push generated artifacts directly to a GitHub repository. Clarion creates a new branch, commits all artifact files, and opens a pull request. When the PR is merged, Clarion automatically detects the shipped feature and updates the linked opportunity status.
Specs are validated for completeness and consistency. The validator checks for missing acceptance criteria, undefined API contracts, inconsistent data models, and untested edge cases. Validation results are shown inline as gap indicators before artifact generation.
Agent Bridge connects Clarion directly to AI coding agents via the Model Context Protocol (MCP). Instead of copy-pasting specs, your coding agent can query Clarion in real-time.
Clarion exposes an MCP-compatible server with seven tools that coding agents can call:
| Tool | Description |
|---|---|
| list_specifications | List all specs with status and metadata |
| get_specification | Get full spec details including PRD and machine spec |
| get_cursorrules | Get .cursorrules content for a spec |
| get_tasks | Get tasks.json breakdown for a spec |
| get_tests | Get test scenarios for a spec |
| get_agents_guide | Get agents.md implementation guide |
| search_specifications | Semantic search across all specifications |
MCP requests are authenticated with API keys. Generate a key in Settings → API Keys. Include it as a Bearer token:
{
"mcpServers": {
"clarion": {
"url": "https://getclarion.in/api/v1/mcp",
"headers": {
"Authorization": "Bearer your-api-key-here"
}
}
}
}The Agent Bridge page in Clarion provides a visual interface for managing MCP connections, testing tool calls, and monitoring agent activity. You can see which specs agents are currently reading and track tool call history.
Clarion provides a RESTful API for programmatic access. All API endpoints require authentication via API key or session token.
Generate API keys in Settings → API Keys. Include the key as a Bearer token in the Authorization header:
curl -H "Authorization: Bearer cl_your_api_key" \
https://getclarion.in/api/v1/signalsWarning
Signals
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/signals | List signals with filters and pagination |
| POST | /api/v1/signals | Create a new signal |
| GET | /api/v1/signals/:id | Get signal details with insight and customer data |
| DELETE | /api/v1/signals/:id | Soft-delete a signal |
| PATCH | /api/v1/signals/bulk-update | Bulk update status/category on up to 200 signals |
| POST | /api/v1/signals/import | Import signals from CSV file upload |
Insights & Opportunities
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/insights | List insights with aggregations and filters |
| GET | /api/v1/insights/themes | List extracted themes with signal counts |
| GET | /api/v1/insights/trends | Get trend data over time |
| GET | /api/v1/opportunities | List opportunities with framework scores |
| POST | /api/v1/opportunities | Create an opportunity |
| GET | /api/v1/opportunities/:id | Get opportunity details with linked insights |
| PATCH | /api/v1/opportunities/:id | Update opportunity fields |
| DELETE | /api/v1/opportunities/:id | Delete an opportunity |
Specifications
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/specifications | List specifications with status |
| POST | /api/v1/specifications | Create a specification (standalone or from opportunity) |
| GET | /api/v1/specifications/:id | Get full spec with PRD and machine spec |
| PATCH | /api/v1/specifications/:id | Update spec content |
| DELETE | /api/v1/specifications/:id | Delete a specification |
| POST | /api/v1/specifications/:id/generate-machine-spec | Start machine spec generation |
| POST | /api/v1/specifications/:id/generate-artifacts | Generate agent artifacts |
| GET | /api/v1/specifications/:id/artifacts/download | Download artifacts as ZIP |
| POST | /api/v1/specifications/:id/push-to-github | Push artifacts to GitHub as a PR |
Webhooks
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/webhooks | List webhook endpoints |
| POST | /api/v1/webhooks | Create a webhook endpoint |
| DELETE | /api/v1/webhooks/:id | Delete a webhook endpoint |
| POST | /api/v1/webhooks/:id/ingest | Send signal data to a webhook |
| POST | /api/v1/webhooks/:id/test | Send a test payload |
Search & Knowledge
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/search | Semantic search across signals, insights, and specs |
| POST | /api/v1/knowledge/chat | Start or continue a Knowledge Explorer conversation |
| GET | /api/v1/customers/:id | Get customer details with signal history |
All successful responses return a JSON object with a data key. List endpoints include pagination metadata:
{
"data": [
{
"id": "01960a3b-...",
"title": "Need bulk export option",
"rawContent": "Our team needs to export reports as PDF...",
"sourceType": "zendesk",
"status": "PROCESSED",
"category": "feature_request",
"customer": {
"id": "01960a3a-...",
"name": "Jane Smith",
"company": "Acme Corp"
},
"createdAt": "2026-02-15T10:30:00Z"
}
],
"nextCursor": "01960a3b-...",
"total": 142
}List endpoints use cursor-based pagination. Pass cursor (the ID of the last item) and limit (default 20, max 100) as query parameters. The response includes a nextCursor field for the next page.
API requests are rate-limited per API key. Limits depend on your plan (see User Guide for full plan details):
| Plan | Rate Limit |
|---|---|
| Starter (Free) | 60 requests / minute |
| Essentials | 200 requests / minute |
| Pro | 300 requests / minute |
| Enterprise | Custom (contact sales) |
Rate limit headers (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) are included in every response.
All errors follow a consistent JSON format:
{
"error": "Human-readable error message",
"code": "MACHINE_READABLE_CODE"
}| Code | HTTP Status | Description |
|---|---|---|
| UNAUTHORIZED | 401 | Missing or invalid authentication |
| FORBIDDEN | 403 | Insufficient permissions for this action |
| NOT_FOUND | 404 | Resource does not exist |
| VALIDATION_ERROR | 400 | Invalid request body or parameters |
| RATE_LIMITED | 429 | Too many requests |
| INTERNAL_ERROR | 500 | Unexpected server error |
Clarion implements defense-in-depth security across every layer. See our Privacy Policy for the full data handling details.
All data is strictly isolated by organization. Every request is scoped to your organization. There is no way to access another organization’s data through any API endpoint or UI interaction.
Clarion uses role-based access control (RBAC) to manage permissions within your organization.
| Role | Permissions |
|---|---|
| Owner | Full access. Manage billing, delete org, transfer ownership. One per org. |
| Admin | Manage team, settings, integrations, workflows, and all content. Cannot manage billing or delete org. |
| Member | Create and edit signals, insights, opportunities, and specs. Cannot manage team or settings. |
| Viewer | Read-only access to all data. Cannot create, edit, or delete anything. |
Invite team members from Settings → Team. Each invitation specifies a role. For Pro plans, you can optionally assign a Pro seat to the invited member (giving them access to Pro features). Invitations are delivered via email and expire after 7 days.
You can also create shareable invite links for bulk onboarding. Invite links can be configured with a maximum number of uses and an expiration date.
Users can belong to multiple organizations. Switch between orgs from the sidebar dropdown menu. Each org has its own data, settings, and billing — completely isolated.