Lucent Signals API
The Signals API from Lucent — 1 operation(s) for signals.
The Signals API from Lucent — 1 operation(s) for signals.
openapi: 3.1.0
info:
title: Lucent Insights Signals API
description: HTTP APIs for Lucent. The Data API reads Lucent data and updates issue status. The Ingest API receives rrweb batches from the @lucenthq/sdk browser package and custom integrations built on top of the same contract.
license:
name: MIT
version: 0.1.0
servers:
- url: https://app.lucenthq.com
description: Production app
tags:
- name: Signals
paths:
/api/v1/signals:
get:
summary: List signals
description: Lists configured signals and match counts for the bearer token's organization.
operationId: listSignals
security:
- lucentBearer: []
parameters:
- $ref: '#/components/parameters/LimitSignals'
- $ref: '#/components/parameters/Cursor'
responses:
'200':
description: Signals page.
content:
application/json:
schema:
$ref: '#/components/schemas/ListSignalsResponse'
'400':
$ref: '#/components/responses/DataBadRequest'
'401':
$ref: '#/components/responses/DataUnauthorized'
'429':
$ref: '#/components/responses/DataRateLimited'
tags:
- Signals
components:
schemas:
ListSignalsResponse:
type: object
required:
- signals
- nextCursor
properties:
signals:
type: array
items:
$ref: '#/components/schemas/Signal'
nextCursor:
type: string
nullable: true
ErrorResponse:
type: object
required:
- error
properties:
error:
type: string
Signal:
type: object
required:
- id
- name
- prompt
- status
- backfillStatus
- createdAt
- matchCount
properties:
id:
type: string
format: uuid
name:
type: string
prompt:
type: string
status:
type: string
backfillStatus:
type: string
nullable: true
createdAt:
type: string
format: date-time
matchCount:
type: integer
minimum: 0
lastMatchAt:
type: string
format: date-time
nullable: true
parameters:
Cursor:
name: cursor
in: query
required: false
description: Opaque pagination cursor returned as `nextCursor` from the previous page.
schema:
type: string
LimitSignals:
name: limit
in: query
required: false
description: Maximum signals to return.
schema:
type: integer
minimum: 1
maximum: 200
default: 50
responses:
DataRateLimited:
description: Rate limit exceeded. Reads allow 300 requests per minute; writes allow 60 requests per minute.
headers:
Retry-After:
description: Seconds until the rate limit resets.
schema:
type: integer
minimum: 1
X-RateLimit-Limit:
description: Limit for the current window.
schema:
type: integer
X-RateLimit-Remaining:
description: Remaining requests in the current window.
schema:
type: integer
X-RateLimit-Reset:
description: Unix timestamp when the current window resets.
schema:
type: integer
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
DataUnauthorized:
description: Missing, malformed, revoked, or unknown bearer token.
headers:
WWW-Authenticate:
description: Bearer challenge with the required scope.
schema:
type: string
example: Bearer scope="read:lucent"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
DataBadRequest:
description: Invalid request parameter or body.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
securitySchemes:
lucentApiKey:
type: apiKey
in: header
name: X-Lucent-Api-Key
description: Public key prefixed with `luc_pk_`. Safe to expose in client-side code. For `navigator.sendBeacon` callers that cannot set headers, the key may also be passed as the `api_key` query parameter.
lucentBearer:
type: http
scheme: bearer
description: API keys prefixed with `luc_api_` or OAuth access tokens prefixed with `luc_oat_`. Legacy static keys prefixed with `luc_mcp_` continue to work.