Copilot
Configure your agent by describing what you want it to do.
Describe what you want your agent to do
Ask about hours, share a website URL, or attach documents for the agent to learn from.
Scheduled Tasks
Review, pause, run, and manage scheduled outbound work.
| Name | Type | Schedule | Next run | Status | Last result | Actions |
|---|---|---|---|---|---|---|
| Loading… | ||||||
New Task
Choose an outcome and schedule it — no JSON required.
1. Choose outcome
2. Configure action
3. Schedule
Preview
Task Runs
Execution history, results, and failure details.
| Task | Type | Scheduled for | Started | Status | Duration | Result | Details |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
Templates
Start from a common outcome without editing JSON.
Operational Tasks
Digests, checks, exports, and maintenance work.
| Name | Type | Schedule | Status | Next run |
|---|---|---|---|---|
| Loading… | ||||
Failures requiring action
Permanently failed Tasks that need attention.
| Name | Type | Error | Updated |
|---|---|---|---|
| Loading… | |||
Workflows
Multi-step automations for this company.
| Name | Status | Created |
|---|---|---|
| Loading… | ||
Campaigns
Batch audience outreach with confirmation and pause/cancel controls.
| Name | Status | Action | Created |
|---|---|---|---|
| Loading… | |||
Public API
Integrate with Border Connector using the versioned /v1 API. Download the OpenAPI contract for code generation and client tooling.
OpenAPI specification
Machine-readable contract for all Public API v1 endpoints. Import it into Bruno, Postman, OpenAPI Generator, or your IDE.
Spec URL: __CONNECTOR_ORIGIN__/v1/openapi.yaml
API credentials
Create scoped keys (bc_live_... / bc_test_...) for the Public API. Use them as Authorization: Bearer …. The full secret is shown only once at creation or rotation.
Only company owners and admins can create or manage API credentials.
admin grants every scope. Prefer the smallest set your integration needs.
New API secret
Copy this secret now. It will not be shown again.
Active credentials
Loading credentials…
Legacy company API key (compat)
Prefer scoped credentials above. This key may work for /v1 only when legacy compat is enabled on the server.
Select a company to see your legacy API key.
Authentication
Send your scoped credential as a Bearer token. Query-string API keys are rejected on /v1.
- Header:
Authorization: Bearer YOUR_SCOPED_KEY - Send
Idempotency-Keyon mutating requests that require it (OpenAPI marks these). - Every response includes
X-Request-Id/meta.request_idfor support.
Public API v1
Base URL
__CONNECTOR_ORIGIN__/v1
Full contract: __CONNECTOR_ORIGIN__/v1/openapi.yaml (no auth required).
OpenAPI contract
Download or fetch the OpenAPI 3.1 YAML used by clients and CI.
Endpoint URL
GET __CONNECTOR_ORIGIN__/v1/openapi.yaml
Create contact
Create a public contact profile. Requires contacts:write and an Idempotency-Key.
cURL example
curl -X POST "__CONNECTOR_ORIGIN__/v1/contacts" \
-H "Authorization: Bearer YOUR_SCOPED_KEY" \
-H "Idempotency-Key: contact-1" \
-H "Content-Type: application/json" \
-d '{"external_id":"crm_123","name":"Ada Lovelace","phones":["+15551234567"]}'
Send message / run agent
Post a user message on a conversation. Use run.mode respond_only, dry_run, or deliver. Add ?stream=true for SSE.
cURL example
curl -X POST "__CONNECTOR_ORIGIN__/v1/conversations/cv_.../messages" \
-H "Authorization: Bearer YOUR_SCOPED_KEY" \
-H "Idempotency-Key: msg-1" \
-H "Content-Type: application/json" \
-d '{"role":"user","channel":"sms","content":{"type":"text","text":"Can we meet tomorrow?"},"run":{"mode":"deliver","execution":"async"}}'
Queue outbound call
Queue an outbound call asynchronously. Requires calls:write. Control live calls with hangup, instructions, and transfer endpoints documented in OpenAPI.
cURL example
curl -X POST "__CONNECTOR_ORIGIN__/v1/calls" \
-H "Authorization: Bearer YOUR_SCOPED_KEY" \
-H "Idempotency-Key: call-1" \
-H "Content-Type: application/json" \
-d '{"from":"+15550001111","to":"+15551234567","objective":"Confirm appointment availability"}'
Resource groups
Full request/response schemas live in the OpenAPI file. High-level surface:
/v1/contacts— create, upsert, export, erase/v1/conversations— lifecycle, handoff, messages, SSE/v1/messages— direct SMS / email / WhatsApp outbound/v1/agent-runs— status, cancel, sanitized trace/v1/calls— outbound, hangup, transfer, transcript, recording/v1/media— managed uploads and downloads/v1/tasks— scheduled work/v1/calendar— availability and bookings (provider-aware)/v1/channels— readiness and capabilities/v1/webhook-endpoints— signed outbound events/v1/events— durable event log/v1/usage— usage reads/v1/credentials— scoped key management (admin)
Integration notes
Default rate limit is 120 requests/minute per credential (RateLimit-* / Retry-After).
Resources are company-scoped. Webhook signatures use HMAC SHA-256 over <timestamp>.<raw body> with header Border-Connector-Signature.
JS client: packages/public-api-client. Bruno collection: docs/bruno/public-v1.
Company Management
Manage your companies and create new ones
Usage Statistics
Track model usage and costs across all your companies and conversations
Daily Cost Trend
Usage by Company
Total usage per company. Click a row to see model breakdown. STT time is speech duration for per-minute models (not API audio tokens).
| Company / Model / Type | Date | Text | Audio | Est. Cost | |||
|---|---|---|---|---|---|---|---|
| Input | Output | In (tok) | STT time | Out (tok) | |||
Usage by Conversation
Detailed usage per conversation. STT time = speech duration for per-minute STT; In (tok) = API audio tokens (e.g. Realtime).
| Conversation / Model / Type | Date | Text | Audio | Est. Cost | |||
|---|---|---|---|---|---|---|---|
| Input | Output | In (tok) | STT time | Out (tok) | |||
Calendar
View and manage appointments in your built-in calendar.
Calendar is turned off.
Use the switch above to turn the calendar back on.
January 2026
Loading calendar…