Forgejo organization API

The organization API from Forgejo — 42 operation(s) for organization.

Operations 69

POST /org/{org}/repos Create a repository in an organization #
GET /orgs List all organizations #
POST /orgs Create an organization #
GET /orgs/{org} Get an organization #
DELETE /orgs/{org} Delete an organization #
PATCH /orgs/{org} Edit an organization #
GET /orgs/{org}/actions/runners Get the organization's runners #
POST /orgs/{org}/actions/runners Register a new organization-level runner #
GET /orgs/{org}/actions/runners/jobs Search for organization's action jobs according filter conditions #
GET /orgs/{org}/actions/runners/registration-token Get the organization's runner registration token #
GET /orgs/{org}/actions/runners/{runner_id} Get a particular runner that belongs to the organization #
DELETE /orgs/{org}/actions/runners/{runner_id} Delete a particular runner that belongs to the organization #
GET /orgs/{org}/actions/secrets List actions secrets of an organization #
PUT /orgs/{org}/actions/secrets/{secretname} Create or Update a secret value in an organization #
DELETE /orgs/{org}/actions/secrets/{secretname} Delete a secret in an organization #
GET /orgs/{org}/actions/variables List variables of an organization #
GET /orgs/{org}/actions/variables/{variablename} Get organization's variable by name #
PUT /orgs/{org}/actions/variables/{variablename} Update variable in organization #
POST /orgs/{org}/actions/variables/{variablename} Create a new variable in organization #
DELETE /orgs/{org}/actions/variables/{variablename} Delete organization's variable by name #
GET /orgs/{org}/activities/feeds List an organization's activity feeds #
POST /orgs/{org}/avatar Update an organization's avatar #
DELETE /orgs/{org}/avatar Delete an organization's avatar. It will be replaced by a default one #
PUT /orgs/{org}/block/{username} Blocks a user from the organization #
GET /orgs/{org}/hooks List an organization's webhooks #
POST /orgs/{org}/hooks Create a hook #
GET /orgs/{org}/hooks/{id} Get a hook #
DELETE /orgs/{org}/hooks/{id} Delete a hook #
PATCH /orgs/{org}/hooks/{id} Update a hook #
GET /orgs/{org}/labels List an organization's labels #
POST /orgs/{org}/labels Create a label for an organization #
GET /orgs/{org}/labels/{id} Get a single label #
DELETE /orgs/{org}/labels/{id} Delete a label #
PATCH /orgs/{org}/labels/{id} Update a label #
GET /orgs/{org}/list_blocked List the organization's blocked users #
GET /orgs/{org}/members List an organization's members #
GET /orgs/{org}/members/{username} Check if a user is a member of an organization #
DELETE /orgs/{org}/members/{username} Remove a member from an organization #
GET /orgs/{org}/public_members List an organization's public members #
GET /orgs/{org}/public_members/{username} Check if a user is a public member of an organization #
PUT /orgs/{org}/public_members/{username} Publicize a user's membership #
DELETE /orgs/{org}/public_members/{username} Conceal a user's membership #
GET /orgs/{org}/quota Get quota information for an organization #
GET /orgs/{org}/quota/artifacts List the artifacts affecting the organization's quota #
GET /orgs/{org}/quota/attachments List the attachments affecting the organization's quota #
GET /orgs/{org}/quota/check Check if the organization is over quota for a given subject #
GET /orgs/{org}/quota/packages List the packages affecting the organization's quota #
POST /orgs/{org}/rename Rename an organization #
GET /orgs/{org}/repos List an organization's repos #
POST /orgs/{org}/repos Create a repository in an organization #
GET /orgs/{org}/teams List an organization's teams #
POST /orgs/{org}/teams Create a team #
GET /orgs/{org}/teams/search Search for teams within an organization #
PUT /orgs/{org}/unblock/{username} Unblock a user from the organization #
GET /teams/{id} Get a team #
DELETE /teams/{id} Delete a team #
PATCH /teams/{id} Edit a team #
GET /teams/{id}/activities/feeds List a team's activity feeds #
GET /teams/{id}/members List a team's members #
GET /teams/{id}/members/{username} List a particular member of team #
PUT /teams/{id}/members/{username} Add a team member #
DELETE /teams/{id}/members/{username} Remove a team member #
GET /teams/{id}/repos List a team's repos #
GET /teams/{id}/repos/{org}/{repo} List a particular repo of team #
PUT /teams/{id}/repos/{org}/{repo} Add a repository to a team #
DELETE /teams/{id}/repos/{org}/{repo} Remove a repository from a team #
GET /user/orgs List the current user's organizations #
GET /users/{username}/orgs List a user's organizations #
GET /users/{username}/orgs/{org}/permissions Get user permissions in organization #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/forgejo-organization-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

forgejo-organization-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: This documentation describes the Forgejo API.
  title: Forgejo activitypub Organization API
  license:
    name: This file is distributed under the MIT license for the purpose of interoperability
    url: http://opensource.org/licenses/MIT
  version: 16.0.0-dev-465-4b83448b7d+gitea-1.22.0
servers:
- url: /api/v1
security:
- BasicAuth: []
- AuthorizationHeaderToken: []
- SudoParam: []
- SudoHeader: []
- TOTPHeader: []
tags:
- name: organization
paths:
  /org/{org}/repos:
    post:
      tags:
      - organization
      summary: Create a repository in an organization
      operationId: createOrgRepoDeprecated
      deprecated: true
      parameters:
      - description: name of organization
        name: org
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          $ref: '#/components/responses/Repository'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
        '422':
          $ref: '#/components/responses/validationError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRepoOption'
  /orgs:
    get:
      tags:
      - organization
      summary: List all organizations
      operationId: orgGetAll
      parameters:
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/OrganizationList'
    post:
      tags:
      - organization
      summary: Create an organization
      operationId: orgCreate
      responses:
        '201':
          $ref: '#/components/responses/Organization'
        '403':
          $ref: '#/components/responses/forbidden'
        '422':
          $ref: '#/components/responses/validationError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrgOption'
        required: true
  /orgs/{org}:
    get:
      tags:
      - organization
      summary: Get an organization
      operationId: orgGet
      parameters:
      - description: name of the organization to get
        name: org
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Organization'
        '404':
          $ref: '#/components/responses/notFound'
    delete:
      tags:
      - organization
      summary: Delete an organization
      operationId: orgDelete
      parameters:
      - description: organization that is to be deleted
        name: org
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          $ref: '#/components/responses/empty'
        '404':
          $ref: '#/components/responses/notFound'
    patch:
      tags:
      - organization
      summary: Edit an organization
      operationId: orgEdit
      parameters:
      - description: name of the organization to edit
        name: org
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Organization'
        '404':
          $ref: '#/components/responses/notFound'
        '422':
          $ref: '#/components/responses/error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditOrgOption'
        required: true
  /orgs/{org}/actions/runners:
    get:
      tags:
      - organization
      summary: Get the organization's runners
      operationId: getOrgRunners
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: whether to include all visible runners (true) or only those that are directly owned by the organization (false)
        name: visible
        in: query
        schema:
          type: boolean
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/ActionRunnerList'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
    post:
      tags:
      - organization
      summary: Register a new organization-level runner
      operationId: registerOrgRunner
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          $ref: '#/components/responses/RegisterRunnerResponse'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/notFound'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterRunnerOptions'
  /orgs/{org}/actions/runners/jobs:
    get:
      tags:
      - organization
      summary: Search for organization's action jobs according filter conditions
      operationId: orgSearchRunJobs
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: a comma separated list of run job labels to search for
        name: labels
        in: query
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/RunJobList'
        '403':
          $ref: '#/components/responses/forbidden'
  /orgs/{org}/actions/runners/registration-token:
    get:
      description: 'This operation has been deprecated in Forgejo 15. Use the web UI or [`/orgs/{org}/actions/runners`](#/organization/registerOrgRunner) instead.

        '
      tags:
      - organization
      summary: Get the organization's runner registration token
      operationId: orgGetRunnerRegistrationToken
      deprecated: true
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/RegistrationToken'
  /orgs/{org}/actions/runners/{runner_id}:
    get:
      tags:
      - organization
      summary: Get a particular runner that belongs to the organization
      operationId: getOrgRunner
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: ID of the runner
        name: runner_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/ActionRunner'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
    delete:
      tags:
      - organization
      summary: Delete a particular runner that belongs to the organization
      operationId: deleteOrgRunner
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: ID of the runner
        name: runner_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: runner has been deleted
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
  /orgs/{org}/actions/secrets:
    get:
      tags:
      - organization
      summary: List actions secrets of an organization
      operationId: orgListActionsSecrets
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/SecretList'
        '404':
          $ref: '#/components/responses/notFound'
  /orgs/{org}/actions/secrets/{secretname}:
    put:
      tags:
      - organization
      summary: Create or Update a secret value in an organization
      operationId: updateOrgSecret
      parameters:
      - description: name of organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: name of the secret
        name: secretname
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: response when creating a secret
        '204':
          description: response when updating a secret
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrUpdateSecretOption'
    delete:
      tags:
      - organization
      summary: Delete a secret in an organization
      operationId: deleteOrgSecret
      parameters:
      - description: name of organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: name of the secret
        name: secretname
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: delete one secret of the organization
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
  /orgs/{org}/actions/variables:
    get:
      tags:
      - organization
      summary: List variables of an organization
      operationId: getOrgVariablesList
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/VariableList'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
  /orgs/{org}/actions/variables/{variablename}:
    get:
      tags:
      - organization
      summary: Get organization's variable by name
      operationId: getOrgVariable
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: name of the variable
        name: variablename
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/ActionVariable'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
    put:
      tags:
      - organization
      summary: Update variable in organization
      operationId: updateOrgVariable
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: name of the variable
        name: variablename
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: response when updating an org-level variable
        '204':
          description: response when updating an org-level variable
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateVariableOption'
    post:
      tags:
      - organization
      summary: Create a new variable in organization
      operationId: createOrgVariable
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: name of the variable
        name: variablename
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: response when creating an org-level variable
        '204':
          description: response when creating an org-level variable
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVariableOption'
    delete:
      tags:
      - organization
      summary: Delete organization's variable by name
      operationId: deleteOrgVariable
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: name of the variable
        name: variablename
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: response when deleting a variable
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
  /orgs/{org}/activities/feeds:
    get:
      tags:
      - organization
      summary: List an organization's activity feeds
      operationId: orgListActivityFeeds
      parameters:
      - description: name of the org
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: the date of the activities to be found
        name: date
        in: query
        schema:
          type: string
          format: date
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/ActivityFeedsList'
        '404':
          $ref: '#/components/responses/notFound'
  /orgs/{org}/avatar:
    post:
      tags:
      - organization
      summary: Update an organization's avatar
      operationId: orgUpdateAvatar
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          $ref: '#/components/responses/empty'
        '404':
          $ref: '#/components/responses/notFound'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateUserAvatarOption'
          text/plain:
            schema:
              $ref: '#/components/schemas/UpdateUserAvatarOption'
    delete:
      tags:
      - organization
      summary: Delete an organization's avatar. It will be replaced by a default one
      operationId: orgDeleteAvatar
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          $ref: '#/components/responses/empty'
        '404':
          $ref: '#/components/responses/notFound'
  /orgs/{org}/block/{username}:
    put:
      tags:
      - organization
      summary: Blocks a user from the organization
      operationId: orgBlockUser
      parameters:
      - description: name of the org
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: username of the user
        name: username
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          $ref: '#/components/responses/empty'
        '404':
          $ref: '#/components/responses/notFound'
        '422':
          $ref: '#/components/responses/validationError'
  /orgs/{org}/hooks:
    get:
      tags:
      - organization
      summary: List an organization's webhooks
      operationId: orgListHooks
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/HookListWithoutPagination'
        '404':
          $ref: '#/components/responses/notFound'
    post:
      tags:
      - organization
      summary: Create a hook
      operationId: orgCreateHook
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          $ref: '#/components/responses/Hook'
        '404':
          $ref: '#/components/responses/notFound'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateHookOption'
        required: true
  /orgs/{org}/hooks/{id}:
    get:
      tags:
      - organization
      summary: Get a hook
      operationId: orgGetHook
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: id of the hook to get
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/Hook'
        '404':
          $ref: '#/components/responses/notFound'
    delete:
      tags:
      - organization
      summary: Delete a hook
      operationId: orgDeleteHook
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: id of the hook to delete
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          $ref: '#/components/responses/empty'
        '404':
          $ref: '#/components/responses/notFound'
    patch:
      tags:
      - organization
      summary: Update a hook
      operationId: orgEditHook
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: id of the hook to update
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/Hook'
        '404':
          $ref: '#/components/responses/notFound'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditHookOption'
  /orgs/{org}/labels:
    get:
      tags:
      - organization
      summary: List an organization's labels
      operationId: orgListLabels
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: 'Specifies the sorting method: mostissues, leastissues, or reversealphabetically.'
        name: sort
        in: query
        schema:
          type: string
          enum:
          - mostissues
          - leastissues
          - reversealphabetically
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/LabelList'
        '404':
          $ref: '#/components/responses/notFound'
    post:
      tags:
      - organization
      summary: Create a label for an organization
      operationId: orgCreateLabel
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          $ref: '#/components/responses/Label'
        '404':
          $ref: '#/components/responses/notFound'
        '422':
          $ref: '#/components/responses/validationError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateLabelOption'
  /orgs/{org}/labels/{id}:
    get:
      tags:
      - organization
      summary: Get a single label
      operationId: orgGetLabel
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: id of the label to get
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/Label'
        '404':
          $ref: '#/components/responses/notFound'
    delete:
      tags:
      - organization
      summary: Delete a label
      operationId: orgDeleteLabel
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: id of the label to delete
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          $ref: '#/components/responses/empty'
        '404':
          $ref: '#/components/responses/notFound'
    patch:
      tags:
      - organization
      summary: Update a label
      operationId: orgEditLabel
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: id of the label to edit
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/Label'
        '404':
          $ref: '#/components/responses/notFound'
        '422':
          $ref: '#/components/responses/validationError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditLabelOption'
  /orgs/{org}/list_blocked:
    get:
      tags:
      - organization
      summary: List the organization's blocked users
      operationId: orgListBlockedUsers
      parameters:
      - description: name of the org
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/BlockedUserList'
  /orgs/{org}/members:
    get:
      tags:
      - organization
      summary: List an organization's members
      operationId: orgListMembers
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/UserList'
        '404':
          $ref: '#/components/responses/notFound'
  /orgs/{org}/members/{username}:
    get:
      tags:
      - organization
      summary: Check if a user is a member of an organization
      operationId: orgIsMember
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: username of the user
        name: username
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: user is a member
        '303':
          description: redirection to /orgs/{org}/public_members/{username}
        '404':
          description: user is not a member
    delete:
      tags:
      - organization
      summary: Remove a member from an organization
      operationId: orgDeleteMember
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: username of the user
        name: username
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: member removed
        '404':
          $ref: '#/components/responses/notFound'
  /orgs/{org}/public_members:
    get:
      tags:
      - organization
      summary: List an organization's public members
      operationId: orgListPublicMembers
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/UserList'
        '404':
          $ref: '#/components/responses/notFound'
  /orgs/{org}/public_members/{username}:
    get:
      tags:
      - organization
      summary: Check if a user is a public member of an organization
      operationId: orgIsPublicMember
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: username of the user
        name: username
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: user is a public member
        '404':
          description: user is not a public member
    put:
      tags:
      - organization
      summary: Publicize a user's membership
      operationId: orgPublicizeMember
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: username of the user
        name: username
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: membership publicized
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
    delete:
      tags:
      - organization
      summary: Conceal a user's membership
      operationId: orgConcealMember
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: username of the user
        name: username
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          $ref: '#/components/responses/empty'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
  /orgs/{org}/quota:
    get:
      tags:
      - organization
      summary: Get quota information for an organization
      operationId: orgGetQuota
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/QuotaInfo'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
  /orgs/{org}/quota/artifacts:
    get:
      tags:
      - organization
      summary: List the artifacts affecting the organization's quota
      operationId: orgListQuotaArtifacts
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/QuotaUsedArtifactList'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
  /orgs/{org}/quota/attachments:
    get:
      tags:
      - organization
      summary: List the attachments affecting the organization's quota
      operationId: orgListQuotaAttachments
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/QuotaUsedAttachmentList'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
  /orgs/{org}/quota/check:
    get:
      tags:
      - organization
      summary: Check if the organization is over quota for a given subject
      operationId: orgCheckQuota
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: subject of the quota
        name: subject
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns true if the action is accepted.
          content:
            application/json:
              schema:
                type: boolean
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
        '422':
          $ref: '#/components/responses/validationError'
  /orgs/{org}/quota/packages:
    get:
      tags:
      - organization
      summary: List the packages affecting the organization's quota
      operationId: orgListQuotaPackages
      parameters:
      - description: name of the organization
        name: org
        in: path
        required: true
        schema:
          type: string
      - description: page number of results t

# --- truncated at 32 KB (108 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/forgejo/refs/heads/main/openapi/forgejo-organization-api-openapi.yml