Connect your AI agent with OAuth. For unattended automation, use a machine client or service account and keep its credential in protected environment variables or a secret store. Discover the registry before invocation and handle structured success or failure responses.

Argus itself does not generate investment judgments or execute orders. Client AI agents may use lawfully accessible facts and labeled source material for independent reasoning and output.

REST and API

  1. Use the authority OpenAPI document for current REST request schemas.
  2. Send an OAuth Bearer token; machine clients and service accounts may use X-Argus-API-Key.
  3. Validate the structured HTTP response and status code against the OpenAPI contract.
  4. Treat 400/422 as request problems, 401 as authentication, 403 as governance denial, and 500/503 as service failures.
  5. Retain audit_id and use bounded retry only when the failure is retryable.
# First run: argus auth login
import json
from urllib.request import Request, HTTPRedirectHandler, build_opener
from argus.cli.oauth import CliOAuthProfile

profile = CliOAuthProfile()
token = profile.client().access_token()
if token is None:
    raise RuntimeError("Run argus auth login first")

class NoRedirect(HTTPRedirectHandler):
    def redirect_request(self, *args, **kwargs):
        return None

request = Request(
    profile.api_base_url + "/v1/entity-resolve",
    data=json.dumps(json.loads(r'''{"identifier_type":"lei","identifier_value":"HWUPKR0MPOU8FGXBT394","purpose":"factual_lookup","requires_redistribution":false}''')).encode(),
    headers={"Authorization": f"Bearer {token}",
             "Content-Type": "application/json", "User-Agent": "Argus REST client"},
    method="POST",
)
with build_opener(NoRedirect()).open(request, timeout=30) as response:
    envelope = json.load(response)
    print(json.dumps(envelope, indent=2))

Read the REST inventory and error contract.