Skip to main content
The Organizations API allows you to create, manage, and interact with organizations in Gitea. Organizations provide a way to group repositories and users together with team-based permissions.

Organization Object

The Organization object represents an organization in Gitea.
id
integer
required
The unique identifier of the organization
name
string
required
The username of the organization
full_name
string
The full display name of the organization
email
string
The email address of the organization
avatar_url
string
The URL of the organization’s avatar
description
string
The description of the organization
website
string
The website URL of the organization
location
string
The location of the organization
visibility
string
The visibility level of the organization: public, limited, or private
repo_admin_change_team_access
boolean
Whether repository administrators can change team access

List All Organizations

GET /orgs

Get a list of all public organizations

Query Parameters

page
integer
Page number of results to return (1-based)
limit
integer
Page size of results

Example Request

curl -X GET "https://gitea.example.com/api/v1/orgs?page=1&limit=10" \
  -H "accept: application/json"

Response

[
  {
    "id": 1,
    "name": "myorg",
    "full_name": "My Organization",
    "email": "[email protected]",
    "avatar_url": "https://gitea.example.com/avatars/1",
    "description": "A great organization",
    "website": "https://myorg.com",
    "location": "San Francisco, CA",
    "visibility": "public",
    "repo_admin_change_team_access": false
  }
]

Get an Organization

GET /orgs/{org}

Get details about a specific organization

Path Parameters

org
string
required
The name of the organization to retrieve

Example Request

curl -X GET "https://gitea.example.com/api/v1/orgs/myorg" \
  -H "accept: application/json"

Response

{
  "id": 1,
  "name": "myorg",
  "full_name": "My Organization",
  "email": "[email protected]",
  "avatar_url": "https://gitea.example.com/avatars/1",
  "description": "A great organization",
  "website": "https://myorg.com",
  "location": "San Francisco, CA",
  "visibility": "public",
  "repo_admin_change_team_access": false
}

Create an Organization

POST /orgs

Create a new organization

Request Body

username
string
required
Username of the organization (max 40 characters)
full_name
string
The full display name of the organization (max 100 characters)
email
string
The email address of the organization (max 255 characters)
description
string
The description of the organization (max 255 characters)
website
string
The website URL of the organization (max 255 characters)
location
string
The location of the organization (max 50 characters)
visibility
string
default:"public"
Visibility level: public, limited, or private
repo_admin_change_team_access
boolean
default:"false"
Whether repository administrators can change team access

Example Request

curl -X POST "https://gitea.example.com/api/v1/orgs" \
  -H "Authorization: token YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "myorg",
    "full_name": "My Organization",
    "email": "[email protected]",
    "description": "A great organization",
    "website": "https://myorg.com",
    "location": "San Francisco, CA",
    "visibility": "public"
  }'

Response

{
  "id": 1,
  "name": "myorg",
  "full_name": "My Organization",
  "email": "[email protected]",
  "avatar_url": "https://gitea.example.com/avatars/1",
  "description": "A great organization",
  "website": "https://myorg.com",
  "location": "San Francisco, CA",
  "visibility": "public",
  "repo_admin_change_team_access": false
}

Update an Organization

PATCH /orgs/{org}

Update an existing organization’s information

Path Parameters

org
string
required
The name of the organization to update

Request Body

full_name
string
The full display name of the organization
email
string
The email address of the organization
description
string
The description of the organization
website
string
The website URL of the organization
location
string
The location of the organization
visibility
string
Visibility level: public, limited, or private
repo_admin_change_team_access
boolean
Whether repository administrators can change team access

Example Request

curl -X PATCH "https://gitea.example.com/api/v1/orgs/myorg" \
  -H "Authorization: token YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Updated organization description",
    "website": "https://newsite.com"
  }'

Rename an Organization

POST /orgs/{org}/rename

Rename an existing organization

Path Parameters

org
string
required
The current name of the organization

Request Body

new_name
string
required
New username for the organization. This name cannot be in use by any other user.

Example Request

curl -X POST "https://gitea.example.com/api/v1/orgs/myorg/rename" \
  -H "Authorization: token YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"new_name": "neworgname"}'

Delete an Organization

DELETE /orgs/{org}

Delete an organization

Path Parameters

org
string
required
The name of the organization to delete

Example Request

curl -X DELETE "https://gitea.example.com/api/v1/orgs/myorg" \
  -H "Authorization: token YOUR_TOKEN"

Organization Members

List Members

Get all members of an organization

Check Membership

Check if a user is a member

Remove Member

Remove a member from the organization

Public Members

List public members of the organization

List Organization Members

GET /orgs/{org}/members
List all members of an organization. Visibility depends on the requester’s membership status.

Check Organization Membership

GET /orgs/{org}/members/{username}
Check if a user is a member of the organization. Returns 204 if the user is a member, 404 otherwise.

Remove Organization Member

DELETE /orgs/{org}/members/{username}
Remove a member from the organization. Requires owner permissions.

List Public Members

GET /orgs/{org}/public_members
List all public members of an organization.

Publicize Membership

PUT /orgs/{org}/public_members/{username}
Make a member’s membership public.

Conceal Membership

DELETE /orgs/{org}/public_members/{username}
Make a member’s membership private.

User’s Organizations

List Current User’s Organizations

GET /user/orgs

List all organizations that the authenticated user is a member of
curl -X GET "https://gitea.example.com/api/v1/user/orgs" \
  -H "Authorization: token YOUR_TOKEN" \
  -H "accept: application/json"

List User’s Organizations

GET /users/{username}/orgs

List all organizations that a specific user is a member of
curl -X GET "https://gitea.example.com/api/v1/users/john/orgs" \
  -H "accept: application/json"

Organization Permissions

GET /users/{username}/orgs/{org}/permissions

Get a user’s permissions in an organization

Response Fields

is_owner
boolean
Whether the user is an owner of the organization
is_admin
boolean
Whether the user is an admin of the organization
can_write
boolean
Whether the user can write to the organization
can_read
boolean
Whether the user can read the organization
can_create_repository
boolean
Whether the user can create repositories in the organization

Example Request

curl -X GET "https://gitea.example.com/api/v1/users/john/orgs/myorg/permissions" \
  -H "Authorization: token YOUR_TOKEN" \
  -H "accept: application/json"

Response

{
  "is_owner": true,
  "is_admin": true,
  "can_write": true,
  "can_read": true,
  "can_create_repository": true
}

Activity Feeds

GET /orgs/{org}/activities/feeds

List an organization’s activity feeds

Path Parameters

org
string
required
The name of the organization

Query Parameters

date
string
The date of the activities to be found (format: YYYY-MM-DD)
page
integer
Page number of results to return (1-based)
limit
integer
Page size of results

Example Request

curl -X GET "https://gitea.example.com/api/v1/orgs/myorg/activities/feeds?date=2026-03-10" \
  -H "Authorization: token YOUR_TOKEN" \
  -H "accept: application/json"

Build docs developers (and LLMs) love