Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.ivory.finance/llms.txt

Use this file to discover all available pages before exploring further.

Authentication

Authorization: Bearer <access_token>

What is an Agent?

An Agent is a named wrapper around a deployed model that defines how it should be invoked. There are four agent types:
TypeDescription
predictSynchronous prediction on demand — call POST /predict and get a result
scoreContinuously re-scores an entity (deal, company, portfolio) on a schedule
alertFires a webhook or Slack notification when prediction exceeds a threshold
batchRuns as an Airflow DAG on a cron schedule, scoring all rows in a table

Create agent

# Predict agent (on-demand inference)
curl -X POST https://api.ivory.finance/v1/foundry/agents \
  -H "Authorization: Bearer $IVORY_JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Revenue Growth Signal",
    "description": "Predict 12-month revenue growth from financial features",
    "registry_id": "b2c3d4e5-...",
    "agent_type": "predict"
  }'

# Alert agent (fires Slack when score > 80)
curl -X POST https://api.ivory.finance/v1/foundry/agents \
  -H "Authorization: Bearer $IVORY_JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "High Growth Alert",
    "description": "Notify when predicted revenue growth exceeds 25%",
    "registry_id": "b2c3d4e5-...",
    "agent_type": "alert",
    "alert_threshold": 25.0,
    "alert_channel": "slack",
    "alert_webhook": "https://hooks.slack.com/services/T.../B.../..."
  }'

Request body

FieldRequiredDefaultDescription
nameYesAgent display name
descriptionNoWhat this agent does
registry_idNoDeployed model to use (from POST /models/{id}/deploy)
agent_typeNopredictpredict, score, alert, or batch
alert_thresholdNoScore threshold for alert type
alert_channelNoslack or email
alert_webhookNoWebhook URL for alert delivery
schedule_cronNoCron expression for batch type
batch_dag_idNoAirflow DAG ID for batch execution
{
  "id": "c3d4e5f6-...",
  "name": "Revenue Growth Signal",
  "agent_type": "predict",
  "status": "active",
  "call_count": 0,
  "created_at": "2026-03-26T10:00:00Z"
}

List agents

curl https://api.ivory.finance/v1/foundry/agents \
  -H "Authorization: Bearer $IVORY_JWT"
{
  "agents": [
    {
      "id": "c3d4e5f6-...",
      "name": "Revenue Growth Signal",
      "description": "12-month revenue growth predictor",
      "agent_type": "predict",
      "alert_threshold": null,
      "alert_channel": null,
      "schedule_cron": null,
      "status": "active",
      "call_count": 1842,
      "created_at": "2026-03-26T10:00:00Z",
      "updated_at": "2026-03-26T18:30:00Z"
    },
    {
      "id": "d4e5f6a7-...",
      "name": "High Growth Alert",
      "agent_type": "alert",
      "alert_threshold": 25.0,
      "alert_channel": "slack",
      "status": "active",
      "call_count": 94,
      "created_at": "2026-03-20T09:00:00Z",
      "updated_at": "2026-03-26T16:00:00Z"
    }
  ]
}
To pause an agent (stop receiving alerts or batch runs), update its status to paused via the Ivory dashboard. Agents with status: "deleted" are excluded from all listings.