Back to Documentation

API Reference

Programmatic access to Previse. Authenticate with an API key and interact with signals, enrichment, deals, and more.

Authentication

API access requires a Pro tier subscription. Generate an API key in Settings → API Keys. Keys use the pvs_ prefix.

Authorization: Bearer pvs_your_api_key_here

Base URL: https://api.previse.dev

Authentication

API requests are authenticated using API keys. Generate a key in Settings → API Keys. Include it as a Bearer token.

GET/api/me

Get the authenticated user profile.

curl -H "Authorization: Bearer pvs_your_key" https://api.previse.dev/api/me

Signals / Feed

Query and manage your signal feed. Supports cursor-based pagination and filtering.

GET/api/pfeed

List signals with filtering and cursor pagination. Params: limit, after, q, phrase, location, phrase_tier, lead_score, sort (newest/oldest/relevance).

curl -H "Authorization: Bearer pvs_..." "https://api.previse.dev/api/pfeed?limit=25&phrase_tier=pre_opening&sort=newest"
GET/api/pfeed/meta

Get feed metadata: tier counts, location list, opted-in tiers.

GET/api/pfeed/groups

Get grouped signal counts. Params: group_by (company/location/tier/score/domain).

PATCH/api/signals/:id

Update a signal: notes, pipeline_status, company overrides, custom column values.

POST/api/signals/:id/hide

Hide a signal from your feed.

POST/api/signals/:id/pin

Pin or unpin a signal.

Enrichment

Enrich signals with additional business data. Credits are deducted per field.

POST/api/enrich-signal

Enrich a single signal. Body: { signalId, fields: ["owner_name", "email", ...] }.

curl -X POST -H "Authorization: Bearer pvs_..." -H "Content-Type: application/json" -d '{"signalId":"...","fields":["owner_name","phone_number"]}' https://api.previse.dev/api/enrich-signal
POST/api/enrich-batch

Batch enrich multiple signals. Stops when credits run out.

Deals

Manage your sales pipeline with deals.

GET/api/deals

List all deals. Supports ?q= search and ?stage= filter.

POST/api/deals

Create a new deal. Body: { company_name, products, proposed_mrc, deal_temperature, stage, ... }.

PATCH/api/deals/:id

Update a deal (stage, temperature, notes, etc.).

DELETE/api/deals/:id

Delete a deal.

GET/api/deals/stats

Get deal pipeline stats: total MRC, wins this month, stale deals count.

Export

Export signals to CSV for offline analysis.

POST/api/export

Create an export job. Body: { signal_ids (optional), format: "csv" }.

GET/api/export/:id

Check export status and get download URL.

Webhooks

Register endpoints to receive real-time event notifications.

GET/api/webhooks

List your registered webhooks.

POST/api/webhooks

Register a webhook. Body: { url, events: ["signal.created", ...] }.

DELETE/api/webhooks/:id

Remove a registered webhook.

Scraper

Control signal scanning programmatically.

GET/api/scraper/status

Get current scraper status and progress.

POST/api/scraper/trigger

Manually trigger a new scan.

Settings

Manage account configuration.

GET/api/settings

Get current user settings (phrases, locations, tiers).

PATCH/api/settings/phrases

Update search phrase selection.

PATCH/api/settings/locations

Update tracked locations.

Need help with the API? Contact us for integration support.