API reference · v1 · Illustrative

Build with FullView.

Connect FullView's business intelligence, signals, and actions to the systems your business already uses. One workspace, one authenticated surface, one place to compose growth automation.

⌘ K
REQUEST · CURLLIVE PREVIEW
curl https://api.fullview.cloud/v1/businesses \
  -H "Authorization: Bearer YOUR_API_KEY"
200 · RESPONSE128 ms · JSON
{
  "data": [
    { "id": "biz_ill_01hkq7xr9c", "name": "Harborcrest Law" },
    { "id": "biz_ill_01hkq82nb1", "name": "Redline Forge" }
  ],
  "next_cursor": null
}
Architecture

One APIfor every integration.

FullView isn't a collection of disconnected features. The API is the seam that lets your systems flow into the platform, and the platform flow back out.

Illustrative architecture
01Your systemsThe data and events already flowing through your stack.
02FullView APIA single, workspace-scoped surface.
03FullView platformWhere signals, intelligence, and actions live.
CRM
Website
ERP
Data Warehouse
Custom Application
FULLVIEW API
api.fullview.cloud/v1
  • SignalsEvents entering FullView.
  • ContextBusiness, industry, size.
  • IntelligenceScores, priorities, briefings.
  • ActionsReplies, sends, workflow triggers.
Sales
Growth
Analytics
Revenue
Conversations
Requests entering FullView
Events and responses leaving FullView
JSON · HTTPS · v1
API reference/Introduction

#Introduction

The FullView API is a single HTTPS surface that lets your systems read from and write to the same intelligence layer that powers every module of the FullView platform. Every request lives inside a workspace, and every workspace acts as an isolated tenant with its own key, its own data, and its own signals.

This reference is organised the way a working integration is built: first authenticate, then send or read data, then plug into the intelligence and automation surfaces. The right-hand column shows the request and response for the current section — keep it in view as you read.

This reference is a preview. The production API is still being built. Every endpoint, event, and payload on this page is a design placeholder — the shipped reference will be generated directly from the FullView OpenAPI contract.
Start with Getting Started Skip to authentication
API reference/Getting started

#Getting started

Five conceptual steps to go from an empty workspace to code running against FullView. Every step below maps to a real section of this reference and, later, to a real page in the production docs.

01Authenticate
Attach a workspace API key on every request. Keys are scoped to a single workspace and support restricted read/write scopes.
02Send or retrieve data
Create businesses, contacts, and activities — or read FullView's canonical view of them back out.
03Add business context
Enrich the objects you send with the industry, size, region, and lifecycle data that make FullView useful.
04Use intelligence
Read signals, opportunities, and briefings — the same intelligence products that power the FullView app.
05Trigger actions
Fire outreach, chat replies, and internal tasks; or subscribe to webhooks and let FullView call you.
API reference/Authentication

#Authentication

Every request carries a workspace-scoped API key on the Authorization header. Keys are opaque strings prefixed with fv_live_ in production and fv_test_ in the sandbox. Every example on this page uses fv_example_ — a prefix reserved for documentation samples and never issued to a real workspace.

Illustrative. The mechanism, key format, and scoping model shown here are architectural. Final key formats, rotation SLAs, and scope names will be documented against the shipped API contract.

#The API key field

WORKSPACE KEYread · write · workspace-scoped
fv_example_••••••••••••••••••••••••••••••••
● This is an illustrative example key. Real keys are only shown once — immediately after they are minted in the FullView app.

#Sending an authenticated request

Attach the key as a Bearer token on the Authorization header. Missing, malformed, or revoked keys return 401 Unauthorized.

EXAMPLE REQUEST \u00b7 CURL
# Do not commit real keys. Load them from a secret manager or env var.
curl https://api.fullview.cloud/v1/businesses \
  -H "Authorization: Bearer YOUR_API_KEY"
Overview/Errors

#Errors

The API uses standard HTTP status codes and a stable envelope for every error. The body always contains an error object with a machine-readable code, a human-readable message, and a request_id you can share with support.

200OK
The request succeeded. Body varies by endpoint.
201Created
Resource created. Response body contains the newly-created object.
400Bad Request
Request was malformed. See `error.message` for the specific reason.
401Unauthorized
API key missing, invalid, or revoked. Check the `Authorization` header.
403Forbidden
The API key is valid but does not have access to this resource.
404Not Found
The referenced object does not exist in this workspace.
422Unprocessable
Body validated but semantically rejected. See `error.details` for field-level errors.
429Rate Limited
Rate-limit reached. Illustrative — real limits will be documented once finalized.
500Server Error
Something went wrong on our side. Safe to retry with backoff.
503Unavailable
The API is temporarily offline. Check status.fullview.cloud (illustrative).

#Error envelope

Every failing response returns the same shape. Log the request_id when raising a support ticket.

422 \u00b7 UNPROCESSABLE
{
  "error": {
    "type": "invalid_request",
    "code": "missing_field",
    "message": "The request body is missing the required field 'title'.",
    "field": "title",
    "request_id": "req_ill_01hkr08nx4"
  }
}
Overview/Rate limits

#Rate limits

Rate limits are enforced per workspace, per key. When exceeded, FullView returns 429 Rate Limited with a Retry-After header.

Numeric limits will be documented here. Placeholder gauges below reflect the UI treatment; concrete limits will be published alongside the shipped API.
Illustrative · Free
Requests / minute—
Used 32% · this windowHEALTHY
Illustrative · Growth
Requests / minute—
Used 61% · this windowHEALTHY
Illustrative · Enterprise
Requests / minute—
Used 18% · this windowHEALTHY

#Response headers

Every response carries the caller's current window state:

RESPONSE HEADERS
X-RateLimit-Limit: <int>
X-RateLimit-Remaining: <int>
X-RateLimit-Reset: <unix timestamp>
Retry-After: <seconds>  # only on 429
Overview/Versioning

#Versioning

The API is versioned in the URL path. Every request pins itself to a version, so a change to the shipped API never silently affects an existing integration.

Proposed version architecture. Cadence and support windows will be defined against the shipped API.
GET/v1/…
CurrentThe version documented on this page.
GET/v0/…
Deprecated · illustrativeKept for the closed-alpha cohort. No new integrations should target it.
GET/v2/…
PlannedIntroduced when a backwards-incompatible change is required.
API reference/Endpoints

#Endpoint explorer

Every endpoint below carries the same anatomy: header, description, parameter table, and language-tabbed request/response. This is the reusable pattern the production docs will consume from OpenAPI.

Core · Businesses/List businesses

#List businesses

GET/v1/businessesRequires Bearer key

Return a paginated list of businesses in the workspace. Filter by industry, status, or the presence of open signals.

Query parameters
5 parameters
industrystringqueryoptional
Filter to a single industry slug, e.g. legal-services.
statusenumqueryoptional
Filter by lifecycle state.
One ofactivedormantchurned
has_open_signalsbooleanqueryoptional
When true, only return businesses with unresolved signals.
limitintegerqueryoptional
Page size. Default 20. Max 100.
cursorstringqueryoptional
Opaque cursor from a previous response's next_cursor.
REQUEST · CURL
curl "https://api.fullview.cloud/v1/businesses?industry=legal-services&limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"
200 · RESPONSE
{
  "data": [
    {
      "id": "biz_ill_01hkq7xr9c",
      "name": "Harborcrest Law",
      "domain": "harborcrestlaw.com",
      "industry": "legal-services",
      "hq": { "city": "Chicago", "region": "IL", "country": "US" },
      "size": "51-200",
      "status": "active",
      "signals_open": 3,
      "opportunities_open": 2,
      "created_at": "2026-01-14T10:22:04Z"
    },
    {
      "id": "biz_ill_01hkq82nb1",
      "name": "Redline Forge Manufacturing",
      "domain": "redlineforge.com",
      "industry": "industrial",
      "hq": { "city": "Detroit", "region": "MI", "country": "US" },
      "size": "201-500",
      "status": "active",
      "signals_open": 1,
      "opportunities_open": 0,
      "created_at": "2026-01-18T15:41:00Z"
    }
  ],
  "next_cursor": "eyJvZmZzZXQiOjIwfQ"
}
Possible errors
Core · Businesses/Retrieve a business

#Retrieve a business

GET/v1/businesses/{business_id}Requires Bearer key

Return a single business by ID, expanded with open signals and opportunities. Pass `?expand=` to inline related objects.

Path & query parameters
2 parameters
business_idstringpathrequired
Identifier of the business, prefixed biz_.
expandstringqueryoptional
Comma-separated list. Supports signals, opportunities, contacts.
REQUEST · CURL
curl https://api.fullview.cloud/v1/businesses/biz_ill_01hkq7xr9c?expand=signals,opportunities \
  -H "Authorization: Bearer YOUR_API_KEY"
200 · RESPONSE
{
  "id": "biz_ill_01hkq7xr9c",
  "name": "Harborcrest Law",
  "domain": "harborcrestlaw.com",
  "industry": "legal-services",
  "hq": { "city": "Chicago", "region": "IL", "country": "US" },
  "size": "51-200",
  "status": "active",
  "signals": [
    {
      "id": "sig_ill_01hkr02aq7",
      "type": "website.visitor_intent",
      "score": 0.82,
      "detected_at": "2026-09-11T14:04:12Z"
    },
    {
      "id": "sig_ill_01hkr03z11",
      "type": "search.ranking_change",
      "score": 0.47,
      "detected_at": "2026-09-10T08:15:03Z"
    }
  ],
  "opportunities": [
    {
      "id": "opp_ill_01hkr0512c",
      "title": "Reach out to two returning prospects from Chicago",
      "priority": 2,
      "status": "open"
    }
  ],
  "created_at": "2026-01-14T10:22:04Z"
}
Possible errors
Core · Opportunities/List opportunities

#List opportunities

GET/v1/opportunitiesRequires Bearer key

Return growth opportunities in the workspace. Filter by status, source, business, or assignee.

Query parameters
5 parameters
statusenumqueryoptional
Lifecycle state.
One ofopenin_progressresolveddismissed
sourceenumqueryoptional
Where the opportunity was produced.
One ofanalyzersearchmanualrevenue
business_idstringqueryoptional
Filter to a single business.
assignee_idstringqueryoptional
Filter to opportunities routed to a specific user.
limitintegerqueryoptional
Page size. Default 20. Max 100.
REQUEST · CURL
curl "https://api.fullview.cloud/v1/opportunities?status=open&limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"
200 · RESPONSE
{
  "data": [
    {
      "id": "opp_ill_01hkr0512c",
      "business_id": "biz_ill_01hkq7xr9c",
      "source": "analyzer",
      "title": "Reach out to two returning prospects from Chicago",
      "priority": 2,
      "status": "open",
      "assignee_id": "usr_ill_kate",
      "created_at": "2026-09-11T14:20:03Z"
    },
    {
      "id": "opp_ill_01hkr06m8g",
      "business_id": "biz_ill_01hkq82nb1",
      "source": "search",
      "title": "Publish 'CNC lead times' page — climbing keyword",
      "priority": 3,
      "status": "open",
      "assignee_id": null,
      "created_at": "2026-09-11T09:02:11Z"
    }
  ],
  "next_cursor": null
}
Possible errors
Core · Opportunities/Create an opportunity

#Create an opportunity

POST/v1/opportunitiesRequires Bearer key

Create a new opportunity in the workspace, optionally attached to a business.

Body parameters
5 parameters
business_idstringbodyoptional
Business the opportunity is attached to.
sourceenumbodyrequired
Origin of the opportunity.
One ofanalyzersearchmanualrevenue
titlestringbodyrequired
Human-readable summary. 3–140 characters.
priorityintegerbodyoptional
Value 1–5, lower is higher priority. Defaults to 3.
assignee_idstringbodyoptional
User the opportunity is routed to.
REQUEST · CURL
curl -X POST https://api.fullview.cloud/v1/opportunities \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "business_id": "biz_ill_01hkq7xr9c",
    "source": "manual",
    "title": "Follow up on Q3 renewal conversation",
    "priority": 2
  }'
200 · RESPONSE
{
  "id": "opp_ill_01hkr0zc4d",
  "business_id": "biz_ill_01hkq7xr9c",
  "source": "manual",
  "title": "Follow up on Q3 renewal conversation",
  "priority": 2,
  "status": "open",
  "assignee_id": null,
  "created_at": "2026-09-12T09:11:47Z"
}
Possible errors
Core · Signals/List signals

#List signals

GET/v1/signalsRequires Bearer key

Return the stream of signals detected across the workspace. Filter by type, business, or a time window.

Query parameters
5 parameters
typestringqueryoptional
Signal type, e.g. website.visitor_intent.
business_idstringqueryoptional
Restrict to a single business.
sincestringqueryoptional
ISO 8601 timestamp — return signals detected on/after.
min_scorenumberqueryoptional
Only return signals with score ≥ this value. Range 0–1.
limitintegerqueryoptional
Page size. Default 20. Max 100.
REQUEST · CURL
curl "https://api.fullview.cloud/v1/signals?type=website.visitor_intent&min_score=0.6" \
  -H "Authorization: Bearer YOUR_API_KEY"
200 · RESPONSE
{
  "data": [
    {
      "id": "sig_ill_01hkr02aq7",
      "type": "website.visitor_intent",
      "business_id": "biz_ill_01hkq7xr9c",
      "score": 0.82,
      "context": {
        "pages_viewed": 6,
        "returning": true,
        "landing_page": "/pricing"
      },
      "detected_at": "2026-09-11T14:04:12Z"
    },
    {
      "id": "sig_ill_01hkr03z11",
      "type": "search.ranking_change",
      "business_id": "biz_ill_01hkq82nb1",
      "score": 0.47,
      "context": {
        "keyword": "cnc lead time",
        "from_rank": 14,
        "to_rank": 7
      },
      "detected_at": "2026-09-10T08:15:03Z"
    }
  ],
  "next_cursor": null
}
Possible errors
Core/Signals

#Signals

Signals are the events FullView is continuously deriving from the systems you connect. Every module writes into the same stream, so the API surface is the same regardless of where the event was born.

Event names are illustrative — the shipped taxonomy will be authoritative.
SIGNAL STREAM · LIVE
STREAMING
website.visitor_intent
A known company returns to your site with high intent.
Website
just now
website.form_submitted
A form was submitted from a monitored page.
Website
6s ago
search.ranking_change
A tracked keyword moved rank by ≥ 3 positions.
Search
10s ago
search.query_surge
A tracked keyword saw a sudden search-volume increase.
Search
14s ago
sales.prospect_engaged
A prospect took an action inside a live outreach sequence.
Sales
18s ago
sales.deal_stalled
An in-progress deal has gone quiet past the expected cadence.
Sales
22s ago
+ 4 more signal typesView taxonomy →
CONSUMING A SIGNAL
POLL \u00b7 CURL
# Read new signals since your last cursor
curl "https://api.fullview.cloud/v1/signals?type=website.visitor_intent&min_score=0.6" \
  -H "Authorization: Bearer YOUR_API_KEY"
SUBSCRIBE \u00b7 WEBHOOK
{
  "url": "https://your-app.com/hooks/fullview",
  "events": ["signal.detected"],
  "filter": {
    "type": "website.visitor_intent",
    "min_score": 0.6
  }
}
Signals are additive. FullView never mutates a delivered signal — downstream corrections arrive as new events with the same business_id.
Automation/Webhooks

#Webhooks

Instead of polling, subscribe a URL to one or more event types. FullView will POST a JSON envelope to your endpoint every time a matching event is written to the workspace. Delivery is at-least-once — dedupe on id.

Event taxonomy is illustrative until the production spec ships.
FULLVIEW
Signal detected
opportunity.created
POSTContent-Type: application/jsonX-FullView-Signature: v1=…
YOUR APPLICATION
Handler running
/hooks/fullview

#Event types

opportunity.created
A new opportunity was created in the workspace.
opportunity.resolved
An open opportunity moved to `resolved`.
signal.detected
A new signal was written to the signal stream.
conversation.reply
A new inbound reply landed in a conversation.
briefing.ready
Today's Executive Assistant briefing is available.

#Delivery envelope

Every delivery uses the same envelope, so a single handler can route by type and unpack data according to the matching object schema.

DELIVERY \u00b7 JSON
{
  "id": "evt_ill_01hkr09kt2",
  "type": "opportunity.created",
  "created_at": "2026-09-12T09:11:47Z",
  "data": {
    "id": "opp_ill_01hkr0zc4d",
    "business_id": "biz_ill_01hkq7xr9c",
    "source": "manual",
    "title": "Follow up on Q3 renewal conversation",
    "priority": 2,
    "status": "open"
  },
  "livemode": true,
  "workspace_id": "ws_ill_acme"
}
Playground/Request builder

#Request builder

Assemble a request without leaving the page. Every field feeds the assembled URL below, so you can see how the request is put together before you copy it into your own environment.

The playground uses a local mock — no request is sent.
GETMethod is fixed by the selected endpoint.
status=
limit=
BearerYOUR_API_KEYIllustrative — no real key attached.
ASSEMBLED URL
GET https://api.fullview.cloud/v1/opportunities?status=open&limit=20
RESPONSE
Press Run request to see the mocked response.
Platform relationship

The API is the platform.

Every module reads and writes the same objects the API exposes. Access it from an integration, an agent, or the FullView app itself — the intelligence layer underneath is the same.

Architectural view
FULLVIEW API
api.fullview.cloud/v1
Signals
Events entering the platform.
Context
Business, industry, size, region.
Actions
Trigger sends, replies, tasks.
FULLVIEW PLATFORM
Website AnalyzerBusiness IntelligenceSearch ConsoleAnalyticsGrowth OpportunitiesRevenue IntelligenceExecutive AssistantAI Sales AgentOutreach CampaignsEngageConversationsBlog Automation
Ship with us

Build the integrationyour team actually wanted.

The FullView API is being built alongside the platform. Start a workspace to try what's live today — or talk to us if you have a specific integration in mind.