Quickstart
From zero to a finished report in four requests.
1. Create an API key#
- Sign in to cockpit.rubikyt.com and open Developers, then API keys.
- Name the key and pick its scopes. For this guide:
interviews:create,interviews:readandinterviews:decide. - Copy the secret. It starts with
rubi_live_and is shown once. Store it in your secret manager.
bash
export RUBI_API_KEY="rubi_live_..."2. Create an interview#
Pass an existing trader_id or describe the trader inline. analyst_guidance is private: it steers the interviewer and the report but is never shown to the trader.
request
curl https://api.rubikyt.com/v1/interviews \
-H "Authorization: Bearer $RUBI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"trader": {
"full_name": "Jane Doe",
"email": "jane@example.com",
"external_id": "cus_18422"
},
"language": "en",
"analyst_guidance": "First payout request. Check who places the trades and whether account acc_99812 is hedged elsewhere.",
"window_hours": 72,
"technical_analysis": { "enabled": true, "symbol": "EURUSD", "date": "2026-09-22" },
"sandbox": true
}'The response contains the invite link. It is only returned now and on reissue, so send it to the trader right away.
201 response
{
"interview": {
"id": "8f0b1c52-3f6e-4d0a-9d1e-2c3b4a5d6e7f",
"trader": { "id": "5a1f...", "name": "Jane Doe", "email": "jane@example.com", "external_id": "cus_18422" },
"status": "created",
"expired": false,
"language": "en",
"risk_score": null,
"recommended_step": null,
"decision": null,
"media": [],
"created_at": "2026-09-23T10:00:00Z",
"expires_at": "2026-09-26T10:00:00Z",
"sort_at": "2026-09-23T10:00:00Z"
},
"invite_url": "https://interview.rubikyt.com/i/3kQ9vX...",
"expires_at": "2026-09-26T10:00:00Z"
}3. Wait for the report#
Subscribe a webhook endpoint to interview.report_ready, or poll GET /v1/interviews/{id} until status is report_ready. The detail contains report, the transcript in answers, integrity events and the activity_summary.
bash
curl https://api.rubikyt.com/v1/interviews/$INTERVIEW_ID \
-H "Authorization: Bearer $RUBI_API_KEY"4. Record the decision#
bash
curl https://api.rubikyt.com/v1/interviews/$INTERVIEW_ID/decision \
-H "Authorization: Bearer $RUBI_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "decision": "approved", "ai_assessment": "correct", "reason": "Consistent strategy, no linked accounts." }'Telling Rubi whether the AI was
correct, partially right or wrong feeds your firm's learning memory. It is optional, and it is the fastest way to improve the next reports.