Skip to main content

API Reference

The Remyx REST API is available at https://engine.remyx.ai/api/v1.0. All endpoints require a Bearer token in the Authorization header.
Create a named API key at Account > API Access in the Remyx app, or at studio.remyx.ai/account. Each route is gated by scopes; see Authentication below.

Experiments

Manage experiments, track outcomes, and log decisions.

List Experiments

Response: Array of experiment objects with all ExperimentOps fields.

Get Experiment

Response: Single experiment object with full detail including source_type, source_ref, hypothesis, target_metric, observed_delta, delta_confidence, decision, tags, project_id, project_name, launch_context, ab_test_config, ab_test_results, and linked resources.

Update Experiment


Implementation

Manage the experiment implementation pipeline — context assembly, implementation runs, and status tracking.

Get Experiment Context

Returns the full experiment context formatted for Claude Code: resource metadata, Docker environment, task description, and implementation plan.

Get Reference Implementation

Returns reference implementation sources: GitHub repo, Docker image, key methods, and implementation plan extracted from the launch context.

List Actionable Experiments

Returns experiments that have a launch_context but no PR yet — ready for implementation.

Run Implementation

Triggers the server-side implementation pipeline. Returns 202 Accepted with a task reference.

Get Implementation Status

Returns the current pipeline status: pipeline_status, pr_url, pr_status, and timing information.

Report Implementation Result


Research Interests

Manage your Research Interests — the context that drives personalized resource recommendations.
Two interests surfaces exist. The token/programmatic API uses /interests (documented here). The session/web app uses /research-interests. When calling with an API key, always use /interests.

List Interests

Response: Array of Research Interest objects with name, context, daily_count, is_active.

Create Interest

Get Interest

Response: The full interest object. Includes an additive experiment_history field, a bullet list summarizing the experiments linked to this interest.

Update Interest

Accepts same fields as Create. Updating context invalidates the recommendation pool and triggers re-ranking.

Delete Interest

Deletes the interest and cascading recommendations.

Toggle Interest

Toggles the is_active status without deleting the interest or its history.

Provision an Interest

Kicks off provisioning of automated discovery PRs (Outrider) for the interest: sets up the GitHub repo, injects an automation (rmxa_) key into repo secrets, and prepares the continuous-experimentation loop. Optional agent in the body (claude — the default — / codex / backboard) picks the coding agent the rendered workflow runs; it’s validated against the interest’s model provider up front, so an impossible pair is a 400 rather than a 200 that renders the wrong agent. Requires the provisioning:write scope. Returns 202 Accepted with a task_id.
Polls a specific provisioning task started by the call above.
Returns the current provisioning state for the interest (independent of any single task).
Mints a scoped CLI token for the provisioned environment. Requires the provisioning:write scope.

Score Candidates

Scores candidate experiments against the interest’s preference model and returns ranked results.

Refit Preference Model

Re-fits the preference model for the experiment history from accumulated feedback. Returns 202 Accepted with a task reference.

Recommendations

Get personalized resource recommendations based on your Research Interests.

List Recommendations

Response: Array of recommended resources with titles, abstracts, relevance scores, and links.

Get Digest

Response: Structured digest grouped by Research Interest.

Refresh Recommendations

Returns 202 Accepted with a task reference for polling.

Poll Refresh Status

Returns the status of an async recommendation refresh task.
Search across research assets with hybrid retrieval.

Search Assets

Response: Array of matching assets with titles, abstracts, categories, Docker availability, and relevance scores.

Get Asset Details

Returns detailed information for a specific asset: full abstract, Docker status, Dockerfile, reference summary.

List Recent Assets

Get Asset Statistics

Returns aggregate statistics: total assets, counts by Docker availability, by category, and citation classification coverage.

Integrations

Manage OAuth connections to external tools (GitHub, Linear, Jira).

List Providers

Returns available integration providers with configuration status.

Get OAuth URL

Returns the OAuth authorization URL to initiate the connection flow.

Exchange OAuth Code

List Connections

Returns all active integration connections for the current user.

Check Connection Status

Disconnect Provider

Deactivates the integration connection for the specified provider.

Get OAuth Token

Returns a valid OAuth token for the specified provider. Auto-refreshes expired tokens before returning. Accepts optional user_id query param for service tokens.

Identity Resolution

Creates an identity link between a Remyx user and an external platform identity.
Lists all identity links for the current user.

Outrider agents

The agent plane: run telemetry, the fleet report, the inbox, and dispatch. Base path /api/v1.0/outrider. These endpoints back the studio’s Agents, Reports, and Inbox views and the MCP fleet tools, so what you read here matches the app exactly. Visibility is scoped to your own agents.

Runs & telemetry

POST /runs is called by the Outrider action itself (authenticated with the repo’s provisioned agent key) to report per-run telemetry: cost identity (backend, model, tokens, cost basis), selection audit (pool sizes, per-candidate rejections, reasoning excerpt), routing and gate outcomes, chain phases, and file-touch lists. Idempotent on run_id. GET /runs lists your runs; params repo, limit (default 20, max 100), and include=selection to add the selection audit trail.
Root-cause analysis of one run from its job log: {repo, run_id} → cause, evidence bullets, suggested next step. Cached per run.

Fleet report, activity, and inbox

  • /agents/report — the fleet report: headline, KPIs, per-agent timelines and terminal states, findings, deliverable pipeline, chronology. since/until (YYYY-MM-DD) and repos (intersected with your own footprint — it can only narrow) scope it.
  • /agents/activity — one agent’s runs, events, directions, and summary; backs Agent detail.
  • /agents/inbox — the derived Inbox; inbox/dismiss archives {id} or {ids: […]} (or undo: true), inbox/digest generates-once-and-persists the TLDR digest for a PR/Issue {href}, and artifact/evidence returns the deterministic gate/fidelity facts for one artifact.
  • /agents/refresh — force a re-fetch of agent state from GitHub ({full: false} for a delta).
  • /agents/chat — one stateless turn of run-grounded chat: {repo, messages[], focus_run_id?}; context is assembled server-side, and the transcript carries no privileged access.

Installations & dispatch

  • /installations — one row per provisioned agent, including paused (revoked) ones.
  • /installations/<id>/revokepause an agent: marks the installation revoked and revokes its agent key, so the next run fails auth immediately.
  • /trigger — the API twin of remyxai outrider trigger: {repo, pin_arxiv?, interest_id?, ref?, agent?, provider?, model?, start_from_ref?, lead_content?, test_integration_policy?, fidelity_policy?}. agent (claude / codex / backboard) is validated against provider before dispatch — an impossible pair is a 400, and the credential the run is armed with follows the pair rather than whatever key the account has connected. Dispatches via the remyx[bot] App token; returns 409 {pool_building: true} while a fresh interest’s candidate pool is still building.
  • /run-status — the latest run for a repo, live from GitHub (no webhook lag), enriched with its outcome kind and artifact URL.
Outcome tracking (merge/close of the artifacts a run opened) is webhook-driven — it flows back through the GitHub webhooks rather than being polled here.

GitHub App & Provisioning

Endpoints for installing the Remyx GitHub App and provisioning repos for automated discovery PRs (Outrider). The per-interest provisioning endpoints live under Research Interests.

Get Install URL

Returns the URL to install the Remyx GitHub App on a user’s account or org.

Get Installation

Returns the GitHub App installation that covers the given repo (if any).

Get Installation Token

Mints a short-lived GitHub App installation token for the target repo. Scope-gated; requires github:write.

Fork a Repo

Forks a repo into your own account (your identity, never the bot’s), optionally seeding branches from the source network — this is what the Quickstart’s set-example track uses to warm-start curated drafts. Idempotent.

Eval Environments

Build and run containerized evaluation environments. Base path /api/v1.0/eval-env.

Builds

POST /builds starts a new environment build. GET /builds/<id> returns build status; /context returns the assembled build context; POST /builds/<id>/report reports the build result back from a worker.

Runs

List or create eval runs, fetch a single run, or cancel an in-flight run.

Templates

CRUD for reusable eval-environment templates. POST /templates/<id>/lock freezes a template so it can’t be edited once it’s in use.

Result Webhooks

Inbound webhooks that deliver eval results back to Remyx: webhooks/results for the generic path and webhooks/modal/results for Modal-hosted runs.

Authentication

All API requests require an opaque API key passed as a Bearer token:
Keys come in two flavors, distinguished by prefix: Each key carries a set of scopes that gate which routes it can call (a route returning 403 means the key lacks the required scope). See API Scopes for the full catalog, presets, and which surface needs what. Create and manage named keys at Account > API keys in the Remyx app, or programmatically:
Revoking an agent (rmxa_) key pauses the agent that uses it. See Account & keys.
The legacy single-token endpoints under /account/tokens/* are removed and now return 410 Gone. Migrate to named keys via /account/api-keys.

Response Codes