---
title: "Approve All Org Action Proposals"
method: POST
path: "/api/v1/org-actions/proposals/approve-all"
tags: ["authed"]
---

# Approve All Org Action Proposals

`POST /api/v1/org-actions/proposals/approve-all`

## Request

- Base URL: `https://api.teaflask.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.teaflask.com/api/v1/org-actions/proposals/approve-all`
- Auth: none declared

Block-approve: each item walks the single-approve door's checks
in its order — open check, per-item consent fingerprint, the member
edits' choices, the full write gate, the granted-agents guard — and a
failure becomes that item's result instead of failing the batch. The
client sends exactly the rows it rendered: a proposal that landed
after page load is never swept in.

## Query parameters

- `confirm` boolean

## Request body

- ApproveAllOrgActionProposalsRequest
  - `approvals` ProposalApprovalItem[], required
    - `proposal_id` string, uuid, required
    - `reviewed_fingerprint` string, required
    - `keep` KeepChoice[]
      - `facet` string[], required: The edited part, exactly as the suggestion's member_edits names it.
      - `choice` 'edited' | 'update', required

## Response `200`

Successful Response

- ApproveAllOrgActionProposalsResponse: Always 200 with itemized results: one refreshed-under-you 409 or slug conflict must never block the boring rest of the batch.
  - `results` ProposalApprovalResult[], required
    - `proposal_id` string, uuid, required
    - `outcome` 'approved' | 'failed', required
    - `error_code` 'VALIDATION_ERROR' | 'UNAUTHORIZED' | 'ORGANIZATION_REQUIRED' | 'NOT_AN_ORGANIZATION_MEMBER' | 'PERMISSION_DENIED' | 'NOT_FOUND' | 'METHOD_NOT_ALLOWED' | 'ORCHESTRATION_UNAVAILABLE' | 'GITHUB_NOT_CONFIGURED' | 'GITHUB_INSTALL_STATE_INVALID' | 'GITHUB_AUTHORIZATION_FAILED' | 'GITHUB_INSTALLATION_NOT_ACCESSIBLE' | 'GITHUB_INSTALLATION_NOT_FOUND' | 'GITHUB_INSTALLATION_ALREADY_CONNECTED' | 'GITHUB_PRODUCTION_REF_INVALID' | 'GITHUB_PRODUCTION_REF_NOT_FOUND' | 'DOC_BODY_INVALID' | 'DOC_SLUG_TAKEN' | 'DOC_SLUG_RESERVED' | 'DOC_REVISION_NOT_PUBLISHABLE' | 'DOC_REVISION_NOT_DISCARDABLE' | 'DOC_PROPOSAL_STALE' | 'REVISION_STALE' | 'DOC_LIMIT_REACHED' | 'HELP_SITE_CONFIG_INVALID' | 'HELP_SITE_NEVER_PUBLISHED' | 'HELP_SITE_DOMAIN_INVALID' | 'HELP_SITE_DOMAIN_TAKEN' | 'HELP_SITE_DOMAIN_PROVISIONING' | 'HELP_SITE_NOT_PUBLISHED' | 'FOLDER_MOVE_CREATES_CYCLE' | 'FOLDER_NOT_EMPTY' | 'TAG_SLUG_TAKEN' | 'DOC_REQUEST_NOT_REVIEWABLE' | 'DOC_DRAFT_INVALID' | 'SOURCE_NOT_CONNECTED' | 'ASSISTANT_THREAD_BUSY' | 'ASSISTANT_THREAD_QUEUE_FULL' | 'ASSISTANT_TURN_NOT_AWAITING_APPROVAL' | 'ASSISTANT_TURN_NOT_AWAITING_TOOL_RESULTS' | 'ATTACHMENTS_NOT_CONFIGURED' | 'ATTACHMENT_TOO_LARGE' | 'ATTACHMENT_UPLOAD_INCOMPLETE' | 'ATTACHMENTS_NOT_SENDABLE' | 'REPOSITORY_NOT_CONNECTED' | 'REPOSITORY_ATTACHMENT_IN_PROGRESS' | 'REPOSITORY_ALREADY_ATTACHED' | 'REPOSITORY_ATTACH_FAILED' | 'VERIFICATION_SUITE_NOT_RUNNABLE' | 'VERIFICATION_SUITE_NOT_DRILLABLE' | 'VERIFICATION_TARGET_NOT_PUBLISHED' | 'AGENT_DEFINITION_CONFIG_INVALID' | 'ASSISTANT_CONFIGURATION_UNRUNNABLE' | 'AGENT_DEFINITION_SLUG_TAKEN' | 'AGENT_DEFINITION_REVISION_NOT_PUBLISHABLE' | 'SLACK_AGENTS_UNAVAILABLE' | 'OPENROUTER_MODELS_UNAVAILABLE' | 'EVAL_TESTS_UNAVAILABLE' | 'EVAL_CONVERSATION_NOT_ELIGIBLE' | 'EVAL_CONVERSATION_IN_PROGRESS' | 'EVAL_CASE_BUSY' | 'EVAL_CASE_STALE' | 'EVAL_CASE_EDIT_INVALID' | 'SKILL_INVALID' | 'SKILL_SLUG_TAKEN' | 'SKILL_REVISION_NOT_PUBLISHABLE' | 'SKILL_GRANTED_BY_PUBLISHED_AGENTS' | 'AGENT_DEFINITION_IN_USE' | 'ORGANIZATION_DELETE_BLOCKED' | 'ORGANIZATION_NAME_CONFIRMATION_MISMATCH' | 'VERIFICATION_ORG_AT_CAPACITY' | 'PUBLISHABLE_KEY_INVALID' | 'ORIGIN_NOT_ALLOWED' | 'END_USER_TOKEN_INVALID' | 'RATE_LIMITED' | 'ASSISTANT_UNFUNDED' | 'ASSISTANT_SIGN_IN_REQUIRED' | 'SUBSCRIPTION_NOT_OFFERED' | 'SUBSCRIPTION_AUTHORIZATION_INVALID' | 'SUBSCRIPTION_SIGN_IN_DECLINED' | 'SUBSCRIPTION_PROVIDER_UNAVAILABLE' | 'SUBSCRIPTION_CONNECT_REQUIRED' | 'SUBSCRIPTION_CANNOT_PAY' | 'SUBSCRIPTION_PLAN_UNSERVABLE' | 'SEARCH_EMBED_CAP_ABOVE_PLAN_CEILING' | 'PUBLISHABLE_KEY_REVOKED' | 'FEEDBACK_DISABLED' | 'DASHBOARD_ASSISTANT_NOT_CONFIGURED' | 'ORG_ACTION_INVALID' | 'ORG_ACTION_SLUG_TAKEN' | 'ORG_ACTION_ENDPOINT_ALREADY_REGISTERED' | 'ORG_ACTION_ALREADY_ARCHIVED' | 'ORG_ACTION_NOT_ARCHIVED' | 'ORG_ACTION_PROPOSAL_NOT_REVIEWABLE' | 'ORG_ACTION_PROPOSAL_STALE' | 'ACTION_GRANTED_BY_PUBLISHED_AGENTS' | 'ORG_ACTION_PROPOSAL_CHANGED' | 'ORG_ACTION_PROPOSAL_NEEDS_A_CHOICE' | 'ORG_ACTION_CHANGED' | 'ORG_ACTION_PROPOSAL_NOT_EDITABLE' | 'ORG_ACTION_SCAN_ALREADY_RUNNING' | 'ORG_ACTION_SPEC_UPLOADS_NOT_AVAILABLE' | 'ORG_ACTION_SPEC_UPLOAD_INVALID' | 'ORG_ACTION_SPEC_UPLOAD_TOO_LARGE' | 'ORG_ACTION_SPEC_UPLOAD_NEEDS_GRAPHQL_ENDPOINT' | 'ORG_SITEMAP_PAGE_INVALID' | 'ORG_SITEMAP_ROUTE_ALREADY_REGISTERED' | 'ORG_SITEMAP_PAGE_ALREADY_ARCHIVED' | 'ORG_SITEMAP_PAGE_NOT_ARCHIVED' | 'ORG_SITEMAP_PROPOSAL_NOT_REVIEWABLE' | 'ORG_SITEMAP_PROPOSAL_STALE' | 'ORG_SITEMAP_PROPOSAL_CHANGED' | 'ORG_SITEMAP_PROPOSAL_NOT_EDITABLE' | 'ORG_SITEMAP_SCAN_ALREADY_RUNNING' | 'BILLING_PROVIDER_KEY_INVALID' | 'BILLING_KEY_STORAGE_NOT_CONFIGURED' | 'STRIPE_NOT_CONFIGURED' | 'STRIPE_UNAVAILABLE' | 'TOP_UP_AMOUNT_OUT_OF_BOUNDS' | 'AUTO_TOP_UP_NEEDS_A_SAVED_CARD' | 'STRIPE_CUSTOMER_MISSING' | 'WELCOME_CREDIT_ALREADY_UNLOCKED' | 'BILLING_MANAGED_BY_AWS_MARKETPLACE' | 'WELCOME_CREDIT_LOCKED' | 'WORK_CREDIT_ALREADY_GRANTED' | 'WORK_CREDIT_REQUEST_PENDING' | 'JOIN_REQUEST_ALREADY_MEMBER' | 'JOIN_REQUEST_ALREADY_PENDING' | 'LAST_OWNER' | 'ORGANIZATION_DOMAIN_DNS_CLAIMED' | 'CAPTCHA_FAILED' | 'CAPTCHA_UNAVAILABLE' | 'EMAIL_DOMAIN_NOT_CLAIMABLE' | 'EMAIL_DOMAIN_REVOKED' | 'EMAIL_DOMAIN_ALREADY_DNS_VERIFIED' | 'EMAIL_DOMAIN_CLAIMED_BY_ANOTHER_ORGANIZATION' | 'DNS_CHALLENGE_MISSING' | 'DNS_CHALLENGE_EXPIRED' | 'DNS_RECORD_NOT_FOUND' | 'DNS_LOOKUP_FAILED' | 'EMAIL_DOMAIN_SSO_TEARDOWN_INCOMPLETE' | 'INVITATION_ALREADY_MEMBER' | 'INVITATION_ALREADY_PENDING' | 'INVITATION_INVALID' | 'INVITATION_EXPIRED' | 'INVITATION_REVOKED' | 'INVITATION_ALREADY_ACCEPTED' | 'INVITATION_EMAIL_MISMATCH' | 'MARKETPLACE_LINK_INVALID' | 'MARKETPLACE_LINK_EXPIRED' | 'MARKETPLACE_PURCHASE_CONNECTED_ELSEWHERE' | 'MARKETPLACE_OWNER_REQUIRED' | 'SSO_SAML_NOT_IN_PLAN' | 'SSO_DOMAIN_NOT_DNS_VERIFIED' | 'SSO_CONNECTION_ALREADY_EXISTS' | 'SSO_CONNECTION_NOT_DISABLED' | 'SSO_CONNECTION_ALREADY_DISABLED' | 'SSO_PROVIDER_REGISTRY_NOT_CONFIGURED' | 'SSO_PROVIDER_REGISTRY_UNAVAILABLE' | 'SSO_IDP_METADATA_REJECTED' | 'SSO_IDP_METADATA_REQUIRED' | 'SSO_REQUIRED_FOR_DOMAIN' | 'SSO_CONNECTION_NOT_ACTIVE' | 'EDGE_ORIGIN_REQUIRED' | 'MCP_CONNECTIONS_NOT_AVAILABLE' | 'MCP_AUTHORIZATION_EXPIRED' | 'MCP_CAPABILITY_ABOVE_ROLE' | 'MCP_CAPABILITIES_INVALID' | 'MCP_AUTHORIZATION_SERVER_UNAVAILABLE' | 'MCP_CONNECTION_CONFLICT' | 'MCP_SERVER_CONNECT_FAILED' | 'ORG_MCP_SERVER_CHANGED' | 'ORG_MCP_SERVER_ALREADY_ADDED' | 'ORG_MCP_SERVER_GRANTED_BY_PUBLISHED_AGENTS' | 'MCP_SERVERS_NOT_OFFERED' | 'MCP_SERVER_LIMIT_REACHED' | 'MCP_SERVER_AUTHORIZATION_INVALID' | 'MESSAGE_TOO_LONG' | 'STEEP_KEY_INVALID' | 'STEEP_TOKEN_EXPIRED' | 'STEEP_DISABLED' | 'STEEP_LEARNING_OFF' | 'STEEP_LEARNING_RUN_IN_PROGRESS' | 'STEEP_BATCH_INVALID' | 'STEEP_BATCH_TOO_LARGE' | 'STEEP_BATCH_CONFLICT' | 'STEEP_SESSION_CONFLICT' | 'STEEP_SESSION_DELETED' | 'STEEP_SESSION_EXPIRED' | 'STEEP_DAILY_CAP_REACHED' | 'STEEP_OVERLOADED' | 'STEEP_STORAGE_UNAVAILABLE' | 'STEEP_SIGN_IN_REQUIRED' | 'STEEP_KEY_REVOKED' | 'STEEP_OUTLINE_UNAVAILABLE' | 'DEMO_ERROR' | 'HTTP_ERROR' | 'INTERNAL_ERROR': Closed set of machine-readable error codes; extend deliberately.
    - `error` string, nullable

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `405`: Method not allowed
- `422`: The batch is larger than the approve-all ceiling
- `500`: Internal server error

## Changes

- **2026-11-03** `c6ac9fd6657f`: 7 info
  - removed the `STEEP_LEARNING_DISABLED` enum value from the `error/code` response property for the response status `401`
  - removed the `STEEP_LEARNING_DISABLED` enum value from the `error/code` response property for the response status `403`
  - removed the `STEEP_LEARNING_DISABLED` enum value from the `error/code` response property for the response status `404`
  - removed the `STEEP_LEARNING_DISABLED` enum value from the `error/code` response property for the response status `405`
  - …3 more

[Operation history](https://skmtc.dev/teaflask/apis/teaflask-api/changes/api/v1/org-actions/proposals/approve-all/post.md)

---

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