Forgejo user API
The user API from Forgejo — 54 operation(s) for user.
The user API from Forgejo — 54 operation(s) for user.
swagger: '2.0'
info:
description: This documentation describes the Forgejo API.
title: Forgejo activitypub user 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
basePath: /api/v1
schemes:
- https
- http
consumes:
- application/json
- text/plain
produces:
- application/json
- text/html
security:
- BasicAuth: []
- AuthorizationHeaderToken: []
- SudoParam: []
- SudoHeader: []
- TOTPHeader: []
tags:
- name: user
paths:
/user:
get:
produces:
- application/json
tags:
- user
summary: Get the authenticated user
operationId: userGetCurrent
responses:
'200':
$ref: '#/responses/User'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
/user/actions/runners:
get:
produces:
- application/json
tags:
- user
summary: Get the user's runners
operationId: getUserRunners
parameters:
- type: boolean
description: whether to include all visible runners (true) or only those that are directly owned by the user (false)
name: visible
in: query
- type: integer
description: page number of results to return (1-based)
name: page
in: query
- type: integer
description: page size of results
name: limit
in: query
responses:
'200':
$ref: '#/responses/ActionRunnerList'
'400':
$ref: '#/responses/error'
'401':
$ref: '#/responses/unauthorized'
'404':
$ref: '#/responses/notFound'
post:
consumes:
- application/json
produces:
- application/json
tags:
- user
summary: Register a new user-level runner
operationId: registerUserRunner
parameters:
- name: body
in: body
schema:
$ref: '#/definitions/RegisterRunnerOptions'
responses:
'201':
$ref: '#/responses/RegisterRunnerResponse'
'400':
$ref: '#/responses/error'
'401':
$ref: '#/responses/unauthorized'
'404':
$ref: '#/responses/notFound'
/user/actions/runners/jobs:
get:
produces:
- application/json
tags:
- user
summary: Search for user's action jobs according filter conditions
operationId: userSearchRunJobs
parameters:
- type: string
description: a comma separated list of run job labels to search for
name: labels
in: query
responses:
'200':
$ref: '#/responses/RunJobList'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
/user/actions/runners/registration-token:
get:
description: 'This operation has been deprecated in Forgejo 15. Use the web UI or [`/user/actions/runners`](#/user/registerUserRunner) instead.
'
produces:
- application/json
tags:
- user
summary: Get the user's runner registration token
operationId: userGetRunnerRegistrationToken
deprecated: true
responses:
'200':
$ref: '#/responses/RegistrationToken'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
/user/actions/runners/{runner_id}:
get:
produces:
- application/json
tags:
- user
summary: Get a particular runner that belongs to the user
operationId: getUserRunner
parameters:
- type: string
description: ID of the runner
name: runner_id
in: path
required: true
responses:
'200':
$ref: '#/responses/ActionRunner'
'400':
$ref: '#/responses/error'
'401':
$ref: '#/responses/unauthorized'
'404':
$ref: '#/responses/notFound'
delete:
produces:
- application/json
tags:
- user
summary: Delete a particular user-level runner
operationId: deleteUserRunner
parameters:
- type: string
description: ID of the runner
name: runner_id
in: path
required: true
responses:
'204':
description: runner has been deleted
'400':
$ref: '#/responses/error'
'401':
$ref: '#/responses/unauthorized'
'404':
$ref: '#/responses/notFound'
/user/actions/secrets/{secretname}:
put:
consumes:
- application/json
produces:
- application/json
tags:
- user
summary: Create or Update a secret value in a user scope
operationId: updateUserSecret
parameters:
- type: string
description: name of the secret
name: secretname
in: path
required: true
- name: body
in: body
schema:
$ref: '#/definitions/CreateOrUpdateSecretOption'
responses:
'201':
description: response when creating a secret
'204':
description: response when updating a secret
'400':
$ref: '#/responses/error'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
delete:
consumes:
- application/json
produces:
- application/json
tags:
- user
summary: Delete a secret in a user scope
operationId: deleteUserSecret
parameters:
- type: string
description: name of the secret
name: secretname
in: path
required: true
responses:
'204':
description: delete one secret of the user
'400':
$ref: '#/responses/error'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
/user/actions/variables:
get:
produces:
- application/json
tags:
- user
summary: Get the user-level list of variables which is created by current doer
operationId: getUserVariablesList
parameters:
- type: integer
description: page number of results to return (1-based)
name: page
in: query
- type: integer
description: page size of results
name: limit
in: query
responses:
'200':
$ref: '#/responses/VariableList'
'400':
$ref: '#/responses/error'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
/user/actions/variables/{variablename}:
get:
produces:
- application/json
tags:
- user
summary: Get a user-level variable which is created by current doer
operationId: getUserVariable
parameters:
- type: string
description: name of the variable
name: variablename
in: path
required: true
responses:
'200':
$ref: '#/responses/ActionVariable'
'400':
$ref: '#/responses/error'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
put:
consumes:
- application/json
produces:
- application/json
tags:
- user
summary: Update a user-level variable which is created by current doer
operationId: updateUserVariable
parameters:
- type: string
description: name of the variable
name: variablename
in: path
required: true
- name: body
in: body
schema:
$ref: '#/definitions/UpdateVariableOption'
responses:
'201':
description: response when updating a variable
'204':
description: response when updating a variable
'400':
$ref: '#/responses/error'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
post:
consumes:
- application/json
produces:
- application/json
tags:
- user
summary: Create a user-level variable
operationId: createUserVariable
parameters:
- type: string
description: name of the variable
name: variablename
in: path
required: true
- name: body
in: body
schema:
$ref: '#/definitions/CreateVariableOption'
responses:
'201':
description: response when creating a variable
'204':
description: response when creating a variable
'400':
$ref: '#/responses/error'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
delete:
produces:
- application/json
tags:
- user
summary: Delete a user-level variable which is created by current doer
operationId: deleteUserVariable
parameters:
- type: string
description: name of the variable
name: variablename
in: path
required: true
responses:
'201':
description: response when deleting a variable
'204':
description: response when deleting a variable
'400':
$ref: '#/responses/error'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
/user/activitypub/follow:
post:
tags:
- user
summary: Follow a remote activitypub account
operationId: userCurrentActivityPubFollow
parameters:
- name: body
in: body
schema:
$ref: '#/definitions/APRemoteFollowOption'
responses:
'204':
$ref: '#/responses/empty'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
/user/applications/oauth2:
get:
produces:
- application/json
tags:
- user
summary: List the authenticated user's oauth2 applications
operationId: userGetOAuth2Applications
parameters:
- type: integer
description: page number of results to return (1-based)
name: page
in: query
- type: integer
description: page size of results
name: limit
in: query
responses:
'200':
$ref: '#/responses/OAuth2ApplicationList'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
post:
produces:
- application/json
tags:
- user
summary: Creates a new OAuth2 application
operationId: userCreateOAuth2Application
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/CreateOAuth2ApplicationOptions'
responses:
'201':
$ref: '#/responses/OAuth2Application'
'400':
$ref: '#/responses/error'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
/user/applications/oauth2/{id}:
get:
produces:
- application/json
tags:
- user
summary: Get an OAuth2 application
operationId: userGetOAuth2Application
parameters:
- type: integer
format: int64
description: Application ID to be found
name: id
in: path
required: true
responses:
'200':
$ref: '#/responses/OAuth2Application'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
delete:
produces:
- application/json
tags:
- user
summary: Delete an OAuth2 application
operationId: userDeleteOAuth2Application
parameters:
- type: integer
format: int64
description: token to be deleted
name: id
in: path
required: true
responses:
'204':
$ref: '#/responses/empty'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
patch:
produces:
- application/json
tags:
- user
summary: Update an OAuth2 application, this includes regenerating the client secret
operationId: userUpdateOAuth2Application
parameters:
- type: integer
format: int64
description: application to be updated
name: id
in: path
required: true
- name: body
in: body
required: true
schema:
$ref: '#/definitions/CreateOAuth2ApplicationOptions'
responses:
'200':
$ref: '#/responses/OAuth2Application'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
/user/avatar:
post:
produces:
- application/json
tags:
- user
summary: Update avatar of the current user
operationId: userUpdateAvatar
parameters:
- name: body
in: body
schema:
$ref: '#/definitions/UpdateUserAvatarOption'
responses:
'204':
$ref: '#/responses/empty'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
delete:
produces:
- application/json
tags:
- user
summary: Delete avatar of the current user. It will be replaced by a default one
operationId: userDeleteAvatar
responses:
'204':
$ref: '#/responses/empty'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
/user/block/{username}:
put:
produces:
- application/json
tags:
- user
summary: Blocks a user from the doer
operationId: userBlockUser
parameters:
- type: string
description: username of the user
name: username
in: path
required: true
responses:
'204':
$ref: '#/responses/empty'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
'422':
$ref: '#/responses/validationError'
/user/emails:
get:
produces:
- application/json
tags:
- user
summary: List all email addresses of the current user
operationId: userListEmails
responses:
'200':
$ref: '#/responses/EmailList'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
post:
produces:
- application/json
tags:
- user
summary: Add an email addresses to the current user's account
operationId: userAddEmail
parameters:
- name: body
in: body
schema:
$ref: '#/definitions/CreateEmailOption'
responses:
'201':
$ref: '#/responses/EmailList'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'422':
$ref: '#/responses/validationError'
delete:
produces:
- application/json
tags:
- user
summary: Delete email addresses from the current user's account
operationId: userDeleteEmail
parameters:
- name: body
in: body
schema:
$ref: '#/definitions/DeleteEmailOption'
responses:
'204':
$ref: '#/responses/empty'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
/user/followers:
get:
produces:
- application/json
tags:
- user
summary: List the authenticated user's followers
operationId: userCurrentListFollowers
parameters:
- type: integer
description: page number of results to return (1-based)
name: page
in: query
- type: integer
description: page size of results
name: limit
in: query
responses:
'200':
$ref: '#/responses/UserList'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
/user/following:
get:
produces:
- application/json
tags:
- user
summary: List the users that the authenticated user is following
operationId: userCurrentListFollowing
parameters:
- type: integer
description: page number of results to return (1-based)
name: page
in: query
- type: integer
description: page size of results
name: limit
in: query
responses:
'200':
$ref: '#/responses/UserList'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
/user/following/{username}:
get:
tags:
- user
summary: Check whether a user is followed by the authenticated user
operationId: userCurrentCheckFollowing
parameters:
- type: string
description: username of followed user
name: username
in: path
required: true
responses:
'204':
$ref: '#/responses/empty'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
put:
tags:
- user
summary: Follow a user
operationId: userCurrentPutFollow
parameters:
- type: string
description: username of user to follow
name: username
in: path
required: true
responses:
'204':
$ref: '#/responses/empty'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
delete:
tags:
- user
summary: Unfollow a user
operationId: userCurrentDeleteFollow
parameters:
- type: string
description: username of user to unfollow
name: username
in: path
required: true
responses:
'204':
$ref: '#/responses/empty'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
/user/gpg_key_token:
get:
produces:
- text/plain
tags:
- user
summary: Get a Token to verify
operationId: getVerificationToken
responses:
'200':
$ref: '#/responses/string'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
/user/gpg_key_verify:
post:
consumes:
- application/json
produces:
- application/json
tags:
- user
summary: Verify a GPG key
operationId: userVerifyGPGKey
parameters:
- name: body
in: body
schema:
$ref: '#/definitions/VerifyGPGKeyOption'
responses:
'201':
$ref: '#/responses/GPGKey'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
'422':
$ref: '#/responses/validationError'
/user/gpg_keys:
get:
produces:
- application/json
tags:
- user
summary: List the authenticated user's GPG keys
operationId: userCurrentListGPGKeys
parameters:
- type: integer
description: page number of results to return (1-based)
name: page
in: query
- type: integer
description: page size of results
name: limit
in: query
responses:
'200':
$ref: '#/responses/GPGKeyList'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
post:
consumes:
- application/json
produces:
- application/json
tags:
- user
summary: Add a GPG public key to current user's account
operationId: userCurrentPostGPGKey
parameters:
- name: Form
in: body
schema:
$ref: '#/definitions/CreateGPGKeyOption'
responses:
'201':
$ref: '#/responses/GPGKey'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
'422':
$ref: '#/responses/validationError'
/user/gpg_keys/{id}:
get:
produces:
- application/json
tags:
- user
summary: Get a GPG key
operationId: userCurrentGetGPGKey
parameters:
- type: integer
format: int64
description: id of key to get
name: id
in: path
required: true
responses:
'200':
$ref: '#/responses/GPGKey'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
delete:
produces:
- application/json
tags:
- user
summary: Remove a GPG public key from current user's account
operationId: userCurrentDeleteGPGKey
parameters:
- type: integer
format: int64
description: id of key to delete
name: id
in: path
required: true
responses:
'204':
$ref: '#/responses/empty'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
/user/hooks:
get:
produces:
- application/json
tags:
- user
summary: List the authenticated user's webhooks
operationId: userListHooks
parameters:
- type: integer
description: page number of results to return (1-based)
name: page
in: query
- type: integer
description: page size of results
name: limit
in: query
responses:
'200':
$ref: '#/responses/HookListWithoutPagination'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
post:
consumes:
- application/json
produces:
- application/json
tags:
- user
summary: Create a hook
operationId: userCreateHook
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/CreateHookOption'
responses:
'201':
$ref: '#/responses/Hook'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
/user/hooks/{id}:
get:
produces:
- application/json
tags:
- user
summary: Get a hook
operationId: userGetHook
parameters:
- type: integer
format: int64
description: id of the hook to get
name: id
in: path
required: true
responses:
'200':
$ref: '#/responses/Hook'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
delete:
produces:
- application/json
tags:
- user
summary: Delete a hook
operationId: userDeleteHook
parameters:
- type: integer
format: int64
description: id of the hook to delete
name: id
in: path
required: true
responses:
'204':
$ref: '#/responses/empty'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
patch:
consumes:
- application/json
produces:
- application/json
tags:
- user
summary: Update a hook
operationId: userEditHook
parameters:
- type: integer
format: int64
description: id of the hook to update
name: id
in: path
required: true
- name: body
in: body
schema:
$ref: '#/definitions/EditHookOption'
responses:
'200':
$ref: '#/responses/Hook'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
/user/keys:
get:
produces:
- application/json
tags:
- user
summary: List the authenticated user's public keys
operationId: userCurrentListKeys
parameters:
- type: string
description: fingerprint of the key
name: fingerprint
in: query
- type: integer
description: page number of results to return (1-based)
name: page
in: query
- type: integer
description: page size of results
name: limit
in: query
responses:
'200':
$ref: '#/responses/PublicKeyList'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
post:
consumes:
- application/json
produces:
- application/json
tags:
- user
summary: Create a public key
operationId: userCurrentPostKey
parameters:
- name: body
in: body
schema:
$ref: '#/definitions/CreateKeyOption'
responses:
'201':
$ref: '#/responses/PublicKey'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'422':
$ref: '#/responses/validationError'
/user/keys/{id}:
get:
produces:
- application/json
tags:
- user
summary: Get a public key
operationId: userCurrentGetKey
parameters:
- type: integer
format: int64
description: id of key to get
name: id
in: path
required: true
responses:
'200':
$ref: '#/responses/PublicKey'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
delete:
produces:
- application/json
tags:
- user
summary: Delete a public key
operationId: userCurrentDeleteKey
parameters:
- type: integer
format: int64
description: id of key to delete
name: id
in: path
required: true
responses:
'204':
$ref: '#/responses/empty'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
/user/list_blocked:
get:
produces:
- application/json
tags:
- user
summary: List the authenticated user's blocked users
operationId: userListBlockedUsers
parameters:
- type: integer
description: page number of results to return (1-based)
name: page
in: query
- type: integer
description: page size of results
name: limit
in: query
responses:
'200':
$ref: '#/responses/BlockedUserList'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
/user/quota:
get:
produces:
- application/json
tags:
- user
summary: Get quota information for the authenticated user
operationId: userGetQuota
responses:
'200':
$ref: '#/responses/QuotaInfo'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
/user/quota/artifacts:
get:
produces:
- application/json
tags:
- user
summary: List the artifacts affecting the authenticated user's quota
operationId: userListQuotaArtifacts
parameters:
- type: integer
description: page number of results to return (1-based)
name: page
in: query
- type: integer
description: page size of results
name: limit
in: query
responses:
'200':
$ref: '#/responses/QuotaUsedArtifactList'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
/user/quota/attachments:
get:
produces:
- application/json
tags:
- user
summary: List the attachments affecting the authenticated user's quota
operationId: userListQuotaAttachments
parameters:
- type: integer
description: page number of results to return (1-based)
name: page
in: query
- type: integer
description: page size of results
name: limit
in: query
responses:
'200':
$ref: '#/responses/QuotaUsedAttachmentList'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
/user/quota/check:
get:
produces:
- application/json
tags:
- user
summary: Check if the authenticated user is over quota for a given subject
operationId: userCheckQuota
parameters:
- type: string
description: subject of the quota
name: subject
in: query
required: true
responses:
'200':
description: Returns true if the action is accepted.
schema:
type: boolean
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'422':
$ref: '#/responses/validationError'
/user/quota/packages:
get:
produces:
- application/json
tags:
- user
summary: List the packages affecting the authenticated user's quota
operationId: userListQuotaPackages
parameters:
- type: integer
description: page number of results to return (1-based)
name: page
in: query
- type: integer
description: page size of results
name: limit
in: query
responses:
'200':
$ref: '#/responses/QuotaUsedPackageList'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
/user/repos:
get:
produces:
- application/json
tags:
- user
summary: List the repos that the authenticated user owns
operationId: userCurrentListRepos
parameters:
- type: integer
description: page number of results to return (1-based)
name: page
in: query
- type: integer
description: page size of results
name: limit
in: query
- enum:
- name
- id
- newest
- oldest
- recentupdate
- leastupdate
- reversealphabetically
- alphabetically
- reversesize
- size
- reversegitsize
- gitsize
- reverselfssize
- lfssize
- moststars
- feweststars
- mostforks
- fewestforks
type: string
description: order the repositories
name: order_by
in: query
responses:
'200':
$ref: '#/responses/RepositoryList'
'401':
$ref: '#/responses/unauthorized'
'403':
$ref: '#/responses/forbidden'
'422':
$ref:
# --- truncated at 32 KB (111 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/forgejo/refs/heads/main/openapi/forgejo-user-api-openapi.yml