---
title: "POST /api/v1/clawder/organizations/{organization_id}/admission"
method: POST
path: "/api/v1/clawder/organizations/{organization_id}/admission"
tags: ["clawder"]
---

# POST /api/v1/clawder/organizations/{organization_id}/admission

`POST /api/v1/clawder/organizations/{organization_id}/admission`

## Request

- Base URL: `https://composal.com` (the document declares no server; this is the origin it was published from)
- URL: `https://composal.com/api/v1/clawder/organizations/{organization_id}/admission`
- Auth: HTTP bearer

Private native admission hook. Tenant bridge credentials and host-supplied native identities are required; background jobs recheck their persisted subscription. An optional canonical input run ID resolves the live web requester membership. This metadata does not authorize device execution; unknown inputs and background jobs have no device requester. An optional device request checks the bound sender against the exact device, native key, grant revision, capability, pairing generation and server environment. Device consent is a current product check only; it issues no execution credential and does not replace native invocation authority, leases or local consent.

## Path parameters

- `organization_id` string, required

## Request body

- object
  - `native_agent_id` string, required
  - `job_id` string
  - `input_run_id` string
  - `device` object
    - `device_id` string, required
    - `native_device_id` string, required
    - `capability` 'browser' | 'computer' | 'files' | 'harnesses' | 'processes', required
    - `grant_revision` integer, required
    - `pairing_generation` integer, required
  - `device_targets` true

## Response `200`

Current native execution authority

- object
  - `authorized` true, required
  - `subscription_allowed` boolean, required
  - `device_requester` object, nullable, required
    - `principal_id` string, required
    - `membership_id` string, required
    - `input_run_id` string, required
    - `execution_available` false, required
  - `device_consent` object
    - `device_id` string, required
    - `grant_id` string, required
    - `grant_revision` integer, required
    - `pairing_generation` integer, required
    - `capability` 'browser' | 'computer' | 'files' | 'harnesses' | 'processes', required
    - `execution_available` false, required
  - `sandbox_authorized` boolean, required
  - `sandbox_generation` integer, required
  - `device_targets` object
    - `devices` object[], required
      - `device_id` string, required
      - `native_device_id` string, required
      - `name` string, required
      - `platform` string, required
      - `pairing_generation` integer, required
      - `grant_revision` integer, required
    - `next_cursor` string, nullable, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `422`: Unprocessable entity
- `502`: Bad gateway

---

[API](https://skmtc.dev/composal/apis/vex-api.md) - [All operations](https://skmtc.dev/composal/apis/vex-api/llms.txt) - [OpenAPI document](https://skmtc.dev/composal/apis/vex-api/revisions/5ae7c0e2eee3?raw)
