Forithmus · Agentic Access

Forithmus Agentic Access

x-agentic-access generated

Forithmus exposes 213 API operations that an AI agent could call, of which 129 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.

By consequence: 84 read, 115 write, 11 physical, and 3 safety-critical.

3 operations are classed safety-critical and should require human-in-the-loop approval at runtime.

Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.

Medical ImagingRadiologyMachine LearningFoundation ModelsHealthcare AIChallenge PlatformBenchmarksResearchDeveloper ToolsAPI
Operations: 213 Acting: 129 Human-in-the-loop: 3 Method: generated

By consequence

read 84 write 115 physical 11 safety-critical 3

Highest-consequence actions

The physical and safety-critical operations an agent could invoke — the ones that most warrant scoped tokens, tight TTLs, and escalation. Full per-operation contracts are in the source below.

MethodPathConsequenceHuman-in-loop
POST /admin/credits/revoke/{transaction_id} safety-critical required
DELETE /auth/2fa safety-critical required
POST /auth/reset-password safety-critical required
POST /admin/credits/pools/{pool_id}/refund physical conditional
POST /admin/credits/transfer physical conditional
POST /auth/resend-verification physical conditional
PUT /challenges/{slug}/pages/reorder physical conditional
POST /messages/{conversation_id} physical conditional
POST /payments/activate-challenge physical conditional
POST /payments/checkout physical conditional
POST /payments/fund-pool physical conditional
POST /payments/topup physical conditional
POST /payments/webhook physical conditional
POST /users/me/edu-email/send physical conditional

Source

Agentic Access

Raw ↑
generated: '2026-07-19'
method: generated
source: openapi/forithmus-openapi-original.json
description: Recommended x-agentic-access execution contracts, classified heuristically from
  the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
  audience per deployment. See research/curity/agentic-governance/.
summary:
  operations: 213
  by_action_class:
    acting: 129
    connected: 84
  by_consequence:
    write: 115
    read: 84
    physical: 11
    safety-critical: 3
  human_in_the_loop_required: 3
operations:
- path: /auth/signup
  method: post
  operationId: signup_auth_signup_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /auth/login
  method: post
  operationId: login_auth_login_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /auth/google/state
  method: get
  operationId: google_auth_state_auth_google_state_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /auth/google
  method: post
  operationId: google_auth_auth_google_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /auth/refresh
  method: post
  operationId: refresh_auth_refresh_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /auth/logout
  method: post
  operationId: logout_auth_logout_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /auth/cli-session
  method: post
  operationId: create_cli_session_auth_cli_session_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /auth/cli-session/{session_id}/complete
  method: post
  operationId: complete_cli_session_auth_cli_session__session_id__complete_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /auth/cli-session/{session_id}
  method: get
  operationId: poll_cli_session_auth_cli_session__session_id__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /auth/verify-email
  method: post
  operationId: verify_email_auth_verify_email_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /auth/resend-verification
  method: post
  operationId: resend_verification_auth_resend_verification_post
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /auth/forgot-password
  method: post
  operationId: forgot_password_auth_forgot_password_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /auth/reset-password
  method: post
  operationId: reset_password_auth_reset_password_post
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /auth/2fa/setup
  method: post
  operationId: setup_2fa_auth_2fa_setup_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /auth/2fa/confirm
  method: post
  operationId: confirm_2fa_auth_2fa_confirm_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /auth/2fa
  method: delete
  operationId: disable_2fa_auth_2fa_delete
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /auth/2fa/recovery-codes/regenerate
  method: post
  operationId: regenerate_recovery_codes_auth_2fa_recovery_codes_regenerate_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /auth/2fa/verify
  method: post
  operationId: verify_2fa_auth_2fa_verify_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /collections
  method: get
  operationId: list_collections_collections_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /collections
  method: post
  operationId: create_collection_collections_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /collections/mine
  method: get
  operationId: list_my_collections_collections_mine_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /collections/{slug}
  method: get
  operationId: get_collection_collections__slug__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /collections/{slug}
  method: put
  operationId: update_collection_collections__slug__put
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /collections/{slug}
  method: delete
  operationId: delete_collection_collections__slug__delete
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /collections/{slug}/stats
  method: get
  operationId: get_collection_stats_collections__slug__stats_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /collections/{slug}/challenges
  method: get
  operationId: list_collection_challenges_collections__slug__challenges_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /collections/{slug}/challenges/{challenge_slug}
  method: post
  operationId: add_challenge_to_collection_collections__slug__challenges__challenge_slug__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /collections/{slug}/members/join
  method: post
  operationId: join_collection_collections__slug__members_join_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /collections/{slug}/members/leave
  method: post
  operationId: leave_collection_collections__slug__members_leave_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /collections/{slug}/members
  method: get
  operationId: list_collection_members_collections__slug__members_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /collections/{slug}/members/invite
  method: post
  operationId: invite_collection_member_collections__slug__members_invite_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /collections/{slug}/members/accept-invite
  method: post
  operationId: accept_collection_invite_collections__slug__members_accept_invite_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /collections/{slug}/members/decline-invite
  method: post
  operationId: decline_collection_invite_collections__slug__members_decline_invite_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /collections/{slug}/members/{member_user_id}
  method: patch
  operationId: update_collection_member_collections__slug__members__member_user_id__patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /collections/{slug}/members/{member_user_id}
  method: delete
  operationId: remove_collection_member_collections__slug__members__member_user_id__delete
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /collections/{slug}/pages
  method: get
  operationId: list_collection_pages_collections__slug__pages_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /collections/{slug}/pages
  method: post
  operationId: create_collection_page_collections__slug__pages_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /collections/{slug}/pages/{page_slug}
  method: patch
  operationId: update_collection_page_collections__slug__pages__page_slug__patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /collections/{slug}/pages/{page_slug}
  method: delete
  operationId: delete_collection_page_collections__slug__pages__page_slug__delete
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/meta/categories
  method: get
  operationId: list_categories_challenges_meta_categories_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges
  method: get
  operationId: list_challenges_challenges_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges
  method: post
  operationId: create_challenge_challenges_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/registry-usage
  method: get
  operationId: get_registry_usage_endpoint_challenges__slug__registry_usage_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}/registry-purge
  method: post
  operationId: purge_registry_challenges__slug__registry_purge_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/stats
  method: get
  operationId: get_challenge_stats_challenges__slug__stats_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/by-id/{challenge_id}
  method: get
  operationId: get_challenge_by_id_challenges_by_id__challenge_id__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}
  method: get
  operationId: get_challenge_challenges__slug__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}
  method: put
  operationId: update_challenge_challenges__slug__put
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}
  method: delete
  operationId: delete_challenge_challenges__slug__delete
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/members
  method: get
  operationId: list_members_challenges__slug__members_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}/members/me
  method: get
  operationId: get_my_membership_challenges__slug__members_me_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}/members/invite
  method: post
  operationId: invite_member_challenges__slug__members_invite_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/members/accept-invite
  method: post
  operationId: accept_invite_challenges__slug__members_accept_invite_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/members/decline-invite
  method: post
  operationId: decline_invite_challenges__slug__members_decline_invite_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/members/join
  method: post
  operationId: join_challenge_challenges__slug__members_join_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/members/{member_user_id}
  method: patch
  operationId: update_member_challenges__slug__members__member_user_id__patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/members/{member_user_id}
  method: delete
  operationId: remove_member_challenges__slug__members__member_user_id__delete
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/submissions/upload-file
  method: post
  operationId: upload_file_submission_challenges__slug__submissions_upload_file_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/submissions/docker-upload-url
  method: post
  operationId: docker_upload_url_challenges__slug__submissions_docker_upload_url_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/submissions/docker-upload-complete
  method: post
  operationId: docker_upload_complete_challenges__slug__submissions_docker_upload_complete_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/submissions/docker-upload-abort
  method: post
  operationId: docker_upload_abort_challenges__slug__submissions_docker_upload_abort_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/submissions/weights-upload-url
  method: post
  operationId: weights_upload_url_challenges__slug__submissions_weights_upload_url_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/submissions/weights-upload-complete
  method: post
  operationId: weights_upload_complete_challenges__slug__submissions_weights_upload_complete_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/submissions/pre-upload-docker
  method: post
  operationId: pre_upload_docker_challenges__slug__submissions_pre_upload_docker_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/submissions/upload-status/{upload_id}
  method: get
  operationId: get_upload_status_challenges__slug__submissions_upload_status__upload_id__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}/submissions/upload-docker
  method: post
  operationId: upload_docker_submission_challenges__slug__submissions_upload_docker_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/submissions/{submission_id}/continue
  method: post
  operationId: continue_timed_out_submission_challenges__slug__submissions__submission_id__continue_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/submissions/{submission_id}/cancel
  method: post
  operationId: cancel_submission_challenges__slug__submissions__submission_id__cancel_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/submissions/{submission_id}/docker-image
  method: get
  operationId: download_docker_image_challenges__slug__submissions__submission_id__docker_image_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}/submissions/estimate
  method: get
  operationId: estimate_cost_challenges__slug__submissions_estimate_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}/submissions
  method: get
  operationId: list_submissions_challenges__slug__submissions_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}/submissions/{submission_id}
  method: get
  operationId: get_submission_challenges__slug__submissions__submission_id__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}/submissions/{submission_id}/logs
  method: get
  operationId: get_submission_logs_challenges__slug__submissions__submission_id__logs_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}/submissions/{submission_id}/outputs
  method: get
  operationId: get_submission_outputs_challenges__slug__submissions__submission_id__outputs_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}/submissions/{submission_id}/outputs/download
  method: get
  operationId: download_output_file_challenges__slug__submissions__submission_id__outputs_download_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}/groups
  method: post
  operationId: create_group_challenges__slug__groups_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/groups
  method: get
  operationId: list_groups_challenges__slug__groups_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}/groups/me
  method: get
  operationId: get_my_group_challenges__slug__groups_me_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}/groups/{group_id}
  method: get
  operationId: get_group_detail_challenges__slug__groups__group_id__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}/groups/{group_id}
  method: delete
  operationId: dissolve_group_challenges__slug__groups__group_id__delete
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/groups/{group_id}
  method: patch
  operationId: update_group_challenges__slug__groups__group_id__patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/groups/{group_id}/invite
  method: post
  operationId: invite_member_challenges__slug__groups__group_id__invite_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/groups/{group_id}/accept
  method: post
  operationId: accept_invitation_challenges__slug__groups__group_id__accept_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/groups/{group_id}/leave
  method: post
  operationId: leave_group_challenges__slug__groups__group_id__leave_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/groups/{group_id}/members/{user_id}
  method: delete
  operationId: remove_member_challenges__slug__groups__group_id__members__user_id__delete
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/groups/{group_id}/request
  method: post
  operationId: request_join_challenges__slug__groups__group_id__request_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/groups/{group_id}/approve/{user_id}
  method: post
  operationId: approve_request_challenges__slug__groups__group_id__approve__user_id__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/groups/{group_id}/reject/{user_id}
  method: post
  operationId: reject_request_challenges__slug__groups__group_id__reject__user_id__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/leaderboard
  method: get
  operationId: get_leaderboard_challenges__slug__leaderboard_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}/leaderboard/groups
  method: get
  operationId: get_group_leaderboard_challenges__slug__leaderboard_groups_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}/pages
  method: get
  operationId: list_pages_challenges__slug__pages_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /challenges/{slug}/pages
  method: post
  operationId: create_page_challenges__slug__pages_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /challenges/{slug}/pag

# --- truncated at 32 KB (70 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/forithmus/refs/heads/main/agentic-access/forithmus-agentic-access.yml