API Overview

Introduction to the Hissuno API, including internal endpoints, authentication, rate limits, and planned public API.

Introduction

Hissuno provides an internal REST API that powers the dashboard, widget, and integrations. The API is structured around project-scoped endpoints at /api/projects/[id]/... and is authenticated using API keys or session-based auth.

A public API SDK is planned but not yet available. The information below describes the current internal API and how to interact with it programmatically.

All API access is scoped to a specific project and authenticated using API keys managed on the Access page in the sidebar.

Internal API Structure

The Hissuno API is organized as Next.js API routes under the /api/ path. Project-scoped endpoints follow this pattern:

/api/projects/:projectId/sessions
/api/projects/:projectId/issues
/api/projects/:projectId/customers
/api/projects/:projectId/knowledge

These endpoints are used internally by the Hissuno dashboard and widget. While they can be called programmatically, they are not yet documented as a stable public API and may change without notice.

Authentication

API requests are authenticated using API keys passed in the Authorization header:

Authorization: Bearer hss_your_api_key_here

API keys are project-scoped, meaning each key grants access to a single Hissuno project. Keys are managed on the Access page in the sidebar. See the Authentication page for details on generating and managing keys.

Request Format

Content Type

All request bodies must be sent as JSON with the Content-Type: application/json header.

curl -X POST /api/projects/:projectId/sessions \
  -H "Authorization: Bearer hss_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"customer_email": "jane@example.com", "message": "How do I export data?"}'

Response Format

All responses are returned as JSON. Successful responses include the data directly or wrapped in a data field for lists.

Success Response

{
  "id": "sess_abc123",
  "customer_email": "jane@example.com",
  "status": "active",
  "created_at": "2026-01-15T10:30:00Z"
}

Error Response

{
  "error": "Session not found."
}

HTTP Status Codes

CodeDescription
200Request succeeded
201Resource created
400Bad request -- invalid parameters or body
401Unauthorized -- missing or invalid API key
403Forbidden -- API key does not have access to this resource
404Not found -- resource does not exist
422Unprocessable entity -- validation failed
500Internal server error

Rate Limits

API requests are rate-limited per API key:

PlanRate Limit
Free60 requests per minute
Pro300 requests per minute
Enterprise1,000 requests per minute

When you exceed the rate limit, the API returns a 429 status with a Retry-After header indicating how many seconds to wait.

Available Endpoints (Internal)

The following endpoints are currently available as internal API routes. These are subject to change and will be stabilized as part of the planned public API.

Sessions

MethodPathDescription
GET/api/projects/:id/sessionsList all feedback sessions
GET/api/projects/:id/sessions/:sessionIdGet a specific session

Issues

MethodPathDescription
GET/api/projects/:id/issuesList all issues
GET/api/projects/:id/issues/:issueIdGet a specific issue

Customers

MethodPathDescription
GET/api/projects/:id/customersList all customers
POST/api/projects/:id/customers/importImport customers

Knowledge

MethodPathDescription
GET/api/projects/:id/settings/knowledge-sourcesList knowledge sources
POST/api/projects/:id/settings/knowledge-sourcesAdd a knowledge source

Public API (Planned)

A public REST API with stable versioning, official SDKs, and comprehensive documentation is planned for a future release. This will include:

  • Versioned endpoints (e.g., /v1/sessions)
  • Official Node.js/TypeScript and Python SDK packages
  • Webhook registration for event-driven integrations
  • Stable request/response contracts with semantic versioning

Until the public API is available, use the internal endpoints above for programmatic access, keeping in mind that breaking changes may occur.