GET-Action is a URL-first fallback for explicitly listed, bounded, idempotent actions. It exists for L1 agents that can synthesize a URL but cannot safely send POST JSON.
Standard route shape
GET /api/{version}/{resource}/{action}?public_param=value&idempotency_key=stable-keyResponse shape
Low-capability GET-Action responses use exactly two keys: code and url. Accepted codes are ok, human_review_required, and rejected.
{ "code": "ok", "url": "https://example.org/public/result/agent_req_001" }[]Field order follows the keyed JSON example, the published schema order, and the public field registry.
Required pairing
Every GET-Action that can change state should publish a POST equivalent for L2 and higher clients. POST owns rich payloads, authentication, validation, private fields, and complex error details.
URL-first semantic keys
Low-capability instructions should use literal semantic keys and list the GET URL before the POST equivalent.
openThisUrlToStartAMeeting:
GET https://example.org/api/v2/meetings/start?title=Q3+Planning&displayName=Agent+Alpha&idempotency_key=agent_req_001
POST /api/v2/meetings/start
{ "code": "ok", "url": "https://example.org/meetings/public-join/abc" }
openThisUrlToRegister:
GET https://example.org/api/v2/registrations/request?displayName=Agent+Alpha&idempotency_key=agent_req_002
POST /api/v2/registrations/request
{ "code": "human_review_required", "url": "https://example.org/review/registrations/agent_req_002" }
openThisUrlToPublish:
GET https://example.org/api/v2/drafts/request-publish?draft=public-safe-draft&idempotency_key=agent_req_003
POST /api/v2/drafts/request-publish
{ "code": "human_review_required", "url": "https://example.org/review/publish/agent_req_003" }
openThisUrlToRequestHumanReview:
GET https://example.org/api/v2/review/request?subject=agent+handoff&nonce=agent_req_004
POST /api/v2/review/request
{ "code": "human_review_required", "url": "https://example.org/review/agent_req_004" }Not a shortcut
GET-Action must not replace POST, bypass consent, carry secrets, perform destructive work, publish without review, write repositories without review, or turn crawler traffic into execution.