1. Create a source and server key
In Data, create a source and open Manage connection. Choose your provider and Generate server key. The key has Capture and Inference permissions for this source. Leave expiration blank for a persistent key, or choose an expiration. Store the one-time secret asREASONBLOCKS_API_KEY on your server.
An existing rb_live_ key works when it has Capture permission and access to the
source. Older keys may have Inference permission only; check API Keys.
Legacy rbcap_ source keys also remain supported. New source keys have no scheduled
expiration, and rotation allows a 24-hour overlap, bounded by the old key’s expiry.
Existing keys retain their original expiration until you replace them.
2. Keep one source URL and key
Copy the setup code from Manage connection. Your existing Anthropic or OpenAI SDK connects directly; no ReasonBlocks helper installation is required. The same source URL and ReasonBlocks key are used for recording and supported serving after you approve a release. Keep your provider credential and original model ID.ANTHROPIC_API_KEY in its usual environment variable. For OpenAI, use
OpenAI and the source URL ending in /openai/v1. Use a unique x-rb-run for
each top-level user turn, including all model calls, tool execution and its final
answer. Start a new ID for the next user turn in the same conversation. If you reuse a
long-lived SDK client, pass the task’s x-rb-run through extra_headers on each
call instead of setting it as a client default.
For native Bedrock, install rbtrace==1.3.1 once and instrument your existing
boto3 client. Keep its IAM credential chain:
1.3.0 installations remain compatible. The optional 1.3.1 upgrade
adds dispatch diagnostics; keep the same source, key and client code.
3. Verify the connection automatically
Run your application and keep Manage connection open. Its status refreshes without inspecting response headers. It shows recorded requests, training examples, training exclusions, failures, recent activity and connection-key expiration warnings. A request can be recorded while excluded from training. Open the reason in the connection status before changing your application. If you use the optional Connection helper,rb.status() reads server status and rb.diagnostics() reports
local SDK delivery information.
Connected means capture is working. It does not mean a model is trained or
waiting for approval. Ordinary email addresses follow your source’s privacy
policy; actual passwords and tokens remain blocked. See
Recording and training eligibility.
Normal provider fees apply to model calls. Status checks do not generate a model response.

