Build on the Conversational Intelligence Infrastructure

A REST API and realtime subscriptions over the same intents, conversations, and matches that power every Pulse — so you can build your own domain layer without rebuilding the engine.

Quick start

Authenticate & Create an Intent

Every API call is scoped to your organization's API key. Intents are the core object in CII — a structured record extracted from a conversation.

POST /v1/intents Authorization: Bearer sk_live_... Content-Type: application/json { "type": "sell", "commodity": "white_maize", "quantity": { "value": 500, "unit": "MT" }, "location": "Kaduna, NG", "visibility": "public", "source_conversation_id": "conv_8f21..." }

Core endpoints

API Reference

MethodEndpointDescription
POST/v1/conversationsIngest a raw conversation message from any channel
GET/v1/conversations/:idRetrieve a conversation and its extracted structure
POST/v1/intentsCreate a structured intent directly (bypassing chat extraction)
GET/v1/intentsSearch and filter intents by type, commodity, location, date
GET/v1/matchesRetrieve matches generated between compatible intents
GET/v1/intelligence/summaryAggregate market/organizational intelligence for a domain
POST/v1/webhooks/whatsappWhatsApp Cloud API inbound webhook (channel adapter)

Realtime

Subscribe, Don't Poll

supabase .channel('intents') .on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'intents', filter: "visibility=eq.public" }, payload => { // new public intent — render it live renderIntent(payload.new) }) .subscribe()

Every public intent created anywhere in CII — across any Pulse — is broadcast over Supabase Realtime the moment it's written to Postgres. This is what powers FarmerPulse's live feed, and it's available to any application built on the platform.

  • Row-level security enforces visibility (private / partners / public)
  • Vector search (pgvector) powers semantic search over intents and conversations
  • RAG combines your organization's own history with general model knowledge

Ready to Build?

Request API access and a sandbox organization to start integrating.