anthid-com Organization Controls API
Organization-level control configuration
Organization-level control configuration
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/anthid-com:anthid-com-organization-controls-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Organization Controls API
description: Organization-level control configuration
license:
name: ''
version: 0.1.0
servers:
- url: https://api.anthid.com
description: Production
tags:
- name: Organization Controls
description: Organization-level control configuration
paths:
/v1/controls/organizations:
get:
tags:
- Organization Controls
summary: Get current organization control
description: Returns the caller's organization manual control. Requires Controls Premium. Users need an organization role; API keys need both `paper:control:read` and `live:control:read`.
operationId: getPrincipalOrganizationControl
responses:
'200':
description: Current organization control found
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationControl'
example:
created_at: '2026-08-05T16:20:00Z'
manual_reason: Trading paused during compliance review
manually_disabled: true
organization_id: 550e8400-e29b-41d4-a716-446655440222
updated_at: '2026-08-05T16:25:00Z'
version: 3
'401':
description: Missing or invalid authentication credentials, or missing organization context
content:
application/json:
schema:
type: string
'403':
description: Caller lacks Controls Premium or organization control read access
content:
application/json:
schema:
type: string
'404':
description: Organization control was not found
content:
application/json:
schema:
type: string
'429':
description: Caller exceeded the request rate limit
'500':
description: Server error
content:
application/json:
schema:
type: string
security:
- bearerAuth: []
- apiKeyAuth: []
put:
tags:
- Organization Controls
summary: Upsert organization control
description: Creates or replaces the caller's organization manual control. Omitted optional fields are cleared. Requires Controls Premium. Users need an admin role; API keys need both `paper:control:edit` and `live:control:edit`.
operationId: upsertOrganizationControl
requestBody:
description: Manual disable flag and optional operator-facing reason
content:
application/json:
schema:
$ref: '#/components/schemas/UpsertControlRequest'
example:
manual_reason: Trading paused during compliance review
manually_disabled: true
required: true
responses:
'200':
description: Organization control upserted
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationControl'
example:
created_at: '2026-08-12T16:20:00Z'
manual_reason: Trading paused during compliance review
manually_disabled: true
organization_id: 550e8400-e29b-41d4-a716-446655440222
updated_at: '2026-08-12T16:20:00Z'
version: 1
'400':
description: Request body is invalid
content:
application/json:
schema:
type: string
text/plain:
schema:
type: string
'401':
description: Missing or invalid authentication credentials, or missing organization context
content:
application/json:
schema:
type: string
'403':
description: Caller lacks Controls Premium or organization control edit access
content:
application/json:
schema:
type: string
'413':
description: Request body exceeds the size limit
content:
text/plain:
schema:
type: string
'415':
description: Content-Type must be application/json
content:
text/plain:
schema:
type: string
'422':
description: JSON does not match the request schema
content:
text/plain:
schema:
type: string
'429':
description: Caller exceeded the request rate limit
'500':
description: Server error
content:
application/json:
schema:
type: string
security:
- bearerAuth: []
- apiKeyAuth: []
delete:
tags:
- Organization Controls
summary: Delete organization control
description: Deletes the caller's organization manual control. Requires Controls Premium. Users need an admin role; API keys need both `paper:control:edit` and `live:control:edit`.
operationId: deleteOrganizationControl
responses:
'200':
description: Organization control deleted, or was already deleted. `deleted_at` is when it was first removed and does not move on a repeat call.
content:
application/json:
schema:
$ref: '#/components/schemas/DeletedResponse'
example:
deleted: true
deleted_at: '2026-08-12T16:20:00Z'
resource: organization_control
'401':
description: Missing or invalid authentication credentials, or missing organization context
content:
application/json:
schema:
type: string
'403':
description: Caller lacks Controls Premium or organization control edit access
content:
application/json:
schema:
type: string
'404':
description: No control of this kind has ever existed here
content:
application/json:
schema:
type: string
'429':
description: Caller exceeded the request rate limit
'500':
description: Server error
content:
application/json:
schema:
type: string
security:
- bearerAuth: []
- apiKeyAuth: []
patch:
tags:
- Organization Controls
summary: Patch organization control
description: Creates or patches the caller's organization manual control. Omitted and null fields are unchanged; `clear` removes named fields. Requires Controls Premium. Users need an admin role; API keys need both `paper:control:edit` and `live:control:edit`.
operationId: patchOrganizationControl
requestBody:
description: Fields to change, and fields to remove
content:
application/json:
schema:
$ref: '#/components/schemas/PatchControlRequest'
example:
clear:
- manual_reason
manually_disabled: true
required: true
responses:
'200':
description: Organization control patched
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationControl'
example:
created_at: '2026-08-12T16:20:00Z'
manual_reason: null
manually_disabled: true
organization_id: 550e8400-e29b-41d4-a716-446655440222
updated_at: '2026-08-13T09:15:00Z'
version: 2
'400':
description: No fields changed, or a field is both set and cleared; malformed JSON or path parameters also fail
content:
application/json:
schema:
type: string
text/plain:
schema:
type: string
'401':
description: Missing or invalid authentication credentials, or missing organization context
content:
application/json:
schema:
type: string
'403':
description: Caller lacks Controls Premium or organization control edit access
content:
application/json:
schema:
type: string
'413':
description: Request body exceeds the size limit
content:
text/plain:
schema:
type: string
'415':
description: Content-Type must be application/json
content:
text/plain:
schema:
type: string
'422':
description: JSON does not match the request schema
content:
text/plain:
schema:
type: string
'429':
description: Caller exceeded the request rate limit
'500':
description: Server error
content:
application/json:
schema:
type: string
security:
- bearerAuth: []
- apiKeyAuth: []
/v1/controls/organizations/{org_id}:
get:
tags:
- Organization Controls
summary: Get organization control
description: Returns the manual control for an organization. This route requires service-account credentials with `control:read`.
operationId: getOrganizationControl
parameters:
- name: org_id
in: path
description: Organization ID
required: true
schema:
type: string
format: uuid
example: 550e8400-e29b-41d4-a716-446655440222
responses:
'200':
description: Organization control found
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationControl'
example:
created_at: '2026-08-12T16:20:00Z'
manual_reason: Trading paused during compliance review
manually_disabled: true
organization_id: 550e8400-e29b-41d4-a716-446655440222
updated_at: '2026-08-12T16:20:00Z'
version: 1
'400':
description: Organization ID is not a UUID
content:
text/plain:
schema:
type: string
'401':
description: Missing or invalid service credentials
'403':
description: Caller is not a service account or lacks the `control:read` scope
content:
application/json:
schema:
type: string
'404':
description: Organization control was not found
content:
application/json:
schema:
type: string
'429':
description: Caller exceeded the request rate limit
'500':
description: Unexpected server error while reading the control
content:
application/json:
schema:
type: string
security:
- clientCredentials: []
components:
schemas:
ManualControlField:
type: string
description: 'Fields of a manual control a PATCH may remove.
An enum rather than free text so a misspelled name is rejected instead of
silently doing nothing. A caller that believes it re-enabled an account and
did not is the failure this exists to prevent.'
enum:
- manually_disabled
- manual_reason
OrganizationControl:
type: object
required:
- organization_id
- version
- manually_disabled
- created_at
- updated_at
properties:
created_at:
type: string
format: date-time
manual_reason:
type:
- string
- 'null'
manually_disabled:
type: boolean
organization_id:
type: string
format: uuid
updated_at:
type: string
format: date-time
version:
type: integer
format: int64
UpsertControlRequest:
type: object
required:
- manually_disabled
properties:
manual_reason:
type:
- string
- 'null'
manually_disabled:
type: boolean
DeletedResourceKind:
type: string
description: 'The resource a delete acted on.
Named rather than free text so a caller can branch on it, and so the same
vocabulary is available when these deletes start emitting events.'
enum:
- trading_account
- test_trading_account
- broker_credential
- oauth_client
- organization
- user
- organization_control
- account_control
- account_risk_control
- account_time_control
- symbol_control
- symbol_risk_control
- symbol_time_control
PatchControlRequest:
type: object
properties:
clear:
type: array
items:
$ref: '#/components/schemas/ManualControlField'
description: 'Fields to remove. Clearing `manually_disabled` restores its default of
false, since the column cannot be null.'
manual_reason:
type:
- string
- 'null'
manually_disabled:
type:
- boolean
- 'null'
DeletedResponse:
type: object
description: 'The body every successful delete returns.
Deletes are idempotent, so a caller that retries one it is unsure landed
gets the same 200 as the caller that deleted it. That leaves the caller
unable to tell the two apart from the status alone, which is what
`deleted_at` is for: it is the moment the resource was *first* deleted and
does not move on a repeat call.'
required:
- deleted
- resource
- deleted_at
properties:
deleted:
type: boolean
description: 'Always true. A caller checking one field to confirm the outcome does not
have to special-case which endpoint it called.'
deleted_at:
type: string
format: date-time
description: When the resource was first deleted, not when this call was made.
id:
type:
- string
- 'null'
description: 'Absent for resources keyed by a natural composite key rather than a
single identifier, which today is every control in the controls service.
The path already identifies those, so nothing is lost by omitting it.'
resource:
$ref: '#/components/schemas/DeletedResourceKind'
securitySchemes:
apiKeyAuth:
type: apiKey
in: header
name: x-api-key
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
clientCredentials:
type: http
scheme: bearer
bearerFormat: JWT
description: Machine bearer token minted via the client_credentials grant.
x-tagGroups:
- name: Organization
tags:
- Organization Controls
- name: Account
tags:
- Account Manual Controls
- Account Risk Controls
- Account Time Controls
- name: Symbols
tags:
- Symbol Manual Controls
- Symbol Risk Controls
- Symbol Time Controls
- Effective Controls
- name: Evaluation
tags:
- Control Evaluation