Forgejo activitypub API

The activitypub API from Forgejo — 11 operation(s) for activitypub.

OpenAPI Specification

forgejo-activitypub-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: This documentation describes the Forgejo API.
  title: Forgejo activitypub 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: activitypub
paths:
  /activitypub/actor:
    get:
      produces:
      - application/json
      tags:
      - activitypub
      summary: Returns the instance's Actor
      operationId: activitypubInstanceActor
      responses:
        '200':
          $ref: '#/responses/ActivityPub'
  /activitypub/actor/inbox:
    post:
      produces:
      - application/json
      tags:
      - activitypub
      summary: Send to the inbox
      operationId: activitypubInstanceActorInbox
      responses:
        '204':
          $ref: '#/responses/empty'
  /activitypub/actor/outbox:
    post:
      produces:
      - application/ld+json
      tags:
      - activitypub
      summary: Display the outbox (always empty)
      operationId: activitypubInstanceActorOutbox
      responses:
        '200':
          $ref: '#/responses/Outbox'
  /activitypub/repository-id/{repository-id}:
    get:
      produces:
      - application/json
      tags:
      - activitypub
      summary: Returns the Repository actor for a repo
      operationId: activitypubRepository
      parameters:
      - type: integer
        format: int64
        description: repository ID of the repo
        name: repository-id
        in: path
        required: true
      responses:
        '200':
          $ref: '#/responses/ActivityPub'
  /activitypub/repository-id/{repository-id}/inbox:
    post:
      produces:
      - application/json
      tags:
      - activitypub
      summary: Send to the inbox
      operationId: activitypubRepositoryInbox
      parameters:
      - type: integer
        format: int64
        description: repository ID of the repo
        name: repository-id
        in: path
        required: true
      - name: body
        in: body
        schema:
          $ref: '#/definitions/ForgeLike'
      responses:
        '204':
          $ref: '#/responses/empty'
  /activitypub/repository-id/{repository-id}/outbox:
    post:
      produces:
      - application/ld+json
      tags:
      - activitypub
      summary: Display the outbox
      operationId: activitypubRepositoryOutbox
      parameters:
      - type: integer
        format: int64
        description: repository ID of the repo
        name: repository-id
        in: path
        required: true
      responses:
        '200':
          $ref: '#/responses/Outbox'
  /activitypub/user-id/{user-id}:
    get:
      produces:
      - application/json
      tags:
      - activitypub
      summary: Returns the Person actor for a user
      operationId: activitypubPerson
      parameters:
      - type: integer
        format: int64
        description: user ID of the user
        name: user-id
        in: path
        required: true
      responses:
        '200':
          $ref: '#/responses/ActivityPub'
  /activitypub/user-id/{user-id}/activities/{activity-id}:
    get:
      produces:
      - application/json
      tags:
      - activitypub
      summary: Get a specific activity object of the user
      operationId: activitypubPersonActivityNote
      parameters:
      - type: integer
        description: user ID of the user
        name: user-id
        in: path
        required: true
      - type: integer
        description: activity ID of the sought activity
        name: activity-id
        in: path
        required: true
      responses:
        '200':
          $ref: '#/responses/ActivityPub'
  /activitypub/user-id/{user-id}/activities/{activity-id}/activity:
    get:
      produces:
      - application/json
      tags:
      - activitypub
      summary: Get a specific activity of the user
      operationId: activitypubPersonActivity
      parameters:
      - type: integer
        description: user ID of the user
        name: user-id
        in: path
        required: true
      - type: integer
        description: activity ID of the sought activity
        name: activity-id
        in: path
        required: true
      responses:
        '200':
          $ref: '#/responses/ActivityPub'
  /activitypub/user-id/{user-id}/inbox:
    post:
      produces:
      - application/json
      tags:
      - activitypub
      summary: Send to the inbox
      operationId: activitypubPersonInbox
      parameters:
      - type: integer
        format: int64
        description: user ID of the user
        name: user-id
        in: path
        required: true
      responses:
        '202':
          $ref: '#/responses/empty'
  /activitypub/user-id/{user-id}/outbox:
    get:
      produces:
      - application/json
      tags:
      - activitypub
      summary: List the user's recorded activity
      operationId: activitypubPersonFeed
      parameters:
      - type: integer
        description: user ID of the user
        name: user-id
        in: path
        required: true
      responses:
        '200':
          $ref: '#/responses/Outbox'
        '403':
          $ref: '#/responses/forbidden'
definitions:
  APIForbiddenError:
    type: object
    properties:
      message:
        type: string
        x-go-name: Message
      url:
        type: string
        x-go-name: URL
    x-go-package: forgejo.org/services/context
  ForgeLike:
    description: ForgeLike activity data type
    type: object
    x-go-package: forgejo.org/modules/forgefed
  ForgeOutbox:
    description: ActivityStream OrderedCollection of activities
    type: object
    x-go-package: forgejo.org/modules/forgefed
  ActivityPub:
    description: ActivityPub type
    type: object
    properties:
      '@context':
        type: string
        x-go-name: Context
    x-go-package: forgejo.org/modules/structs
responses:
  empty:
    description: APIEmpty is an empty response
  forbidden:
    description: APIForbiddenError is a forbidden error response
    schema:
      $ref: '#/definitions/APIForbiddenError'
  Outbox:
    description: Outbox
    schema:
      $ref: '#/definitions/ForgeOutbox'
  ActivityPub:
    description: ActivityPub
    schema:
      $ref: '#/definitions/ActivityPub'
securityDefinitions:
  AuthorizationHeaderToken:
    description: API tokens must be prepended with "token" followed by a space.
    type: apiKey
    name: Authorization
    in: header
  BasicAuth:
    type: basic
  SudoHeader:
    description: Sudo API request as the user provided as the key. Admin privileges are required.
    type: apiKey
    name: Sudo
    in: header
  SudoParam:
    description: Sudo API request as the user provided as the key. Admin privileges are required.
    type: apiKey
    name: sudo
    in: query
  TOTPHeader:
    description: Must be used in combination with BasicAuth if two-factor authentication is enabled.
    type: apiKey
    name: X-FORGEJO-OTP
    in: header