admin_console_add_workspace_group_members
ChatGPTAdd up to 100 existing ChatGPT workspace members to a manually managed group using their email addresses. Existing memberships are left unchanged.
admin_console_aggregate_audit_logs
ChatGPTCount workspace audit records by event type in an explicit timezone-aware [start_time, end_before) window for the authenticated current workspace. Uses the same authorized records and actor, resource, event-type and query filters as search_audit_logs. Reads at most max_pages (default 5, maximum 10) pages of 100 records. Counts describe only this call's batch, including recorded failed or blocked actions. Continue with coverage.next_cursor and identical filters; continuation counts are not cumulative. Only coverage.query_exhausted=true from the beginning covers the available query results. Indexing lag, retention and event-delivery completeness are not measured; this is not a snapshot or proof that every workspace action was recorded. Use search_audit_logs to inspect representative records.
admin_console_analyze_usage
ChatGPTAnalyze ChatGPT Admin token and credit usage for the authenticated current workspace and selected users, including time series and freshness. Omit metrics for tokens plus the workspace balance usage. credits_used always selects credits; spend_usd selects native dollars in spend_usage.charts.spend. Never derive native USD spend from credits. For credit workspaces, explicitly requested monetary estimates using a verified workspace credit price remain supported and must be labeled estimates. Null means unavailable.
admin_console_approve_workspace_join_requests
ChatGPTApprove every pending membership request and invitation-backed existing member seat-change request for the specified ChatGPT workspace, including requests outside the current search or page. This bulk write may consume paid seats, requires explicit confirmation with confirm_all: true, and does not apply scheduled member downgrades.
admin_console_assign_workspace_role
ChatGPTAssign a ChatGPT workspace RBAC role to one existing workspace group.
admin_console_assign_workspace_role_v2
ChatGPTAssign one verified current-workspace custom RBAC role_id to an existing current-workspace group_id. Custom roles are assigned to groups, never directly to individual users; group members inherit the assigned role.
admin_console_configure_usage_limit_requests
ChatGPTConfigure how workspace members request ChatGPT Admin usage-limit increases: use the default request flow, a custom HTTPS request URL and optional instructions of at most 500 characters, or disable requests. Provide a URL or instructions only for a custom request flow. When updating an existing custom flow, omitting instructions preserves the existing employee instructions; explicit null clears them.
admin_console_create_workspace_group
ChatGPTCreate a named group in the specified ChatGPT workspace.
admin_console_create_workspace_role
ChatGPTCreate one explicitly requested, specifically named custom workspace role. Initial permissions may be inherited or set by workspace defaults; connector setup can partially fail. Never retry an ambiguous creation.
admin_console_delete_workspace_gpt
ChatGPTIrreversibly delete one exact GPT from the signed-in workspace. Requires workspace ownership. Resolve the GPT's exact ID and name, show both with an irreversible deletion warning, and wait for explicit confirmation before calling with confirm. Do not call on cancellation or for another workspace. A successful response acknowledges deletion but does not verify inventory removal: read the workspace inventory afterwards and compare the exact ID through cursor exhaustion. Do not retry an uncertain deletion automatically.
admin_console_delete_workspace_group
ChatGPTPermanently delete one manually managed ChatGPT workspace group. Identify the exact group, explain that its memberships and inherited role-based access are removed, and wait for the administrator to reply exactly 'confirm'. Pass confirmation='confirm'. Never delete SCIM-managed or system-managed groups or retry an ambiguous deletion.
admin_console_delete_workspace_role
ChatGPTPermanently delete one verified custom ChatGPT workspace role and remove its assignments. Explain that assigned users and group members can lose permissions, then wait for the administrator to reply exactly 'confirm'. Pass confirmation='confirm'. Never delete a built-in role or retry an ambiguous deletion.
admin_console_enrich_workspace_gpts
ChatGPTRead current owner, timestamps, Actions, sharing counts, Chats and available migration IDs for 1-20 GPT IDs from activity or inventory. Requires ownership of the signed-in workspace; each ID is checked by the backend. Returns complete/failed/not_attempted per ID within a bounded batch, preserving successes. Checkpoint every batch by exact GPT ID; publish periodic partial reports and before stopping. Missing values are unavailable, never zero. Resume missing IDs only; failures are not retried automatically. No report data or credentials are persisted by this tool.
admin_console_explain_usage_limit
ChatGPTExplain the ChatGPT Admin workspace-level usage limit and, when a user is selected, that user's individual and effective usage limit. For an unnamed current-workspace request, call this tool directly; no preliminary workspace lookup is required. Interpret usage from this response: USD responses include top-level balance_unit='usd' and tagged native limits; legacy credit fields retain their documented credit meanings. For a named workspace or supplied workspace ID, first verify a match using admin_console_get_current_workspace; reuse a verified result from this conversation. On a mismatch, stop and ask the administrator to switch workspaces. USD limits use tagged limit_amount/current_limit_amount; a null legacy credit field does not mean unlimited. Native request amounts use recommended_approval_limit_amount or approved_limit_amount; recommendations are not employee-requested amounts.
admin_console_get_activity_summary
ChatGPTGet a ChatGPT Admin activity summary for one workspace, including the activity overview, tokens, balance usage, and analytics-data freshness. Omit balance_unit for the workspace unit. USD uses spend_usage.charts.spend in native dollars; credit_usage is never USD. Explicit balance_unit=credit selects credit history.
admin_console_get_agent_leaderboard
ChatGPTGet current-workspace agent rankings (last month, 100 agents, descending). Omit sort_by for native USD spend on USD workspaces, credits on credit plans, or tokens when balance reporting is unavailable. Explicit spend selects USD; credits selects credit history. USD rows expose amount_used.amount and amount_unit; value/tokens_used remain tokens. Never derive native USD spend from credits. For credit workspaces, explicitly requested monetary estimates using a verified workspace credit price remain supported and must be labeled estimates. Agents have rank, agent_id, agent_name, tokens_used, and available credits_used. Repeat the original end_date on cursor pages. Custom windows require original start_date and end_date on the first and every later page. Preserve sorting. User, group, and product filters are unsupported.
admin_console_get_billing_alerts
ChatGPTGet the authenticated current workspace's permitted custom billing-alert thresholds and additional recipient email addresses. Built-in billing alerts remain active and workspace owners receive alerts by default. Built-ins include zero-balance and overage alerts. Thresholds use the returned balance_unit: whole credits or decimal USD dollars. Negative USD thresholds mean spend; positive USD thresholds mean remaining balance. Preserve their signs. For USD add/remove intents use type=spend and a positive dollar string; these target negative balance thresholds. To remove a positive USD balance threshold, read and replace alert_thresholds, retaining the others. Credit intents remain credits_remaining/overage.
admin_console_get_chatgpt_conversation_classification
ChatGPTGet ChatGPT conversation classifications for the authenticated current workspace and requested date range. Optionally group results by up to two distinct dimensions: task_type, conversation_topic, or scim_group.
admin_console_get_chatgpt_message_usage
ChatGPTGet ChatGPT message usage for the authenticated current workspace, broken down by model, GPT, tool, app, project, or skill. Provide either preset or both start_date and end_date, never both modes. Presets resolve their date ranges on the server and end today in UTC. preset='1m' starts one calendar month earlier, with month-end clamping, and uses daily aggregation. preset='6m' starts on the first day of the month five months earlier and uses monthly aggregation. Do not provide either date field with a preset. Custom ranges support up to 12 calendar months. With preset omitted or null and both custom dates provided, automatically selects daily aggregation for 1-31 inclusive days, weekly for 32-183 days, and monthly for 184 days or more. Workspace group filters are supported for all breakdowns except skills. Each nonempty breakdown keeps up to nine highest-usage categories plus an 'other' bucket equal to each period's total minus its displayed category counts. Every period includes a display-ready breakdown with category IDs, resolved human-readable labels, counts, and an already-calculated, correctly labeled Other entry; no label lookups or count calculations are required. Tool usage counts tool messages received. Tool categories can overlap, so 'Other Tools' may be negative. The app breakdown counts connected-app interactions (requests), not messages, and keeps the top nine apps plus an 'other' bucket. The GPT, project, and skill breakdowns include human-readable labels. The project breakdown includes project labels and groups projects omitted from the upstream response into 'Other Projects'. Different breakdowns can overlap: the same message may involve a model, GPT, tool, project, or skill and trigger multiple app requests. Do not add totals across breakdowns. Returns the selected breakdown, compact analytics response fields, display-ready period breakdowns, and the last-updated timestamp; the timestamp is null when freshness is unavailable.
admin_console_get_codex_active_users_and_completed_runs
ChatGPTGet active-user and completed-run activity for the authenticated current workspace, including daily or weekly trends and supported breakdowns. Set ranking_metric to active_users or messages to select the correct top model or dimension rows; the result identifies the selected metric. The result covers only the requested period; call again with the preceding dates when a comparison is needed. This activity tool returns no credit amounts or USD spend; choose a consumption tool using the current workspace's balance_unit.
admin_console_get_codex_code_generation_metrics
ChatGPTGet code-generation and accepted code-attribution metrics for the authenticated current workspace, optionally filtered by repositories, users, or groups. Outcomes do not support filtering by Codex or Work. Repository filters apply only to committed and attributed contributions; unavailable repository-specific generated or removed line counts are omitted. Generated, committed, and attributed quantities are distinct.
admin_console_get_codex_code_review_metrics
ChatGPTGet observed code-review, pull-request, issue-priority, and reaction metrics for the authenticated current workspace, optionally filtered by users or groups. Review activity does not prove that issues were fixed.
admin_console_get_codex_credit_and_token_usage
ChatGPTGet credit and token consumption for the current workspace when balance_unit='credit'. Includes daily or weekly trends and supported model, surface, or dimension breakdowns. Set ranking_metric to tokens or credits to select the correct top model or dimension rows; the result identifies the selected metric. Credits are usage units, not money. The result covers only the requested period. Check balance_unit using admin_console_get_current_workspace. For balance_unit='usd', use admin_console_get_codex_spend_and_token_usage instead.
admin_console_get_codex_plugin_usage
ChatGPTGet plugin invocation counts and daily or weekly trends for the authenticated current workspace, optionally filtered by users or groups. The result covers only the requested period.
admin_console_get_codex_skill_usage
ChatGPTGet skill invocation counts and daily or weekly trends for the authenticated current workspace, optionally filtered by users or groups. The result covers only the requested period.
admin_console_get_codex_spend_and_token_usage
ChatGPTGet USD spend and token charts for the current workspace when balance_unit='usd'. Check balance_unit using admin_console_get_current_workspace. For balance_unit='credit', use admin_console_get_codex_credit_and_token_usage. Supports daily/weekly trends, model/surface/dimension breakdowns, and user/group filters. On a size error, retry smaller date ranges with the same grouping and filters. Use tabs for Codex, Work, or both; the default is Codex. Both available charts are returned. ranking_metric identifies the chart via ranking_chart; it does not change the query or sort series. Rank categories by summary.value, excluding all/all_models. With breakdown='surface', no token chart is returned. Missing previous_value means comparison unavailable. credit_time_bounds covers credits, not USD history. Never convert credits to fill unavailable spend.
admin_console_get_codex_usage_insights
ChatGPTGet observed use-case, classification, and usage-breakdown insights for the authenticated current workspace. Pass an empty breakdown_by list for a total row. Insights support at most the most recent 120 days. Skill breakdowns return at most the top 20 skills by invocations, with row_limit, returned_rows, and rows_truncated metadata. Totals cover the full filtered result, not only returned skills. Optional work_type=coding or knowledge_work filters classification rows only, requires Insights taxonomy v3, and does not filter totals. Omit work_type or use all for existing behavior. Row and total metrics.credits amounts use the returned unit (credit or usd).
admin_console_get_credit_activity
ChatGPTGet the authenticated workspace billing timeline: credit balances or native USD spend, selected automatically. Use balance_unit=credit for historical credit grant activity on a USD workspace. USD buckets expose spend (null means unavailable); never infer spend from balance changes. Uses a bounded UTC reporting preset or explicit timezone-aware timestamps. Omit arguments for the default last 12 months (360 inclusive days). The itemized breakdown contains credit grant, expiration, and void activity; usage charges and corrections are excluded. A credit-workspace timeline requires permission to view the credit balance; USD timelines use native billing access and archived credit history requires grant permission; itemized grant rows additionally require permission to view credit grants. The latest 1,000 activity rows are returned; activity_truncated and total_activity_rows indicate when additional permitted grant rows exist. Amounts use the returned balance_unit.
admin_console_get_credit_overage_price
ChatGPTGet the authenticated current workspace's credit-overage unit price and currency for estimated usage costs. Returns null when no reliable price is available; an estimated cost is not an invoice or actual charge.
admin_console_get_current_workspace
ChatGPTGet the authenticated current ChatGPT workspace's identifier, display name, usage reporting balance_unit (credit or usd), signed-in user's identifier, name, email, and workspace role, and Codex analytics workspace identifier. This tool cannot select or return another workspace.
admin_console_get_gpt_migration_report
ChatGPTRead the GPT migration report for 1–100 exact GPT IDs already selected by activity or inventory. Requires ownership of the signed-in workspace; validates each GPT's workspace membership. Uses one bulk metadata request and bounded concurrent audience comparisons for linked plugins. Returns results with complete/failed/not_attempted status and compact sharing evidence. Unknown migration metadata never means not migrated. No GPT content, credentials or write tokens are returned. This tool never migrates or shares anything. Checkpoint each response and resume missing IDs only. Limit concurrent report calls to two. When sharing_stopped is true, pass include_plugin_sharing=false for later batches and disclose that comparisons are incomplete; do not automatically retry failed reads. Verify a named workspace first.
admin_console_get_overage_limit
ChatGPTGet the authenticated workspace credit overage limit or USD shared monthly billing budget, selected automatically. Check balance_unit and limit_kind; use limit.amount/unit for USD. This is distinct from the per-user workspace default. A null overage limit means no limit is configured.
admin_console_get_overage_limit_status
ChatGPTDetermine whether the authenticated current workspace has reached its configured credit overage limit or USD shared monthly billing budget without fetching the billing snapshot. For USD use monthly_budget_reached; it is not a per-user limit status.
admin_console_get_usage_leaderboard
ChatGPTGet the ChatGPT Admin user or group token and credit usage leaderboard for the authenticated current workspace, with supported product filters, search, cursor pagination, and analytics-data freshness. Group leaderboards support ChatGPT, agents, Codex, and Work product filters. For pagination, reuse the returned cursor with the same subject, window, products, group filters, search query, and sort settings as the first request; user leaderboards can be restricted to verified workspace groups; for a custom window, omit start_date and end_date because the cursor preserves the date range. Native USD rankings use sort_by=spend; credits explicitly selects credit history. Token and lines-of-code rankings include amounts in the workspace unit by default. USD rows use amount_used.amount with amount_unit=usd; value remains tokens. Preserve balance_unit on every page; null means unavailable.
admin_console_get_usage_limit_request
ChatGPTInspect one specific ChatGPT Admin usage-limit request in the authenticated workspace, including its current status, justification, and any resolution note. approved_limit on an approved request is the applied administrator-approved amount; recommended_approval_limit on a pending or denied request is system-generated, not an employee-requested amount. For an unnamed current-workspace request, call this tool directly; no preliminary workspace lookup is required. Interpret usage from this response: USD responses include top-level balance_unit='usd' and tagged native limits; legacy credit fields retain their documented credit meanings. For a named workspace or supplied workspace ID, first verify a match using admin_console_get_current_workspace; reuse a verified result from this conversation. On a mismatch, stop and ask the administrator to switch workspaces. USD limits use tagged limit_amount/current_limit_amount; a null legacy credit field does not mean unlimited. Native request amounts use recommended_approval_limit_amount or approved_limit_amount; recommendations are not employee-requested amounts.
admin_console_get_user_effective_permissions
ChatGPTGet one ChatGPT workspace user's effective RBAC permissions, contributing roles, direct or group assignment sources, workspace-policy permissions, and plan overrides.
admin_console_get_user_permissions
ChatGPTGet consolidated effective RBAC permission identifiers for one existing current-workspace user's authentication user_id. The user_permissions.permissions list does not include contributing roles, assigned groups, workspace-policy provenance, or subscription-plan provenance; use admin_console_list_user_roles when contributing role identities are requested.
admin_console_get_user_usage_summary
ChatGPTGet an individual user's ChatGPT Admin usage summary for the authenticated current workspace, automatically returning credits or native USD spend. Omit balance_unit for the workspace unit; explicit credit selects credit history. USD appears in spend_usage.charts.spend, never credit_usage. Null means unavailable. Never derive native USD spend from credits. For credit workspaces, explicitly requested monetary estimates using a verified workspace credit price remain supported and must be labeled estimates.
admin_console_get_workspace_agent
ChatGPTGet normalized details for one agent in the authenticated current ChatGPT Admin workspace, including its builder, customer-facing ID, selected version, and ChatGPT and Slack access. Optionally include independently paginated agent users or connector apps, skills, and file metadata. Agent-user tasks_completed counts completed agent runs over the latest seven days. Apps and skills appear only on the first file page; preserve them across subsequent file pages. Requested reads run concurrently.
admin_console_get_workspace_billing
ChatGPTGet the authenticated current workspace's billing snapshot, including visible seat counts and capacity, license type, expiration or pending activation, credit balance and unbilled overage, credit-overage status, subscription settings, and invoice metadata. When permitted, credit overage includes the billing-cycle end, price per credit, and estimated spend. Dates use ISO 8601, and invoice totals use minor currency units. Credits are usage units, not money. USD workspaces expose their native monthly_budget and monthly_budget_reached; use admin_console_get_credit_activity for native spend history. Never derive native USD spend from credits. For credit workspaces, explicitly requested monetary estimates using a verified workspace credit price remain supported and must be labeled estimates. Do not infer spend from remaining balance. A null overage limit means no limit is configured.
admin_console_get_workspace_gpt_file_metadata
ChatGPTOnly on explicit administrator request, read attached-file filename, MIME type and exact byte size for 1-20 selected GPT IDs. Set include_file_metadata=true. Requires current workspace owner or admin rights. No per-GPT configuration access is required. Stored metadata only; does not verify current file availability, download contents or return URLs. Standard reports are unchanged. Optional size_threshold_bytes: 100 MB=100000000, 100 MiB=104857600; size_comparison gt means over, gte means at least. Unknown metadata and per-file/per-GPT errors remain visible, never zero or no files. Save each result and continue each non-null next_page exactly, one GPT at a time. An inventory change requires a new traversal of that GPT, preserving the earlier partial result.
admin_console_get_workspace_gpt_settings
ChatGPTRead the authenticated current workspace's GPT governance settings without changing them. Returns customer-ready Sharing audiences ('Anyone', 'Workspace members only', or 'Invite only'), Third-party GPT access ('Allow all', 'Owner-approved only', or 'Don't allow'), whether Apps are enabled in workspace-created GPTs, and GPT actions domain policy ('All domains allowed', 'No domains allowed', or 'Only listed domains allowed'). Listed-domain policies include the exact domains in their original order. Domain restrictions do not apply to third-party GPTs. Missing or unrecognized settings are omitted. Requires ownership of the current workspace.
admin_console_get_workspace_group
ChatGPTGet a ChatGPT workspace group and optionally include a bounded, searchable page of its current members.
admin_console_get_workspace_group_usage_limit
ChatGPTGet the per-user usage-limit policy for one authenticated ChatGPT Admin workspace group directly by group ID. Group limits are per-user defaults, not shared group credit pools. For an unnamed current-workspace request, call this tool directly; no preliminary workspace lookup is required. Interpret usage from this response: USD responses include top-level balance_unit='usd' and tagged native limits; legacy credit fields retain their documented credit meanings. For a named workspace or supplied workspace ID, first verify a match using admin_console_get_current_workspace; reuse a verified result from this conversation. On a mismatch, stop and ask the administrator to switch workspaces. USD limits use tagged limit_amount/current_limit_amount; a null legacy credit field does not mean unlimited. Native request amounts use recommended_approval_limit_amount or approved_limit_amount; recommendations are not employee-requested amounts.
admin_console_get_workspace_model_policy
ChatGPTInspect workspace and role-scoped default model policies for Chat, Work, and Codex without changing model access or configuration.
admin_console_get_workspace_role
ChatGPTInspect one ChatGPT workspace RBAC role without listing its assigned principals. Present explicit permission states as On or Off. Present inherited states as On (Default) or Off (Default) only after verifying the matching Workspace Default permission; otherwise say Default (current state unavailable). Keep tool values as on, off, or inherit.
admin_console_get_workspace_role_v2
ChatGPTDeprecated. Do not use this tool for role-permission inspection. Instead, call admin_console_list_all_workspace_role_permissions with role_ids: ["<verified-role-id>"]. That tool returns the requested role together with Workspace Default, allowing inherited permissions to be interpreted as On (Default) or Off (Default). This tool remains available only for backward compatibility. Present explicit permission states as On or Off. Present inherited states as On (Default) or Off (Default) only after verifying the matching Workspace Default permission; otherwise say Default (current state unavailable). Keep tool values as on, off, or inherit.
admin_console_get_workspace_skill_sharing
ChatGPTInspect the authenticated current workspace's access state and direct user or group grants for one verified workspace Skill. Returns at most 500 principals and reports when additional grants are omitted. A principal's enabled value describes installation, not access: for users it is their direct Skill-enabled status; for the workspace it indicates automatic installation rather than discoverability; for groups it is always false because group installation status is unavailable. A false enabled value does not remove a listed access grant. This does not change access.
admin_console_inspect_budget_policy
ChatGPTInspect workspace per-user usage-limit policies and billing-cycle reset settings. The returned workspace_policy.usage_period_end is the authoritative current usage-period expiry: for monthly policies it is the first day of the next UTC month at 00:00, and for billing-cycle policies it is the returned billing-cycle boundary when available. Optionally include group policies or the increase-request process. Group limits are per-user defaults, not shared group credit pools. Group policies are fetched only when include_group_policies is true and are paginated in pages of up to 100, defaulting to 20; pass a returned group_cursor as cursor to retrieve the next page. A selected group_id is always retrieved directly. For an unnamed current-workspace request, call this tool directly; no preliminary workspace lookup is required. Interpret usage from this response: USD responses include top-level balance_unit='usd' and tagged native limits; legacy credit fields retain their documented credit meanings. For a named workspace or supplied workspace ID, first verify a match using admin_console_get_current_workspace; reuse a verified result from this conversation. On a mismatch, stop and ask the administrator to switch workspaces. USD limits use tagged limit_amount/current_limit_amount; a null legacy credit field does not mean unlimited. Native request amounts use recommended_approval_limit_amount or approved_limit_amount; recommendations are not employee-requested amounts.
admin_console_investigate_user_spend
ChatGPTInvestigate one user's workspace spend, effective and inherited usage limits, and matching pending increase requests. user_spend.override_credit_limits contains personal overrides; effective_hard_cap and inherited_hard_cap include their limit sources, with group-default sources identifying the applicable group. A returned recommended_approval_limit is system-generated, not an employee-requested amount. For an unnamed current-workspace request, call this tool directly; no preliminary workspace lookup is required. Interpret usage from this response: USD responses include top-level balance_unit='usd' and tagged native limits; legacy credit fields retain their documented credit meanings. For a named workspace or supplied workspace ID, first verify a match using admin_console_get_current_workspace; reuse a verified result from this conversation. On a mismatch, stop and ask the administrator to switch workspaces. USD limits use tagged limit_amount/current_limit_amount; a null legacy credit field does not mean unlimited. Native request amounts use recommended_approval_limit_amount or approved_limit_amount; recommendations are not employee-requested amounts.
admin_console_invite_workspace_members
ChatGPTInvite up to 100 people to a ChatGPT workspace by email, optionally selecting their workspace role and seat type or resending existing invitations without changing their individual roles or seat types.
admin_console_list_all_workspace_role_permissions
ChatGPTList current-workspace RBAC roles and their editable permission states (on, off, or inherit). Input: role_ids, limit, and offset are optional. Omit role_ids to list all roles; provide [] to return only Workspace Default; provide verified role IDs to return those matching roles plus Workspace Default automatically. Filtering happens before pagination; Workspace Default is first and counts toward limit. limit defaults to 10 and cannot exceed 20; use pagination.next_offset for the next page. pagination.total counts matching roles, including Workspace Default when role_ids is provided. Output: {roles: {object: list, data: [{id, name, permission_states: [{name, state, inheritable, depends_on?}], ...}]}, pagination: {total, limit, offset, has_more, next_offset}, permission_labels: {...}}. Noneditable states and their editable fields are omitted; absence does not mean disabled. Compare inherit with the matching Workspace Default permission. Present explicit permission states as On or Off. Present inherited states as On (Default) or Off (Default) only after verifying the matching Workspace Default permission; otherwise say Default (current state unavailable). Keep tool values as on, off, or inherit.
admin_console_list_codex_code_attribution_repositories
ChatGPTList or search code-attribution repositories for the authenticated current workspace, optionally filtered by users or groups, including enablement and metrics availability.
admin_console_list_group_roles
ChatGPTList RBAC roles assigned directly to one existing current-workspace group_id. Set compact=true when only role identities or metadata are needed; compact roles[] entries include role_id, role_name, description, predefined_role, inherits_from_default_member_role, and lockdown_mode without permission details. Omit compact or set it false when available permission details are required. Present explicit permission states as On or Off. Present inherited states as On (Default) or Off (Default) only after verifying the matching Workspace Default permission; otherwise say Default (current state unavailable). Keep tool values as on, off, or inherit.
admin_console_list_invoices
ChatGPTList invoice metadata for the authenticated current workspace's organization with bounded provider-backed pagination. Set page_size to control the number of invoices returned and continue with next_page_token as page_token. Amounts include exact currency decimals and original minor units; hosted payment and document links are not returned.
admin_console_list_principal_roles
ChatGPTList the ChatGPT workspace RBAC roles assigned to one specified user or group. Present explicit permission states as On or Off. Present inherited states as On (Default) or Off (Default) only after verifying the matching Workspace Default permission; otherwise say Default (current state unavailable). Keep tool values as on, off, or inherit.
admin_console_list_role_principals
ChatGPTList the users and groups assigned to a ChatGPT workspace RBAC role.
admin_console_list_role_principals_v2
ChatGPTList the workspace groups assigned to one verified current-workspace role_id. Results contain groups only, never individual users; use group membership to establish which people inherit a custom role.
admin_console_list_usage_limits
ChatGPTSearch and list user-level ChatGPT Admin spend controls, including current usage and effective or individual limits. Optionally filter users by workspace group. For an unnamed current-workspace request, call this tool directly; no preliminary workspace lookup is required. Interpret usage from this response: USD responses include top-level balance_unit='usd' and tagged native limits; legacy credit fields retain their documented credit meanings. For a named workspace or supplied workspace ID, first verify a match using admin_console_get_current_workspace; reuse a verified result from this conversation. On a mismatch, stop and ask the administrator to switch workspaces. USD limits use tagged limit_amount/current_limit_amount; a null legacy credit field does not mean unlimited. Native request amounts use recommended_approval_limit_amount or approved_limit_amount; recommendations are not employee-requested amounts.
admin_console_list_user_groups
ChatGPTList every ChatGPT workspace group containing one existing workspace account user.
admin_console_list_user_roles
ChatGPTList RBAC roles affecting one existing current-workspace user's authentication user_id, including roles inherited through group membership. The result does not identify which group supplied a role or authorize assigning roles directly to a user. Set compact=true when only role identities or metadata are needed; compact roles[] entries include role_id, role_name, description, predefined_role, inherits_from_default_member_role, and lockdown_mode without permission details. Omit compact or set it false when available permission details are required. Present explicit permission states as On or Off. Present inherited states as On (Default) or Off (Default) only after verifying the matching Workspace Default permission; otherwise say Default (current state unavailable). Keep tool values as on, off, or inherit.
admin_console_list_workspace_agents
ChatGPTList or search agents in the authenticated current ChatGPT Admin workspace, with bounded cursor pagination and optional name, ChatGPT access, Slack access, sorting, and usage-metric filters. Rows include normalized ChatGPT and Slack access, builder, and display identifiers when available. The tasks_completed and weekly_active_users metrics represent completed agent runs and active users over the latest seven days. Missing metrics are unavailable, not zero. This tool cannot select another workspace.
admin_console_list_workspace_gpt_inventory
ChatGPTList all workspace GPTs with lightweight indexed inventory. For active-GPT reports, start with list_active_workspace_gpts instead and enrich only those IDs. Requires ownership of the signed-in workspace. Default page size 20, maximum 100. Save every page to the report before requesting the next exact gpts.cursor with unchanged filters, ordering and limit. Empty pages with cursors are not completion. No total count or snapshot guarantee. On failure retain the partial report and input cursor; never restart automatically. Enrich saved IDs using admin_console_enrich_workspace_gpts.
admin_console_list_workspace_gpts
ChatGPTList workspace GPTs with safe management metadata.
admin_console_list_workspace_groups
ChatGPTList or search ChatGPT workspace groups with bounded pagination and optional SCIM groups, member counts, and total counts.
admin_console_list_workspace_invitations
ChatGPTList or search pending ChatGPT workspace invitations and membership or seat-change requests with bounded pagination. Set include_pending=false and include_requests=true to list only pending requests.
admin_console_list_workspace_members
ChatGPTList the members of one ChatGPT workspace with bounded pagination and optional role, seat-type, name or email, and scheduled pending-seat-change filters. Scheduled seat-change results depend on workspace plan and feature availability. Optionally include workspace seat-type counts.
admin_console_list_workspace_role_permissions
ChatGPTList the current workspace's customer-visible RBAC permission catalog only. Input: category, search, and include_non_editable are optional. Output: categories with category_id, label, and permission_count; permissions with their name, category_id, and available label, description, editable, inheritable, depends_on, and requires_confirmation metadata. This tool does not accept a role ID or return roles, configured on/off/inherit states, or Workspace Default. To inspect role permission states alongside Workspace Default, use admin_console_list_all_workspace_role_permissions with role_ids.
admin_console_list_workspace_roles
ChatGPTList built-in and custom RBAC roles for a ChatGPT workspace. Optionally include per-role member and group assignment counts. Present explicit permission states as On or Off. Present inherited states as On (Default) or Off (Default) only after verifying the matching Workspace Default permission; otherwise say Default (current state unavailable). Keep tool values as on, off, or inherit.
admin_console_list_workspace_roles_v2
ChatGPTList built-in and custom RBAC roles in the current workspace. Input: role_name (optional). Omit it to return all roles; otherwise match names case-insensitively by exact name, substring, or wildcard (* matches any characters; ? matches one). A literal exact match takes precedence over wildcard expansion. Search Workspace Default to find the built-in member role. Output: {roles: [{role_id, role_name, description, predefined_role, inherits_from_default_member_role, lockdown_mode}]}. No permissions, assignment counts, or pagination. Require one intended match before acting on a role.
admin_console_list_workspace_skill_files
ChatGPTList the relative file paths and byte-range metadata for one verified Skill in the authenticated current workspace. Returns at most 500 files and reports when additional files are omitted. Never returns file contents, storage identifiers, archives, or download links. To inspect file contents, use the ChatGPT Skills admin page at https://chatgpt.com/admin/skills.
admin_console_list_workspace_skills
ChatGPTList the authenticated current workspace's actual Skills, matching the ChatGPT admin Skills page. Search skill or owner names; filter by verified creator IDs or restricted, discoverable, and enabled workspace access; sort by name or creation and update time; and continue with the returned opaque cursor. Rows include owner, access, user count, and invocations over the last 30 complete UTC days when available. This tool lists Skills, not Agents or Codex skill-usage analytics.
admin_console_reject_workspace_request
ChatGPTReject one identified workspace-access request or existing-member seat-change request. Requires its request ID, matching email address, and exact request type. An existing member keeps their current workspace access and seat.
admin_console_remove_workspace_gpt_sharing
ChatGPTRemove direct access for the specified users or groups from one workspace GPT. Preserves all other direct recipients, their permissions, and the GPT's existing broad visibility. Access inherited through another group or broad visibility may remain. Requires workspace ownership.
admin_console_remove_workspace_group_member
ChatGPTRemove up to 100 members from one manually managed workspace group. Identify the group and every member, explain that access inherited from that group may be lost, and wait for the user to reply exactly 'confirm'. Use authentication-user IDs, never account-user IDs. Batch removals are not atomic; report partial outcomes without retrying.
admin_console_remove_workspace_members
ChatGPTRemove up to 100 verified members from the current workspace. Explain that workspace access is revoked and seat billing may change, then wait for the administrator to type exactly 'confirm'. Pass confirmation='confirm' and the authentication-user IDs. Batch removals are not atomic; report partial outcomes without retrying.
admin_console_remove_workspace_skill_sharing
ChatGPTRemove one explicitly identified current-workspace user or group's direct access grant from a verified workspace Skill. This does not delete the Skill or change other grants.
admin_console_resolve_usage_limit_requests
ChatGPTApprove or deny up to 50 pending ChatGPT Admin usage-limit increase requests in one workspace. Before approving an amount, reuse the authenticated workspace's balance unit from a verified tool result already in the conversation. If it is unknown, call admin_console_get_current_workspace and read balance_unit. Use approved_limit or approved_limits for credits, or tagged approved_limit_amount or approved_limit_amounts for USD. Do not guess the unit or convert between them. Denying requests does not require a unit lookup. Credit approvals require explicit whole-credit amounts from 0 to 2,147,483,647: use approved_limit for one request or approved_limits by request ID for a batch. USD approvals use approved_limit_amount or approved_limit_amounts by request ID, with {amount: '125.50', unit: 'usd'}. Never mix credit/USD fields; use the request workspace unit. Optional limit_expires_at is a future RFC 3339 timestamp shared by all approvals; omit it to preserve an existing expiry or use null for indefinite approval. Denial notes are optional and at most 500 characters. Returns per-request results and sanitized failures; successes are not rolled back.
admin_console_review_usage_limit_request_history
ChatGPTReview approved or denied ChatGPT Admin usage-limit increase requests for the authenticated workspace. Optionally filter by approved or denied status, one workspace group, or one workspace user. Pass the authenticated user ID as user_id to retrieve that user's request history directly. approved_limit is the actual administrator-approved amount; recommended_approval_limit on denied requests is system-generated, not an employee-requested amount. Results are paginated in pages of up to 100 requests. For an unnamed current-workspace request, call this tool directly; no preliminary workspace lookup is required. Interpret usage from this response: USD responses include top-level balance_unit='usd' and tagged native limits; legacy credit fields retain their documented credit meanings. For a named workspace or supplied workspace ID, first verify a match using admin_console_get_current_workspace; reuse a verified result from this conversation. On a mismatch, stop and ask the administrator to switch workspaces. USD limits use tagged limit_amount/current_limit_amount; a null legacy credit field does not mean unlimited. Native request amounts use recommended_approval_limit_amount or approved_limit_amount; recommendations are not employee-requested amounts.
admin_console_review_usage_limit_requests
ChatGPTReview ChatGPT Admin usage-limit increase requests for a workspace or one workspace user, including requester and current-usage context. Pass the authenticated user ID as user_id to retrieve that user's requests directly. Only pending requests are returned. current_limit is the effective limit; inspect user spend controls separately for individual overrides. A returned recommended_approval_limit is system-generated, not an employee-requested amount. Results are paginated in pages of up to 100 requests, defaulting to 20. Empty filtered pages are skipped, up to 10 pages per call; if a cursor is returned, call this tool again with that cursor to continue reviewing requests. For an unnamed current-workspace request, call this tool directly; no preliminary workspace lookup is required. Interpret usage from this response: USD responses include top-level balance_unit='usd' and tagged native limits; legacy credit fields retain their documented credit meanings. For a named workspace or supplied workspace ID, first verify a match using admin_console_get_current_workspace; reuse a verified result from this conversation. On a mismatch, stop and ask the administrator to switch workspaces. USD limits use tagged limit_amount/current_limit_amount; a null legacy credit field does not mean unlimited. Native request amounts use recommended_approval_limit_amount or approved_limit_amount; recommendations are not employee-requested amounts.
admin_console_revoke_workspace_invitation
ChatGPTRevoke one identified pending workspace invitation. Requires its invitation ID and matching email address; does not remove an existing workspace member.
admin_console_search_audit_logs
ChatGPTSearch workspace administrative audit logs for the authenticated current workspace. Use actor_ids or actor_emails for who performed an action and resource_ids for exact affected resources; query searches broadly across event details. Use exclusive end_before for UI-aligned date ranges, or inclusive end_time; do not combine them. Set sort_order='asc' for oldest-first results. The default summary omits action_data and request metadata; set detail='full' when those fields are needed. Continue only with page.next_cursor and identical workspace filters, page limit, and sort order. Use anchor_event_id with direction='older' or 'newer' to inspect events surrounding a visible event UUID. Hydrated actor and resource names are best effort and may be absent or null.
admin_console_set_billing_alerts
ChatGPTUpdate the authenticated current workspace's custom billing-alert thresholds, additional recipient email addresses, or both, then return the verified saved settings. Before adding, removing, or replacing threshold amounts, reuse the authenticated workspace's balance unit from a verified tool result already in the conversation. If it is unknown, call admin_console_get_current_workspace and read balance_unit. Use whole-credit thresholds or credit intents for credit workspaces, and tagged USD thresholds or spend intents for USD workspaces. Do not guess the unit or convert between them. Clearing thresholds or updating only recipients does not require a unit lookup. Prefer add_thresholds, remove_thresholds, add_recipients, or remove_recipients to preserve existing settings automatically; use explicit clear flags to clear a category. Each legacy replacement list replaces all existing entries; read current settings first and include entries to retain. Omit a list to preserve it; an empty list clears only custom thresholds or additional recipients and requires explicit confirmation before clearing. Built-in billing alerts remain active and workspace owners receive alerts by default. Built-ins include zero-balance and overage alerts. Thresholds must match the workspace balance unit: whole credits or decimal USD dollars. Negative USD thresholds mean spend; positive USD thresholds mean remaining balance. Preserve their signs. For USD add/remove intents use type=spend and a positive dollar string; these target negative balance thresholds. To remove a positive USD balance threshold, read and replace alert_thresholds, retaining the others. Credit intents remain credits_remaining/overage.
admin_console_set_usage_limit
ChatGPTSet, clear, or make unlimited a hard usage limit for a workspace user in ChatGPT Admin. Before setting a finite limit, reuse the authenticated workspace's balance unit from a verified tool result already in the conversation. If it is unknown, call admin_console_get_current_workspace and read balance_unit. Use limit for credits or tagged limit_amount for USD. Do not guess the unit or convert between them. Clearing a limit or selecting unlimited mode does not require a unit lookup. Finite limits use limit (0 to 2,147,483,647 whole credits) on credit workspaces, or limit_amount={amount: '125.50', unit: 'usd'} on USD workspaces. Never provide both. Omit limit_mode with limit_amount. Use limit:null to clear; limit:null with limit_mode=unlimited_platform_max is unlimited. Zero is a finite cap. Optional limit_expires_at is a future RFC 3339 timestamp for a temporary finite or unlimited override; null makes it indefinite. Omission preserves the active individual override's expiration, if any. Omit expiry when clearing the override. Returns the user's previous usage-limit state and the update result.
admin_console_set_workspace_group_usage_limit
ChatGPTSet or clear the per-user hard usage-limit default for one authenticated ChatGPT Admin workspace group using limit for 0 to 2,147,483,647 whole credits or limit_amount={amount: '125.50', unit: 'usd'} for native USD; never both. Before setting a finite limit, reuse the authenticated workspace's balance unit from a verified tool result already in the conversation. If it is unknown, call admin_console_get_current_workspace and read balance_unit. Use limit for credits or tagged limit_amount for USD. Do not guess the unit or convert between them. Clearing a limit or selecting unlimited mode does not require a unit lookup. Omit limit_mode with limit_amount. This is a per-user default, not a shared group credit pool. Supports a finite limit in the workspace unit, limit_mode: unlimited_platform_max with limit: null, or an explicitly confirmed limit: null without limit_mode to clear the group override and restore inheritance. Returns the previous group policy and update result.
admin_console_set_workspace_skill_access
ChatGPTSet a verified workspace Skill's workspace-wide access to restricted, discoverable, or enabled. This affects access throughout the authenticated current workspace.
admin_console_set_workspace_usage_limit
ChatGPTSet or clear the per-user hard usage-limit default for the authenticated ChatGPT Admin workspace. Before setting a finite limit, reuse the authenticated workspace's balance unit from a verified tool result already in the conversation. If it is unknown, call admin_console_get_current_workspace and read balance_unit. Use limit for credits or tagged limit_amount for USD. Do not guess the unit or convert between them. Clearing the default does not require a unit lookup. Use limit for 0 to 2,147,483,647 whole credits, or limit_amount={amount: '125.50', unit: 'usd'} for native USD. Never both. This per-user default is distinct from the shared monthly billing budget. Use an explicitly confirmed limit: null to clear the workspace default; explicit unlimited mode is not supported. This affects workspace members who inherit the workspace default. Returns the previous workspace policy and update result.
admin_console_transfer_workspace_gpt_ownership
ChatGPTTransfer a workspace GPT to an existing member. Requires workspace ownership.
admin_console_transfer_workspace_skill_ownership
ChatGPTTransfer one verified workspace Skill to a specifically identified active member of the authenticated current workspace. Resolve the new owner's account-user ID first.
admin_console_unassign_workspace_role
ChatGPTRemove one ChatGPT workspace RBAC role assignment from one workspace group. Group members may lose permissions supplied by this role; their workspace memberships, the group, and the role are preserved. The default Member role cannot be removed.
admin_console_update_workspace_gpt_sharing
ChatGPTUpdate GPT visibility or share with workspace users/groups while preserving existing grants. Include at most one broad visibility target; it may be combined with multiple direct user or group sharing changes. Permission levels: Can chat=can_read; Can view settings=can_read+can_view_config; Can edit=can_read+can_view_config+can_write. Defaults to Can chat. Only individual users and groups can receive Can edit; broad access cannot edit.
admin_console_update_workspace_group
ChatGPTRename a manually managed ChatGPT workspace group or add one existing workspace member by user ID. Specify exactly one change and return the previous group state together with the update result.
admin_console_update_workspace_invitation
ChatGPTUpdate a pending workspace invitation's role or seat type, or approve an individual workspace membership request. At least one change must be specified.
admin_console_update_workspace_member
ChatGPTChange an existing ChatGPT workspace member's workspace role or seat type. The destination API independently enforces owner permissions and seat availability.
admin_console_update_workspace_role_details
ChatGPTApply an explicitly requested name or description update to one verified custom workspace role, preserving its permissions. Never retry an ambiguous write.
admin_console_update_workspace_role_permissions
ChatGPTEnable, disable, or restore inherited permissions for one custom workspace RBAC role, or enable or disable permissions for its verified default Member role. Use up to 100 permission overrides in one call; permission-state controls must be available. Do not use another mutation route. The backend validates the combined proposed state, including dependencies; a child may become editable when its parent is enabled in the same request. Obtain confirmation; require the exact reply 'confirm' for the workspace-wide default Member role. Errors retain their public message, code, and parameter when available. Never retry an ambiguous write, even if the API error suggests retrying. Present explicit permission states as On or Off. Present inherited states as On (Default) or Off (Default) only after verifying the matching Workspace Default permission; otherwise say Default (current state unavailable). Keep tool values as on, off, or inherit.
admin_console_update_workspace_skill_sharing
ChatGPTGrant reader access to one explicitly identified current-workspace user or group, or to a bounded list of explicitly requested recipients, for a verified workspace Skill. Editor grants are not supported, existing editor or owner access cannot be downgraded, and existing reader grants are left unchanged. Existing other grants are preserved; batch grants are applied individually and are not atomic.
cancel_gpt_migration_batch
ChatGPTCancel the exact migration batch when the user requests it. Stops scheduling new GPT migrations, preserves all results and does not undo completed writes. In-flight outcomes can still arrive.
download_gpt_migration_batch_results
ChatGPTDownload one exact page of migration results as a JSONL resource. Save the bytes and follow next_offset to collect every page; disclose incomplete or changing batches. No bearer download URL is exposed.
get_gpt_migration_batch
ChatGPTRead durable migration progress by saved batch ID in the original actor/workspace. Job failure or cancellation does not undo completed migrations; inspect every result, including unknown outcomes.
get_gpt_migration_batch_results
ChatGPTRead a complete bounded page of manifest entries and saved migration receipts. Follow next_offset until null; never treat one page as the whole batch. Results remain actor/workspace scoped across conversations. Unknown outcomes are not failures or verified success.
get_gpt_migration_details
ChatGPTRead migration metadata for 1-20 GPTs in the signed-in workspace, at most five concurrently; requires workspace ownership. Reads share the Admin tool's 60-second limit, with three seconds reserved for the response; shorter caller deadlines reduce that budget. Submitted reads that time out return failed with reason=timeout; queued reads not sent before the deadline return not_attempted. Results retain input order and completed siblings. If the user specifies a workspace, verify it with admin_console_get_current_workspace first; on mismatch, stop and ask them to switch. Resolve GPTs with admin_console_list_workspace_gpts; ask the user to disambiguate names. Returns per-GPT read/failed/not_attempted status, available configuration/owner/Action metadata, and migration effects. Set include_sharing_preview=true to review complete source audiences, proposed plugin roles and content-access expansions before a combined migration/sharing confirmation. A sharing choice alone does not authorize a write; unavailable or blocked previews require resolution. Only a successful read with configuration_available=true and a nonempty gizmo_config_id can supply a migration target. Missing migrated_plugin_id does not prove unmigrated status. eligibility=not_checked: content, files and migration permission are validated only during execution. Report failed/not_attempted reads as incomplete; split larger selections into groups of at most 20.
get_gpt_plugin_sharing
ChatGPTRead migration provenance and compare current GPT/plugin sharing for up to five exact GPT/plugin pairs in the signed-in workspace. Use migration receipts or GPT migrated_plugin_id, never names. If a workspace is named, verify it first. Returns safe metadata, current and proposed audiences, blockers and state_token. Sharing is a separate confirmed full-audience replacement; the token is not a transactional lock. Private destinations require plugin access; missing metadata stays unknown. Owner and acting admin editor grants are preserved and shown separately. GPT chat-only grants map to plugin readers; show every access_expansions entry and explain that readers can inspect/download instructions and knowledge files before confirmation. Large previews can omit current principal display names with an explicit flag, retaining every ID/role. Resolve exact IDs through existing user/group tools if needed. If even the full identity inventory cannot fit, the preview is blocked without an apply token; never use a partial review. Do not execute blocked plans or infer migration dates or conversations.
list_active_workspace_gpts
ChatGPTList GPTs attributed to the signed-in workspace with recorded activity over the last days (default 30, range 1–365 complete UTC days ending yesterday); requires workspace analytics access. If a workspace is specified, verify it with admin_console_get_current_workspace first; on mismatch, ask the user to switch. Returns GPT IDs, names, window message/user counts, creator labels, exact dates and analytics freshness. Excludes GPTs marked draft in analytics. Activity HTTP 503s retry the unchanged request with backoff for up to 55 seconds. Messages can include use outside the workspace; active_workspace_users counts workspace members. Creator labels do not verify current ownership. First call: omit cursor, query_id, start_date and end_date. For each next page, copy page.next_cursor to cursor, page.query_id to query_id, and window.start_date/end_date to start_date/end_date; reuse window.days and page.limit. Never decode the cursor or recalculate dates. Continue until has_more=false, including after empty pages. If a cursor expires or parameters mismatch, report incomplete results; do not mix a restarted query with earlier pages. Results reflect delayed analytics, not a live inventory; absence does not prove inactivity. No migration status, migration eligibility or last-active date is returned. Use exact GPT IDs for subsequent inventory or migration reads.
migrate_workspace_gpts
ChatGPTMigrate 1–10 GPTs synchronously with an independent 45-second deadline for each GPT; all submitted siblings return their own results. Larger selections (11–10,000) automatically use a durable background Job and immediately return a batch ID after digest-bound confirmation. First resolve the workspace and read selected GPTs with get_gpt_migration_details; stop if that tool or required IDs are unavailable. Use the exact pairs specified in targets. Before writing, show selected GPT names/IDs, configuration IDs, available owners and Actions, and explain: plugins are private and owned by original GPT owners; sharing/Actions are not copied; plugins are not installed; source editing/sharing/deletion may become locked. Wait for the user to reply exactly 'confirm', then set confirmation='confirm'. Changed targets/configurations require new confirmation. Admins cannot migrate another owner's private GPT. Report the summary and each GPT ID, status, message and returned plugin ID. timed_out_count counts timeouts, which retain outcome_unknown status because work may have completed. migrated/already_migrated indicate backend receipts with/without content changes. If configuration_matches_request is false, report both configuration IDs and the existing receipt; do not claim the confirmed configuration was migrated by this call. failed is no verified success; outcome_unknown means work may have occurred; not_attempted means this call submitted no request. Report backend_error details and failed_files warnings without inventing missing causes or treating successful migrations as failures. Omitted warnings: report failed_files_count and unavailable details. Absent warnings are unavailable; an empty list on already_migrated does not establish the original copy's success. For 11+ GPTs, prepare_gpt_migration_batch saves the immutable selection. Review the complete manifest and effects, obtain one explicit confirmation bound to its digest, then pass batch_id, confirmation_digest and confirmation='confirm'. Never split a larger selection into synchronous calls. Use get_gpt_migration_batch and paginated results/download tools across conversations. Canceling stops new work without undoing completed migrations. Background work reconciles timeouts or transport failures by replaying the exact saved POST; blocked 4xx results remain terminal and visible. For synchronous unknown outcomes, only repeat the exact confirmed GPT/configuration pairs to retrieve the backend receipt; never substitute or refresh configuration IDs. Report every result and never infer workspace-wide completion from partial outcomes.
prepare_gpt_migration_batch
ChatGPTPrepare an immutable manifest of 11–10,000 exact reviewed GPT/configuration pairs. This does not migrate GPTs. Show the complete selected manifest and effects: private plugins owned by original GPT owners; no sharing, installation or Action copying; source editing/sharing/deletion may become locked. Obtain one explicit confirmation bound to the returned digest. Changed selection/configuration requires a new manifest and confirmation.
share_gpt_plugins
ChatGPTShare up to five migrated plugins by replacing their full non-owner audience with a reviewed get_gpt_plugin_sharing plan. Show each exact GPT/plugin, complete resulting recipients/roles and visibility, grants removed or changed, retained ownership/acting-editor access, and access to plugin instructions/files, including every chat-only-to-reader access expansion. Explain that concurrent sharing edits can be overwritten. Obtain the user's exact reply confirm, then pass confirmation=confirm and each unchanged state_token as expected_state, the journal-expanded reviewed_audience, and the journal-generated attempt_id. Preview references point to current_sharing/proposed_sharing; the journal resolves them to complete IDs and roles without retaining display names. Persist the reviewed attempt in the local migration journal before calling, then retain the returned attempt_receipt. A canceled or disconnected call may not deliver a receipt; retain the submitted journal entry as unknown and never replay it. Rechecks before each write, but provides no transactional lock. A prior combined migration/sharing confirmation is sufficient only when fresh previews match the exact pre-migration source, configuration, audience and private management-only destination baseline. Changed or unavailable state requires fresh review and confirmation. Backend authorization applies. Larger confirmed selections can use successive batches of five. Stop further batches on blocked, unavailable or outcome_unknown; never retry automatically. Does not migrate, install, transfer ownership or publish publicly.