Skip to main content
The integrations API manages external service configuration - storing credentials, checking connectivity, and providing status information to the UI. Get web search configuration and provider status.
curl http://localhost:3000/api/integrations/web-search \
  --cookie "profclaw_session=<token>"
Response 200
{
  "config": {
    "enabled": true,
    "provider": "brave",
    "brave": { "apiKey": "sk-*****" }
  },
  "status": {
    "available": true,
    "provider": "brave",
    "reason": null
  },
  "providers": [
    { "id": "brave", "name": "Brave Search", "description": "Fast, privacy-focused", "configFields": ["apiKey"] },
    { "id": "serper", "name": "Serper (Google)", "description": "Google results via API", "configFields": ["apiKey"] },
    { "id": "searxng", "name": "SearXNG", "description": "Self-hosted metasearch", "configFields": ["baseUrl", "apiKey"] },
    { "id": "tavily", "name": "Tavily", "description": "AI-optimized search", "configFields": ["apiKey"] }
  ]
}
API keys are masked in responses (shown as sk-*****). Update web search configuration.
curl -X PUT http://localhost:3000/api/integrations/web-search \
  -H "Content-Type: application/json" \
  -d '{
    "enabled": true,
    "provider": "brave",
    "brave": { "apiKey": "your-brave-api-key" }
  }'

GitHub Integration Status

GET /api/integrations/github

Get GitHub connection status and OAuth details.
curl http://localhost:3000/api/integrations/github --cookie "profclaw_session=<token>"
Response 200
{
  "connected": true,
  "username": "alice",
  "avatarUrl": "https://github.com/avatars/alice",
  "scopes": ["repo", "read:user"],
  "webhookConfigured": true,
  "aiTaskLabel": "ai-task"
}

Jira Integration Status

GET /api/integrations/jira

curl http://localhost:3000/api/integrations/jira --cookie "profclaw_session=<token>"
Response 200
{
  "connected": true,
  "cloudId": "abc-123",
  "siteName": "your-org.atlassian.net",
  "scopes": ["read:jira-work", "write:jira-work"],
  "tokenExpiry": "2026-04-12T00:00:00Z"
}

Linear Integration Status

GET /api/integrations/linear

curl http://localhost:3000/api/integrations/linear --cookie "profclaw_session=<token>"
Response 200
{
  "connected": true,
  "workspaceName": "Acme Corp",
  "workspaceId": "workspace_01",
  "teams": [
    { "id": "team_01", "name": "Engineering", "key": "ENG" }
  ]
}

Disconnect an Integration

# Disconnect GitHub
DELETE /api/integrations/github

# Disconnect Jira
DELETE /api/integrations/jira

# Disconnect Linear
DELETE /api/integrations/linear
These endpoints revoke OAuth tokens and remove stored credentials.

Webhook Status

Check if webhooks are correctly configured and receiving events:
GET /api/integrations/webhooks/status
Response
{
  "github": {
    "configured": true,
    "lastEvent": "2026-03-12T10:00:00Z",
    "eventCount": 42
  },
  "jira": { "configured": false },
  "linear": { "configured": true, "lastEvent": "2026-03-12T09:00:00Z", "eventCount": 15 }
}