Skip to main content

Agents API Reference

Complete API documentation for Phoenix Agents.

Base URL

https://phoenix.hginsights.com/api/agents/v1

Authentication

All endpoints require authentication via the Authorization header. Phoenix supports two methods:

Authorization: Bearer phx_your_api_key_here

To get your API key:

  1. Log into Phoenix at https://phoenix.hginsights.com
  2. Navigate to MCP in the sidebar
  3. Copy your API key from the MCP page

OAuth 2.1 Bearer Token

OAuth access tokens obtained through the OAuth 2.1 flow are also accepted:

Authorization: Bearer eyJhbGciOi...

See the Authentication guide for details on both methods.

Unauthorized Response (401)

{
"detail": "Missing Authorization header"
}

Endpoints

List Available Agents

Retrieve all agents available for your organization.

GET /v1/agents
Authorization: Bearer YOUR_API_KEY

Response:

[
{
"id": "account-research",
"name": "Account Research Brief",
"description": "Generate comprehensive account research briefs for target companies",
"current_version": 1
}
]

Get Agent Details

Retrieve configuration and capabilities for a specific agent.

GET /v1/agents/{agent_id}
Authorization: Bearer YOUR_API_KEY

Path Parameters:

ParameterTypeDescription
agent_idstringAgent identifier (e.g., account-research)

Response:

{
"id": "account-research",
"name": "Account Research Brief",
"description": "Generate comprehensive account research briefs for sales enablement",
"params_override": {},
"tool_selection": {
"company_firmographic": true,
"company_technographic": true,
"company_spend": true,
"company_cloud_spend": true,
"company_fai": true,
"company_contracts": true,
"contact_search": true,
"contact_enrich": true,
"sec_filing_section": true,
"sec_full_text_search": true,
"web_search": true
},
"model_override": null,
"current_version": 1
}

Start Agent Run

Initiate a new agent run. Returns immediately with a run ID for polling.

POST /v1/agents/{agent_id}/runs
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Path Parameters:

ParameterTypeDescription
agent_idstringAgent identifier

Request Body:

{
"input": {
"domain": "salesforce.com"
},
"params": {
"depth": "standard",
"output_formats": ["html"]
},
"tool_selection": {
"company_firmographic": true,
"company_technographic": true,
"company_spend": true,
"company_cloud_spend": true,
"company_fai": true,
"company_contracts": false,
"contact_search": true,
"contact_enrich": true,
"sec_filing_section": true,
"sec_full_text_search": false,
"web_search": true
}
}

Request Fields:

FieldTypeRequiredDescription
inputobjectYesInput data for the agent
input.domainstringOne of domain/hgidCompany website domain
input.hgidstringOne of domain/hgidHG Insights company ID
paramsobjectNoExecution parameters
params.depthstringNoResearch depth: quick, standard, deep
params.output_formatsarrayNoOutput formats: html, markdown, pdf
tool_selectionobjectNoEnable/disable specific tools

Response:

{
"run_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "queued"
}

Error Response (400):

{
"detail": "Either 'domain' or 'hgid' must be provided"
}

Get Run Status

Check the status and progress of an agent run.

GET /v1/runs/{run_id}
Authorization: Bearer YOUR_API_KEY

Path Parameters:

ParameterTypeDescription
run_idstringRun identifier from start response

Response (Queued):

{
"run_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "queued",
"created_at": "2024-01-26T09:59:00Z"
}

Response (Running):

{
"run_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "running",
"progress": 0.45,
"agent_version": 1,
"started_at": "2024-01-26T10:00:00Z",
"created_at": "2024-01-26T09:59:00Z"
}

Response (Succeeded):

{
"run_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "succeeded",
"progress": 1.0,
"agent_version": 1,
"cost_summary": {
"tool_credits": 5.0,
"llm_credits": 2.5,
"total_credits": 7.5
},
"started_at": "2024-01-26T10:00:00Z",
"finished_at": "2024-01-26T10:03:45Z",
"created_at": "2024-01-26T09:59:00Z",
"artifact_url": "/v1/runs/550e8400-e29b-41d4-a716-446655440000/artifacts"
}

Response (Failed):

{
"run_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "failed",
"progress": 0.3,
"agent_version": 1,
"error": "Tool execution failed: company_firmographic returned error",
"failed_tools": ["company_firmographic"],
"started_at": "2024-01-26T10:00:00Z",
"finished_at": "2024-01-26T10:01:15Z",
"created_at": "2024-01-26T09:59:00Z"
}

Status Values:

StatusDescription
queuedRun accepted, waiting to start
runningAgent is actively executing
succeededCompleted successfully
partially_failedCompleted with some tool failures
failedExecution failed

Get Run Artifacts

Retrieve generated artifacts (briefs, reports) from a completed run.

GET /v1/runs/{run_id}/artifacts
Authorization: Bearer YOUR_API_KEY

Path Parameters:

ParameterTypeDescription
run_idstringRun identifier

Response:

{
"run_id": "550e8400-e29b-41d4-a716-446655440000",
"artifacts": [
{
"id": "brief",
"artifact_type": "html",
"url": "/v1/runs/550e8400-e29b-41d4-a716-446655440000/artifacts/brief.html",
"created_at": "2024-01-26T10:03:45Z",
"expires_at": null
}
]
}

Artifact Fields:

FieldTypeDescription
idstringArtifact identifier
artifact_typestringType: html, markdown, pdf, json
urlstringURL to download the artifact
created_atstringISO 8601 timestamp
expires_atstringExpiration time (for pre-signed URLs)

Get Run Trace

Retrieve detailed execution trace for debugging and auditing.

GET /v1/runs/{run_id}/trace
Authorization: Bearer YOUR_API_KEY

Path Parameters:

ParameterTypeDescription
run_idstringRun identifier

Response:

{
"run_id": "550e8400-e29b-41d4-a716-446655440000",
"steps": [
{
"step_number": 1,
"step_type": "tool_call",
"description": "company_firmographic",
"started_at": "2024-01-26T10:00:05Z",
"finished_at": "2024-01-26T10:00:06Z",
"tool_calls": [],
"output": null,
"error": null
}
],
"model_usage": {
"provider": "openrouter",
"model": "anthropic/claude-3.5-sonnet",
"prompt_tokens": 10500,
"completion_tokens": 4500,
"total_tokens": 15000,
"cost_usd": 0.045
},
"errors": [],
"total_duration_ms": 185000,
"created_at": "2024-01-26T10:00:00Z"
}

Debug Endpoint (Development Only)

Get detailed debug information including raw tool inputs/outputs.

GET /v1/runs/{run_id}/debug
Authorization: Bearer YOUR_API_KEY
warning

This endpoint returns internal execution details. Use for debugging only.

Response:

{
"run_id": "550e8400-e29b-41d4-a716-446655440000",
"organization_slug": "your-org",
"agent_id": "account-research",
"status": "succeeded",
"created_at": "2024-01-26T09:59:00Z",
"started_at": "2024-01-26T10:00:00Z",
"finished_at": "2024-01-26T10:03:45Z",
"artifact_url": "/v1/runs/550e8400-e29b-41d4-a716-446655440000/artifacts/brief.html"
}

Get Branding

Retrieve branding configuration for your organization.

GET /v1/settings/branding
Authorization: Bearer YOUR_API_KEY

Response:

{
"organization_slug": "your-org",
"branding": {
"logo_url": null,
"primary_color": null,
"secondary_color": null
},
"updated_at": "2024-01-26T10:00:00Z"
}

Update Branding

Update branding configuration for your organization.

PUT /v1/settings/branding
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Request Body:

{
"logo_url": "https://example.com/logo.png",
"primary_color": "#E2231A",
"secondary_color": "#1A73E8"
}

Response:

{
"organization_slug": "your-org",
"branding": {
"logo_url": "https://example.com/logo.png",
"primary_color": "#E2231A",
"secondary_color": "#1A73E8"
},
"updated_at": "2024-01-26T10:05:00Z"
}

Error Responses

All endpoints may return the following error formats:

Unauthorized (401)

{
"detail": "Invalid API key"
}

Not Found (404)

{
"detail": "Run 550e8400-e29b-41d4-a716-446655440000 not found"
}

Validation Error (400)

{
"detail": "Either 'domain' or 'hgid' must be provided"
}

Internal Error (500)

{
"detail": "An unexpected error occurred"
}

Rate Limits

ResourceLimitWindow
API requests100per minute
Concurrent runs10per organization
Artifact downloads50per minute

Rate limit headers are included in all responses:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1706264400

Webhooks (Coming Soon)

Configure webhooks to receive notifications when runs complete instead of polling.

{
"webhook_url": "https://your-app.com/webhooks/phoenix",
"events": ["run.succeeded", "run.failed"],
"secret": "whsec_..."
}

Contact your account manager to enable webhooks.