openapi: 3.0.3
info:
  title: 'The Forge API Documentation'
  description: 'The greatest resource available for Single Player Tarkov modifications. Where modding legends are made. Discover powerful tools, expert-written guides, and exclusive mods. Craft your vision. Transform the game.'
  version: 1.0.0
servers:
  -
    url: 'https://forge.sp-tarkov.com'
tags:
  -
    name: General
    description: "\nAPIs for general application status and information."
  -
    name: Authentication
    description: "\nEndpoints for user authentication and token management."
  -
    name: Mods
    description: "\nEndpoints for managing and retrieving mods."
  -
    name: Addons
    description: "\nEndpoints for managing and retrieving addons."
  -
    name: 'Mod Categories'
    description: "\nEndpoints for retrieving mod category data."
  -
    name: 'SPT Versions'
    description: "\nEndpoints for retrieving SPT-related data."
components:
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: 'You can generate your own API token by logging into the Forge, clicking your profile picture, and clicking <b>API Tokens</b>.'
security:
  -
    default: []
paths:
  /api/v0/ping:
    get:
      summary: 'Check API Health'
      operationId: checkAPIHealth
      description: "Returns a simple 'pong' message to indicate that the API endpoint\nis available and responding correctly. This endpoint is typically used\nfor health checks or basic connectivity tests.\n\nIt does not require authentication."
      parameters: []
      responses:
        200:
          description: 'Successful Ping'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    message: pong
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      message:
                        type: string
                        example: pong
      tags:
        - General
      security: []
  /api/v0/auth/login:
    post:
      summary: 'Login & Token Creation'
      operationId: loginTokenCreation
      description: "Authenticates a user with email and password and returns an API token. Users who registered via OAuth (and\nhaven't set a password) cannot use this endpoint."
      parameters: []
      responses:
        200:
          description: 'Successful Login'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    token: '{YOUR_API_TOKEN}'
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      token:
                        type: string
                        example: '{YOUR_API_TOKEN}'
        401:
          description: 'Invalid Credentials'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: UNAUTHENTICATED
                  message: 'Invalid credentials provided.'
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: UNAUTHENTICATED
                  message:
                    type: string
                    example: 'Invalid credentials provided.'
        403:
          description: 'OAuth User Attempt'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: PASSWORD_LOGIN_UNAVAILABLE
                  message: 'Password login is not available for accounts created via OAuth. Please use the original login method or set a password for your account.'
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: PASSWORD_LOGIN_UNAVAILABLE
                  message:
                    type: string
                    example: 'Password login is not available for accounts created via OAuth. Please use the original login method or set a password for your account.'
        422:
          description: 'Validation Error'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: VALIDATION_FAILED
                  message: 'Validation failed.'
                  errors:
                    email:
                      - 'The email field is required.'
                    password:
                      - 'The password field is required.'
                    abilities.0:
                      - 'The selected ability read-invalid is invalid. Allowed abilities are: create, read, update, delete'
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: VALIDATION_FAILED
                  message:
                    type: string
                    example: 'Validation failed.'
                  errors:
                    type: object
                    properties:
                      email:
                        type: array
                        example:
                          - 'The email field is required.'
                        items:
                          type: string
                      password:
                        type: array
                        example:
                          - 'The password field is required.'
                        items:
                          type: string
                      abilities.0:
                        type: array
                        example:
                          - 'The selected ability read-invalid is invalid. Allowed abilities are: create, read, update, delete'
                        items:
                          type: string
      tags:
        - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: "The user's email address. Must be a valid email address. The <code>email</code> of an existing record in the users table."
                  example: test@example.com
                password:
                  type: string
                  description: "The user's password. Must not be greater than 128 characters."
                  example: secretPassword
                token_name:
                  type: string
                  description: 'A descriptive name for the API token. Must not be greater than 255 characters.'
                  example: my-data-script-token
                abilities:
                  type: array
                  description: ''
                  example:
                    - update
                  items:
                    type: string
                    enum:
                      - create
                      - read
                      - update
                      - delete
              required:
                - email
                - password
      security: []
  /api/v0/auth/logout:
    post:
      summary: 'Logout & Delete Current Token'
      operationId: logoutDeleteCurrentToken
      description: 'Revokes the specific API token that was used to make this request.'
      parameters: []
      responses:
        200:
          description: 'Successful Logout'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    message: 'Current token revoked successfully.'
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'Current token revoked successfully.'
        401:
          description: Unauthenticated
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: UNAUTHENTICATED
                  message: Unauthenticated.
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: UNAUTHENTICATED
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Authentication
  /api/v0/auth/logout/all:
    post:
      summary: 'Logout & Delete All Tokens'
      operationId: logoutDeleteAllTokens
      description: 'Revokes all API tokens associated with the authenticated user.'
      parameters: []
      responses:
        200:
          description: 'Successful Logout All'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    message: 'All tokens revoked successfully.'
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'All tokens revoked successfully.'
        401:
          description: Unauthenticated
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: UNAUTHENTICATED
                  message: Unauthenticated.
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: UNAUTHENTICATED
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Authentication
  /api/v0/auth/register:
    post:
      summary: Registration
      operationId: registration
      description: 'Creates a new user account. Email verification is still required.'
      parameters: []
      responses:
        201:
          description: 'Successful Registration'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    id: 2
                    name: NewUser123
                    profile_photo_url: 'https://ui-avatars.com/api/?name=NewUser123&color=...'
                    cover_photo_url: 'https://picsum.photos/seed/NewUser123/...'
                    timezone: America/New_York
                    created_at: '2025-04-02T21:30:00.000000Z'
                    updated_at: '2025-04-01T10:00:00.000000Z'
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 2
                      name:
                        type: string
                        example: NewUser123
                      profile_photo_url:
                        type: string
                        example: 'https://ui-avatars.com/api/?name=NewUser123&color=...'
                      cover_photo_url:
                        type: string
                        example: 'https://picsum.photos/seed/NewUser123/...'
                      timezone:
                        type: string
                        example: America/New_York
                      created_at:
                        type: string
                        example: '2025-04-02T21:30:00.000000Z'
                      updated_at:
                        type: string
                        example: '2025-04-01T10:00:00.000000Z'
        422:
          description: 'Validation Error'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: VALIDATION_FAILED
                  message: 'Validation failed.'
                  errors:
                    name:
                      - 'The name has already been taken.'
                    email:
                      - 'The email must be a valid email address.'
                    password:
                      - 'The password must be at least 8 characters.'
                    timezone:
                      - 'The timezone field is required.'
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: VALIDATION_FAILED
                  message:
                    type: string
                    example: 'Validation failed.'
                  errors:
                    type: object
                    properties:
                      name:
                        type: array
                        example:
                          - 'The name has already been taken.'
                        items:
                          type: string
                      email:
                        type: array
                        example:
                          - 'The email must be a valid email address.'
                        items:
                          type: string
                      password:
                        type: array
                        example:
                          - 'The password must be at least 8 characters.'
                        items:
                          type: string
                      timezone:
                        type: array
                        example:
                          - 'The timezone field is required.'
                        items:
                          type: string
      tags:
        - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'The desired username. Must not be greater than 36 characters.'
                  example: NewUser123
                email:
                  type: string
                  description: "The user's email address. Must be a valid email address. Must not be greater than 255 characters."
                  example: newuser@example.com
                password:
                  type: string
                  description: 'The desired password (must meet complexity requirements). Must not be greater than 128 characters. Must be at least 8 characters.'
                  example: StrongP@ssw0rd!
                timezone:
                  type: string
                  description: "The user's timezone (IANA identifier)."
                  example: America/New_York
                  enum:
                    - Africa/Abidjan
                    - Africa/Accra
                    - Africa/Addis_Ababa
                    - Africa/Algiers
                    - Africa/Asmara
                    - Africa/Bamako
                    - Africa/Bangui
                    - Africa/Banjul
                    - Africa/Bissau
                    - Africa/Blantyre
                    - Africa/Brazzaville
                    - Africa/Bujumbura
                    - Africa/Cairo
                    - Africa/Casablanca
                    - Africa/Ceuta
                    - Africa/Conakry
                    - Africa/Dakar
                    - Africa/Dar_es_Salaam
                    - Africa/Djibouti
                    - Africa/Douala
                    - Africa/El_Aaiun
                    - Africa/Freetown
                    - Africa/Gaborone
                    - Africa/Harare
                    - Africa/Johannesburg
                    - Africa/Juba
                    - Africa/Kampala
                    - Africa/Khartoum
                    - Africa/Kigali
                    - Africa/Kinshasa
                    - Africa/Lagos
                    - Africa/Libreville
                    - Africa/Lome
                    - Africa/Luanda
                    - Africa/Lubumbashi
                    - Africa/Lusaka
                    - Africa/Malabo
                    - Africa/Maputo
                    - Africa/Maseru
                    - Africa/Mbabane
                    - Africa/Mogadishu
                    - Africa/Monrovia
                    - Africa/Nairobi
                    - Africa/Ndjamena
                    - Africa/Niamey
                    - Africa/Nouakchott
                    - Africa/Ouagadougou
                    - Africa/Porto-Novo
                    - Africa/Sao_Tome
                    - Africa/Tripoli
                    - Africa/Tunis
                    - Africa/Windhoek
                    - America/Adak
                    - America/Anchorage
                    - America/Anguilla
                    - America/Antigua
                    - America/Araguaina
                    - America/Argentina/Buenos_Aires
                    - America/Argentina/Catamarca
                    - America/Argentina/Cordoba
                    - America/Argentina/Jujuy
                    - America/Argentina/La_Rioja
                    - America/Argentina/Mendoza
                    - America/Argentina/Rio_Gallegos
                    - America/Argentina/Salta
                    - America/Argentina/San_Juan
                    - America/Argentina/San_Luis
                    - America/Argentina/Tucuman
                    - America/Argentina/Ushuaia
                    - America/Aruba
                    - America/Asuncion
                    - America/Atikokan
                    - America/Bahia
                    - America/Bahia_Banderas
                    - America/Barbados
                    - America/Belem
                    - America/Belize
                    - America/Blanc-Sablon
                    - America/Boa_Vista
                    - America/Bogota
                    - America/Boise
                    - America/Cambridge_Bay
                    - America/Campo_Grande
                    - America/Cancun
                    - America/Caracas
                    - America/Cayenne
                    - America/Cayman
                    - America/Chicago
                    - America/Chihuahua
                    - America/Ciudad_Juarez
                    - America/Costa_Rica
                    - America/Coyhaique
                    - America/Creston
                    - America/Cuiaba
                    - America/Curacao
                    - America/Danmarkshavn
                    - America/Dawson
                    - America/Dawson_Creek
                    - America/Denver
                    - America/Detroit
                    - America/Dominica
                    - America/Edmonton
                    - America/Eirunepe
                    - America/El_Salvador
                    - America/Fort_Nelson
                    - America/Fortaleza
                    - America/Glace_Bay
                    - America/Goose_Bay
                    - America/Grand_Turk
                    - America/Grenada
                    - America/Guadeloupe
                    - America/Guatemala
                    - America/Guayaquil
                    - America/Guyana
                    - America/Halifax
                    - America/Havana
                    - America/Hermosillo
                    - America/Indiana/Indianapolis
                    - America/Indiana/Knox
                    - America/Indiana/Marengo
                    - America/Indiana/Petersburg
                    - America/Indiana/Tell_City
                    - America/Indiana/Vevay
                    - America/Indiana/Vincennes
                    - America/Indiana/Winamac
                    - America/Inuvik
                    - America/Iqaluit
                    - America/Jamaica
                    - America/Juneau
                    - America/Kentucky/Louisville
                    - America/Kentucky/Monticello
                    - America/Kralendijk
                    - America/La_Paz
                    - America/Lima
                    - America/Los_Angeles
                    - America/Lower_Princes
                    - America/Maceio
                    - America/Managua
                    - America/Manaus
                    - America/Marigot
                    - America/Martinique
                    - America/Matamoros
                    - America/Mazatlan
                    - America/Menominee
                    - America/Merida
                    - America/Metlakatla
                    - America/Mexico_City
                    - America/Miquelon
                    - America/Moncton
                    - America/Monterrey
                    - America/Montevideo
                    - America/Montserrat
                    - America/Nassau
                    - America/New_York
                    - America/Nome
                    - America/Noronha
                    - America/North_Dakota/Beulah
                    - America/North_Dakota/Center
                    - America/North_Dakota/New_Salem
                    - America/Nuuk
                    - America/Ojinaga
                    - America/Panama
                    - America/Paramaribo
                    - America/Phoenix
                    - America/Port-au-Prince
                    - America/Port_of_Spain
                    - America/Porto_Velho
                    - America/Puerto_Rico
                    - America/Punta_Arenas
                    - America/Rankin_Inlet
                    - America/Recife
                    - America/Regina
                    - America/Resolute
                    - America/Rio_Branco
                    - America/Santarem
                    - America/Santiago
                    - America/Santo_Domingo
                    - America/Sao_Paulo
                    - America/Scoresbysund
                    - America/Sitka
                    - America/St_Barthelemy
                    - America/St_Johns
                    - America/St_Kitts
                    - America/St_Lucia
                    - America/St_Thomas
                    - America/St_Vincent
                    - America/Swift_Current
                    - America/Tegucigalpa
                    - America/Thule
                    - America/Tijuana
                    - America/Toronto
                    - America/Tortola
                    - America/Vancouver
                    - America/Whitehorse
                    - America/Winnipeg
                    - America/Yakutat
                    - Antarctica/Casey
                    - Antarctica/Davis
                    - Antarctica/DumontDUrville
                    - Antarctica/Macquarie
                    - Antarctica/Mawson
                    - Antarctica/McMurdo
                    - Antarctica/Palmer
                    - Antarctica/Rothera
                    - Antarctica/Syowa
                    - Antarctica/Troll
                    - Antarctica/Vostok
                    - Arctic/Longyearbyen
                    - Asia/Aden
                    - Asia/Almaty
                    - Asia/Amman
                    - Asia/Anadyr
                    - Asia/Aqtau
                    - Asia/Aqtobe
                    - Asia/Ashgabat
                    - Asia/Atyrau
                    - Asia/Baghdad
                    - Asia/Bahrain
                    - Asia/Baku
                    - Asia/Bangkok
                    - Asia/Barnaul
                    - Asia/Beirut
                    - Asia/Bishkek
                    - Asia/Brunei
                    - Asia/Chita
                    - Asia/Colombo
                    - Asia/Damascus
                    - Asia/Dhaka
                    - Asia/Dili
                    - Asia/Dubai
                    - Asia/Dushanbe
                    - Asia/Famagusta
                    - Asia/Gaza
                    - Asia/Hebron
                    - Asia/Ho_Chi_Minh
                    - Asia/Hong_Kong
                    - Asia/Hovd
                    - Asia/Irkutsk
                    - Asia/Jakarta
                    - Asia/Jayapura
                    - Asia/Jerusalem
                    - Asia/Kabul
                    - Asia/Kamchatka
                    - Asia/Karachi
                    - Asia/Kathmandu
                    - Asia/Khandyga
                    - Asia/Kolkata
                    - Asia/Krasnoyarsk
                    - Asia/Kuala_Lumpur
                    - Asia/Kuching
                    - Asia/Kuwait
                    - Asia/Macau
                    - Asia/Magadan
                    - Asia/Makassar
                    - Asia/Manila
                    - Asia/Muscat
                    - Asia/Nicosia
                    - Asia/Novokuznetsk
                    - Asia/Novosibirsk
                    - Asia/Omsk
                    - Asia/Oral
                    - Asia/Phnom_Penh
                    - Asia/Pontianak
                    - Asia/Pyongyang
                    - Asia/Qatar
                    - Asia/Qostanay
                    - Asia/Qyzylorda
                    - Asia/Riyadh
                    - Asia/Sakhalin
                    - Asia/Samarkand
                    - Asia/Seoul
                    - Asia/Shanghai
                    - Asia/Singapore
                    - Asia/Srednekolymsk
                    - Asia/Taipei
                    - Asia/Tashkent
                    - Asia/Tbilisi
                    - Asia/Tehran
                    - Asia/Thimphu
                    - Asia/Tokyo
                    - Asia/Tomsk
                    - Asia/Ulaanbaatar
                    - Asia/Urumqi
                    - Asia/Ust-Nera
                    - Asia/Vientiane
                    - Asia/Vladivostok
                    - Asia/Yakutsk
                    - Asia/Yangon
                    - Asia/Yekaterinburg
                    - Asia/Yerevan
                    - Atlantic/Azores
                    - Atlantic/Bermuda
                    - Atlantic/Canary
                    - Atlantic/Cape_Verde
                    - Atlantic/Faroe
                    - Atlantic/Madeira
                    - Atlantic/Reykjavik
                    - Atlantic/South_Georgia
                    - Atlantic/St_Helena
                    - Atlantic/Stanley
                    - Australia/Adelaide
                    - Australia/Brisbane
                    - Australia/Broken_Hill
                    - Australia/Darwin
                    - Australia/Eucla
                    - Australia/Hobart
                    - Australia/Lindeman
                    - Australia/Lord_Howe
                    - Australia/Melbourne
                    - Australia/Perth
                    - Australia/Sydney
                    - Europe/Amsterdam
                    - Europe/Andorra
                    - Europe/Astrakhan
                    - Europe/Athens
                    - Europe/Belgrade
                    - Europe/Berlin
                    - Europe/Bratislava
                    - Europe/Brussels
                    - Europe/Bucharest
                    - Europe/Budapest
                    - Europe/Busingen
                    - Europe/Chisinau
                    - Europe/Copenhagen
                    - Europe/Dublin
                    - Europe/Gibraltar
                    - Europe/Guernsey
                    - Europe/Helsinki
                    - Europe/Isle_of_Man
                    - Europe/Istanbul
                    - Europe/Jersey
                    - Europe/Kaliningrad
                    - Europe/Kirov
                    - Europe/Kyiv
                    - Europe/Lisbon
                    - Europe/Ljubljana
                    - Europe/London
                    - Europe/Luxembourg
                    - Europe/Madrid
                    - Europe/Malta
                    - Europe/Mariehamn
                    - Europe/Minsk
                    - Europe/Monaco
                    - Europe/Moscow
                    - Europe/Oslo
                    - Europe/Paris
                    - Europe/Podgorica
                    - Europe/Prague
                    - Europe/Riga
                    - Europe/Rome
                    - Europe/Samara
                    - Europe/San_Marino
                    - Europe/Sarajevo
                    - Europe/Saratov
                    - Europe/Simferopol
                    - Europe/Skopje
                    - Europe/Sofia
                    - Europe/Stockholm
                    - Europe/Tallinn
                    - Europe/Tirane
                    - Europe/Ulyanovsk
                    - Europe/Vaduz
                    - Europe/Vatican
                    - Europe/Vienna
                    - Europe/Vilnius
                    - Europe/Volgograd
                    - Europe/Warsaw
                    - Europe/Zagreb
                    - Europe/Zurich
                    - Indian/Antananarivo
                    - Indian/Chagos
                    - Indian/Christmas
                    - Indian/Cocos
                    - Indian/Comoro
                    - Indian/Kerguelen
                    - Indian/Mahe
                    - Indian/Maldives
                    - Indian/Mauritius
                    - Indian/Mayotte
                    - Indian/Reunion
                    - Pacific/Apia
                    - Pacific/Auckland
                    - Pacific/Bougainville
                    - Pacific/Chatham
                    - Pacific/Chuuk
                    - Pacific/Easter
                    - Pacific/Efate
                    - Pacific/Fakaofo
                    - Pacific/Fiji
                    - Pacific/Funafuti
                    - Pacific/Galapagos
                    - Pacific/Gambier
                    - Pacific/Guadalcanal
                    - Pacific/Guam
                    - Pacific/Honolulu
                    - Pacific/Kanton
                    - Pacific/Kiritimati
                    - Pacific/Kosrae
                    - Pacific/Kwajalein
                    - Pacific/Majuro
                    - Pacific/Marquesas
                    - Pacific/Midway
                    - Pacific/Nauru
                    - Pacific/Niue
                    - Pacific/Norfolk
                    - Pacific/Noumea
                    - Pacific/Pago_Pago
                    - Pacific/Palau
                    - Pacific/Pitcairn
                    - Pacific/Pohnpei
                    - Pacific/Port_Moresby
                    - Pacific/Rarotonga
                    - Pacific/Saipan
                    - Pacific/Tahiti
                    - Pacific/Tarawa
                    - Pacific/Tongatapu
                    - Pacific/Wake
                    - Pacific/Wallis
                    - UTC
              required:
                - name
                - email
                - password
                - timezone
      security: []
  /api/v0/auth/email/resend:
    post:
      summary: 'Resend Email Verification'
      operationId: resendEmailVerification
      description: "Allows anyone to request a verification email resend by providing an email address. Use this if a user registered\nbut did not receive the initial email and cannot log in. For security, this endpoint always returns a success\nmessage, regardless of whether the email exists or is already verified, to prevent email enumeration.\n\nThis endpoint is heavily rate-limited."
      parameters: []
      responses:
        200:
          description: 'Request Accepted'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    message: 'If an account matching that email exists and requires verification, a new link has been sent.'
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'If an account matching that email exists and requires verification, a new link has been sent.'
        422:
          description: 'Validation Error'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: VALIDATION_FAILED
                  message: 'Validation failed.'
                  errors:
                    email:
                      - 'The email field is required.'
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: VALIDATION_FAILED
                  message:
                    type: string
                    example: 'Validation failed.'
                  errors:
                    type: object
                    properties:
                      email:
                        type: array
                        example:
                          - 'The email field is required.'
                        items:
                          type: string
      tags:
        - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'The email address of the account needing verification. Must be a valid email address. Must not be greater than 255 characters.'
                  example: unverified@example.com
              required:
                - email
      security: []
  /api/v0/auth/user:
    get:
      summary: 'Get Authenticated User'
      operationId: getAuthenticatedUser
      description: 'Retrieves the details for the currently authenticated user based on the provided API token.'
      parameters:
        -
          in: query
          name: include
          description: 'optional Comma-separated list of relationships to include. Available relationships: `role`.'
          example: role
          required: false
          schema:
            type: string
            description: 'optional Comma-separated list of relationships to include. Available relationships: `role`.'
            example: role
      responses:
        200:
          description: 'Success (No Includes)'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    id: 1
                    name: 'Test User'
                    email: test@example.com
                    email_verified_at: '2025-04-02T20:44:38.000000Z'
                    profile_photo_url: 'https://example.com/path/to/profile.jpg'
                    cover_photo_url: 'https://example.com/path/to/cover.jpg'
                    created_at: '2025-04-01T10:00:00.000000Z'
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 1
                      name:
                        type: string
                        example: 'Test User'
                      email:
                        type: string
                        example: test@example.com
                      email_verified_at:
                        type: string
                        example: '2025-04-02T20:44:38.000000Z'
                      profile_photo_url:
                        type: string
                        example: 'https://example.com/path/to/profile.jpg'
                      cover_photo_url:
                        type: string
                        example: 'https://example.com/path/to/cover.jpg'
                      created_at:
                        type: string
                        example: '2025-04-01T10:00:00.000000Z'
        401:
          description: Unauthenticated
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: UNAUTHENTICATED
                  message: Unauthenticated.
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: UNAUTHENTICATED
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Authentication
  /api/v0/auth/abilities:
    get:
      summary: 'Token Abilities'
      operationId: tokenAbilities
      description: "Get the current token's abilities."
      parameters: []
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    - read
                    - create
                    - update
                    - delete
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: array
                    example:
                      - read
                      - create
                      - update
                      - delete
                    items:
                      type: string
        401:
          description: Unauthenticated
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: UNAUTHENTICATED
                  message: Unauthenticated.
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: UNAUTHENTICATED
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Authentication
  /api/v0/mods:
    get:
      summary: 'Get Mods'
      operationId: getMods
      description: "Retrieves a paginated list of mods, allowing filtering, sorting, and relationship inclusion.\n\nFields available:<br /><code>hub_id, guid, name, slug, teaser, thumbnail, downloads, detail_url,\nfika_compatibility, featured, contains_ai_content, contains_ads, shows_profile_binding_notice, category_id,\npublished_at, created_at, updated_at</code>\n\n<aside class=\"notice\">This endpoint only offers limited version information. Only the latest 6 versions will be\nincluded. For additional version information, use the <code>mod/{id}/versions</code> endpoint.</aside>\n\n<aside class=\"notice\">\nThe <code>fika_compatibility</code> field on a mod is a boolean that indicates whether any published version is\nconfirmed compatible with Fika. Version records expose their own <code>fika_compatibility</code> field as a\nstring with one of <code>compatible</code>, <code>incompatible</code>, or <code>unknown</code>.\n</aside>\n\n<aside class=\"notice\">\nThe <code>owner</code> and <code>additional_authors</code> relationships are always included in the response by\ndefault and do not need to be specified in the <code>include</code> parameter.\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: 'Success (All fields)'
                    type: object
                    example:
                      success: true
                      data:
                        -
                          id: 1
                          hub_id: null
                          guid: com.oconnell.recusandae-velit-incidunt
                          name: 'Recusandae velit incidunt.'
                          slug: recusandae-velit-incidunt
                          teaser: 'Minus est minima quibusdam necessitatibus inventore iste.'
                          thumbnail: ''
                          downloads: 55212644
                          owner:
                            id: 1
                            name: ModAuthor
                            profile_photo_url: 'https://example.com/profile.jpg'
                            cover_photo_url: 'https://example.com/cover.jpg'
                          additional_authors: []
                          source_code_links:
                            -
                              url: 'http://oconnell.com/earum-sed-fugit-corrupti'
                              label: null
                          detail_url: 'https://forge.sp-tarkov.com/mods/1/recusandae-velit-incidunt'
                          fika_compatibility: true
                          featured: true
                          contains_ads: true
                          contains_ai_content: false
                          shows_profile_binding_notice: false
                          published_at: '2025-01-09T17:48:53.000000Z'
                          created_at: '2024-12-11T14:48:53.000000Z'
                          updated_at: '2025-04-10T13:50:00.000000Z'
                        -
                          id: 2
                          hub_id: null
                          guid: com.baumbach.adipisci-iusto-voluptas-nihil
                          name: 'Adipisci iusto voluptas nihil.'
                          slug: adipisci-iusto-voluptas-nihil
                          teaser: 'Minima adipisci perspiciatis nemo maiores rem porro natus.'
                          thumbnail: ''
                          downloads: 219598104
                          owner:
                            id: 2
                            name: AnotherAuthor
                            profile_photo_url: 'https://example.com/profile2.jpg'
                            cover_photo_url: 'https://example.com/cover2.jpg'
                          additional_authors: []
                          source_code_links:
                            -
                              url: 'http://baumbach.net/'
                              label: null
                          detail_url: 'https://forge.sp-tarkov.com/mods/2/adipisci-iusto-voluptas-nihil'
                          fika_compatibility: false
                          featured: false
                          contains_ads: true
                          contains_ai_content: true
                          shows_profile_binding_notice: false
                          published_at: '2024-08-30T14:48:53.000000Z'
                          created_at: '2024-06-22T04:48:53.000000Z'
                          updated_at: '2025-04-10T13:50:21.000000Z'
                      links:
                        first: 'https://forge.test/api/v0/mods?page=1'
                        last: 'https://forge.test/api/v0/mods?page=1'
                        prev: null
                        next: null
                      meta:
                        current_page: 1
                        from: 1
                        last_page: 1
                        links:
                          -
                            url: null
                            label: '&laquo; Previous'
                            active: false
                          -
                            url: 'https://forge.test/api/v0/mods?page=1'
                            label: '1'
                            active: true
                          -
                            url: null
                            label: 'Next &raquo;'
                            active: false
                        path: 'https://forge.test/api/v0/mods'
                        per_page: 12
                        to: 2
                        total: 2
                    properties:
                      success:
                        type: boolean
                        example: true
                      data:
                        type: array
                        example:
                          -
                            id: 1
                            hub_id: null
                            guid: com.oconnell.recusandae-velit-incidunt
                            name: 'Recusandae velit incidunt.'
                            slug: recusandae-velit-incidunt
                            teaser: 'Minus est minima quibusdam necessitatibus inventore iste.'
                            thumbnail: ''
                            downloads: 55212644
                            owner:
                              id: 1
                              name: ModAuthor
                              profile_photo_url: 'https://example.com/profile.jpg'
                              cover_photo_url: 'https://example.com/cover.jpg'
                            additional_authors: []
                            source_code_links:
                              -
                                url: 'http://oconnell.com/earum-sed-fugit-corrupti'
                                label: null
                            detail_url: 'https://forge.sp-tarkov.com/mods/1/recusandae-velit-incidunt'
                            fika_compatibility: true
                            featured: true
                            contains_ads: true
                            contains_ai_content: false
                            shows_profile_binding_notice: false
                            published_at: '2025-01-09T17:48:53.000000Z'
                            created_at: '2024-12-11T14:48:53.000000Z'
                            updated_at: '2025-04-10T13:50:00.000000Z'
                          -
                            id: 2
                            hub_id: null
                            guid: com.baumbach.adipisci-iusto-voluptas-nihil
                            name: 'Adipisci iusto voluptas nihil.'
                            slug: adipisci-iusto-voluptas-nihil
                            teaser: 'Minima adipisci perspiciatis nemo maiores rem porro natus.'
                            thumbnail: ''
                            downloads: 219598104
                            owner:
                              id: 2
                              name: AnotherAuthor
                              profile_photo_url: 'https://example.com/profile2.jpg'
                              cover_photo_url: 'https://example.com/cover2.jpg'
                            additional_authors: []
                            source_code_links:
                              -
                                url: 'http://baumbach.net/'
                                label: null
                            detail_url: 'https://forge.sp-tarkov.com/mods/2/adipisci-iusto-voluptas-nihil'
                            fika_compatibility: false
                            featured: false
                            contains_ads: true
                            contains_ai_content: true
                            shows_profile_binding_notice: false
                            published_at: '2024-08-30T14:48:53.000000Z'
                            created_at: '2024-06-22T04:48:53.000000Z'
                            updated_at: '2025-04-10T13:50:21.000000Z'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            hub_id:
                              type: string
                              example: null
                              nullable: true
                            guid:
                              type: string
                              example: com.oconnell.recusandae-velit-incidunt
                            name:
                              type: string
                              example: 'Recusandae velit incidunt.'
                            slug:
                              type: string
                              example: recusandae-velit-incidunt
                            teaser:
                              type: string
                              example: 'Minus est minima quibusdam necessitatibus inventore iste.'
                            thumbnail:
                              type: string
                              example: ''
                            downloads:
                              type: integer
                              example: 55212644
                            owner:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 1
                                name:
                                  type: string
                                  example: ModAuthor
                                profile_photo_url:
                                  type: string
                                  example: 'https://example.com/profile.jpg'
                                cover_photo_url:
                                  type: string
                                  example: 'https://example.com/cover.jpg'
                            additional_authors:
                              type: array
                              example: []
                            source_code_links:
                              type: array
                              example:
                                -
                                  url: 'http://oconnell.com/earum-sed-fugit-corrupti'
                                  label: null
                              items:
                                type: object
                                properties:
                                  url:
                                    type: string
                                    example: 'http://oconnell.com/earum-sed-fugit-corrupti'
                                  label:
                                    type: string
                                    example: null
                                    nullable: true
                            detail_url:
                              type: string
                              example: 'https://forge.sp-tarkov.com/mods/1/recusandae-velit-incidunt'
                            fika_compatibility:
                              type: boolean
                              example: true
                            featured:
                              type: boolean
                              example: true
                            contains_ads:
                              type: boolean
                              example: true
                            contains_ai_content:
                              type: boolean
                              example: false
                            shows_profile_binding_notice:
                              type: boolean
                              example: false
                            published_at:
                              type: string
                              example: '2025-01-09T17:48:53.000000Z'
                            created_at:
                              type: string
                              example: '2024-12-11T14:48:53.000000Z'
                            updated_at:
                              type: string
                              example: '2025-04-10T13:50:00.000000Z'
                      links:
                        type: object
                        properties:
                          first:
                            type: string
                            example: 'https://forge.test/api/v0/mods?page=1'
                          last:
                            type: string
                            example: 'https://forge.test/api/v0/mods?page=1'
                          prev:
                            type: string
                            example: null
                            nullable: true
                          next:
                            type: string
                            example: null
                            nullable: true
                      meta:
                        type: object
                        properties:
                          current_page:
                            type: integer
                            example: 1
                          from:
                            type: integer
                            example: 1
                          last_page:
                            type: integer
                            example: 1
                          links:
                            type: array
                            example:
                              -
                                url: null
                                label: '&laquo; Previous'
                                active: false
                              -
                                url: 'https://forge.test/api/v0/mods?page=1'
                                label: '1'
                                active: true
                              -
                                url: null
                                label: 'Next &raquo;'
                                active: false
                            items:
                              type: object
                              properties:
                                url:
                                  type: string
                                  example: null
                                  nullable: true
                                label:
                                  type: string
                                  example: '&laquo; Previous'
                                active:
                                  type: boolean
                                  example: false
                          path:
                            type: string
                            example: 'https://forge.test/api/v0/mods'
                          per_page:
                            type: integer
                            example: 12
                          to:
                            type: integer
                            example: 2
                          total:
                            type: integer
                            example: 2
                  -
                    description: 'Success (Include Category)'
                    type: object
                    example:
                      success: true
                      data:
                        -
                          id: 1
                          hub_id: null
                          guid: com.oconnell.recusandae-velit-incidunt
                          name: 'Recusandae velit incidunt.'
                          slug: recusandae-velit-incidunt
                          teaser: 'Minus est minima quibusdam necessitatibus inventore iste.'
                          thumbnail: ''
                          downloads: 55212644
                          owner:
                            id: 1
                            name: ModAuthor
                            profile_photo_url: 'https://example.com/profile.jpg'
                            cover_photo_url: 'https://example.com/cover.jpg'
                          additional_authors: []
                          source_code_links:
                            -
                              url: 'http://oconnell.com/earum-sed-fugit-corrupti'
                              label: null
                          category:
                            id: 1
                            name: Gameplay
                            slug: gameplay
                            color_class: blue
                          detail_url: 'https://forge.sp-tarkov.com/mods/1/recusandae-velit-incidunt'
                          fika_compatibility: true
                          featured: true
                          contains_ads: true
                          contains_ai_content: false
                          shows_profile_binding_notice: false
                          published_at: '2025-01-09T17:48:53.000000Z'
                          created_at: '2024-12-11T14:48:53.000000Z'
                          updated_at: '2025-04-10T13:50:00.000000Z'
                      links:
                        first: 'https://forge.test/api/v0/mods?include=category&page=1'
                        last: 'https://forge.test/api/v0/mods?include=category&page=1'
                        prev: null
                        next: null
                      meta:
                        current_page: 1
                        from: 1
                        last_page: 1
                        links:
                          -
                            url: null
                            label: '&laquo; Previous'
                            active: false
                          -
                            url: 'https://forge.test/api/v0/mods?include=category&page=1'
                            label: '1'
                            active: true
                          -
                            url: null
                            label: 'Next &raquo;'
                            active: false
                        path: 'https://forge.test/api/v0/mods'
                        per_page: 12
                        to: 1
                        total: 1
                    properties:
                      success:
                        type: boolean
                        example: true
                      data:
                        type: array
                        example:
                          -
                            id: 1
                            hub_id: null
                            guid: com.oconnell.recusandae-velit-incidunt
                            name: 'Recusandae velit incidunt.'
                            slug: recusandae-velit-incidunt
                            teaser: 'Minus est minima quibusdam necessitatibus inventore iste.'
                            thumbnail: ''
                            downloads: 55212644
                            owner:
                              id: 1
                              name: ModAuthor
                              profile_photo_url: 'https://example.com/profile.jpg'
                              cover_photo_url: 'https://example.com/cover.jpg'
                            additional_authors: []
                            source_code_links:
                              -
                                url: 'http://oconnell.com/earum-sed-fugit-corrupti'
                                label: null
                            category:
                              id: 1
                              name: Gameplay
                              slug: gameplay
                              color_class: blue
                            detail_url: 'https://forge.sp-tarkov.com/mods/1/recusandae-velit-incidunt'
                            fika_compatibility: true
                            featured: true
                            contains_ads: true
                            contains_ai_content: false
                            shows_profile_binding_notice: false
                            published_at: '2025-01-09T17:48:53.000000Z'
                            created_at: '2024-12-11T14:48:53.000000Z'
                            updated_at: '2025-04-10T13:50:00.000000Z'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            hub_id:
                              type: string
                              example: null
                              nullable: true
                            guid:
                              type: string
                              example: com.oconnell.recusandae-velit-incidunt
                            name:
                              type: string
                              example: 'Recusandae velit incidunt.'
                            slug:
                              type: string
                              example: recusandae-velit-incidunt
                            teaser:
                              type: string
                              example: 'Minus est minima quibusdam necessitatibus inventore iste.'
                            thumbnail:
                              type: string
                              example: ''
                            downloads:
                              type: integer
                              example: 55212644
                            owner:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 1
                                name:
                                  type: string
                                  example: ModAuthor
                                profile_photo_url:
                                  type: string
                                  example: 'https://example.com/profile.jpg'
                                cover_photo_url:
                                  type: string
                                  example: 'https://example.com/cover.jpg'
                            additional_authors:
                              type: array
                              example: []
                            source_code_links:
                              type: array
                              example:
                                -
                                  url: 'http://oconnell.com/earum-sed-fugit-corrupti'
                                  label: null
                              items:
                                type: object
                                properties:
                                  url:
                                    type: string
                                    example: 'http://oconnell.com/earum-sed-fugit-corrupti'
                                  label:
                                    type: string
                                    example: null
                                    nullable: true
                            category:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 1
                                name:
                                  type: string
                                  example: Gameplay
                                slug:
                                  type: string
                                  example: gameplay
                                color_class:
                                  type: string
                                  example: blue
                            detail_url:
                              type: string
                              example: 'https://forge.sp-tarkov.com/mods/1/recusandae-velit-incidunt'
                            fika_compatibility:
                              type: boolean
                              example: true
                            featured:
                              type: boolean
                              example: true
                            contains_ads:
                              type: boolean
                              example: true
                            contains_ai_content:
                              type: boolean
                              example: false
                            shows_profile_binding_notice:
                              type: boolean
                              example: false
                            published_at:
                              type: string
                              example: '2025-01-09T17:48:53.000000Z'
                            created_at:
                              type: string
                              example: '2024-12-11T14:48:53.000000Z'
                            updated_at:
                              type: string
                              example: '2025-04-10T13:50:00.000000Z'
                      links:
                        type: object
                        properties:
                          first:
                            type: string
                            example: 'https://forge.test/api/v0/mods?include=category&page=1'
                          last:
                            type: string
                            example: 'https://forge.test/api/v0/mods?include=category&page=1'
                          prev:
                            type: string
                            example: null
                            nullable: true
                          next:
                            type: string
                            example: null
                            nullable: true
                      meta:
                        type: object
                        properties:
                          current_page:
                            type: integer
                            example: 1
                          from:
                            type: integer
                            example: 1
                          last_page:
                            type: integer
                            example: 1
                          links:
                            type: array
                            example:
                              -
                                url: null
                                label: '&laquo; Previous'
                                active: false
                              -
                                url: 'https://forge.test/api/v0/mods?include=category&page=1'
                                label: '1'
                                active: true
                              -
                                url: null
                                label: 'Next &raquo;'
                                active: false
                            items:
                              type: object
                              properties:
                                url:
                                  type: string
                                  example: null
                                  nullable: true
                                label:
                                  type: string
                                  example: '&laquo; Previous'
                                active:
                                  type: boolean
                                  example: false
                          path:
                            type: string
                            example: 'https://forge.test/api/v0/mods'
                          per_page:
                            type: integer
                            example: 12
                          to:
                            type: integer
                            example: 1
                          total:
                            type: integer
                            example: 1
                  -
                    description: 'Success (Include Versions and License)'
                    type: object
                    example:
                      success: true
                      data:
                        -
                          id: 1
                          hub_id: null
                          guid: com.oconnell.recusandae-velit-incidunt
                          name: 'Recusandae velit incidunt.'
                          slug: recusandae-velit-incidunt
                          teaser: 'Minus est minima quibusdam necessitatibus inventore iste.'
                          thumbnail: ''
                          downloads: 55212644
                          owner:
                            id: 1
                            name: ModAuthor
                            profile_photo_url: 'https://example.com/profile.jpg'
                            cover_photo_url: 'https://example.com/cover.jpg'
                          additional_authors: []
                          source_code_links:
                            -
                              url: 'http://oconnell.com/earum-sed-fugit-corrupti'
                              label: null
                          detail_url: 'https://forge.sp-tarkov.com/mods/1/recusandae-velit-incidunt'
                          fika_compatibility: true
                          featured: true
                          contains_ads: true
                          contains_ai_content: false
                          shows_profile_binding_notice: false
                          versions:
                            -
                              id: 1
                              version: 1.2.3
                              spt_version_constraint: ^3.8.0
                              downloads: 1523
                              published_at: '2025-01-09T17:48:53.000000Z'
                            -
                              id: 2
                              version: 1.2.2
                              spt_version_constraint: ^3.8.0
                              downloads: 892
                              published_at: '2025-01-05T12:30:00.000000Z'
                          license:
                            id: 1
                            name: MIT
                            short_name: MIT
                          published_at: '2025-01-09T17:48:53.000000Z'
                          created_at: '2024-12-11T14:48:53.000000Z'
                          updated_at: '2025-04-10T13:50:00.000000Z'
                      links:
                        first: 'https://forge.test/api/v0/mods?include=versions,license&page=1'
                        last: 'https://forge.test/api/v0/mods?include=versions,license&page=1'
                        prev: null
                        next: null
                      meta:
                        current_page: 1
                        from: 1
                        last_page: 1
                        links:
                          -
                            url: null
                            label: '&laquo; Previous'
                            active: false
                          -
                            url: 'https://forge.test/api/v0/mods?include=versions,license&page=1'
                            label: '1'
                            active: true
                          -
                            url: null
                            label: 'Next &raquo;'
                            active: false
                        path: 'https://forge.test/api/v0/mods'
                        per_page: 12
                        to: 1
                        total: 1
                    properties:
                      success:
                        type: boolean
                        example: true
                      data:
                        type: array
                        example:
                          -
                            id: 1
                            hub_id: null
                            guid: com.oconnell.recusandae-velit-incidunt
                            name: 'Recusandae velit incidunt.'
                            slug: recusandae-velit-incidunt
                            teaser: 'Minus est minima quibusdam necessitatibus inventore iste.'
                            thumbnail: ''
                            downloads: 55212644
                            owner:
                              id: 1
                              name: ModAuthor
                              profile_photo_url: 'https://example.com/profile.jpg'
                              cover_photo_url: 'https://example.com/cover.jpg'
                            additional_authors: []
                            source_code_links:
                              -
                                url: 'http://oconnell.com/earum-sed-fugit-corrupti'
                                label: null
                            detail_url: 'https://forge.sp-tarkov.com/mods/1/recusandae-velit-incidunt'
                            fika_compatibility: true
                            featured: true
                            contains_ads: true
                            contains_ai_content: false
                            shows_profile_binding_notice: false
                            versions:
                              -
                                id: 1
                                version: 1.2.3
                                spt_version_constraint: ^3.8.0
                                downloads: 1523
                                published_at: '2025-01-09T17:48:53.000000Z'
                              -
                                id: 2
                                version: 1.2.2
                                spt_version_constraint: ^3.8.0
                                downloads: 892
                                published_at: '2025-01-05T12:30:00.000000Z'
                            license:
                              id: 1
                              name: MIT
                              short_name: MIT
                            published_at: '2025-01-09T17:48:53.000000Z'
                            created_at: '2024-12-11T14:48:53.000000Z'
                            updated_at: '2025-04-10T13:50:00.000000Z'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            hub_id:
                              type: string
                              example: null
                              nullable: true
                            guid:
                              type: string
                              example: com.oconnell.recusandae-velit-incidunt
                            name:
                              type: string
                              example: 'Recusandae velit incidunt.'
                            slug:
                              type: string
                              example: recusandae-velit-incidunt
                            teaser:
                              type: string
                              example: 'Minus est minima quibusdam necessitatibus inventore iste.'
                            thumbnail:
                              type: string
                              example: ''
                            downloads:
                              type: integer
                              example: 55212644
                            owner:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 1
                                name:
                                  type: string
                                  example: ModAuthor
                                profile_photo_url:
                                  type: string
                                  example: 'https://example.com/profile.jpg'
                                cover_photo_url:
                                  type: string
                                  example: 'https://example.com/cover.jpg'
                            additional_authors:
                              type: array
                              example: []
                            source_code_links:
                              type: array
                              example:
                                -
                                  url: 'http://oconnell.com/earum-sed-fugit-corrupti'
                                  label: null
                              items:
                                type: object
                                properties:
                                  url:
                                    type: string
                                    example: 'http://oconnell.com/earum-sed-fugit-corrupti'
                                  label:
                                    type: string
                                    example: null
                                    nullable: true
                            detail_url:
                              type: string
                              example: 'https://forge.sp-tarkov.com/mods/1/recusandae-velit-incidunt'
                            fika_compatibility:
                              type: boolean
                              example: true
                            featured:
                              type: boolean
                              example: true
                            contains_ads:
                              type: boolean
                              example: true
                            contains_ai_content:
                              type: boolean
                              example: false
                            shows_profile_binding_notice:
                              type: boolean
                              example: false
                            versions:
                              type: array
                              example:
                                -
                                  id: 1
                                  version: 1.2.3
                                  spt_version_constraint: ^3.8.0
                                  downloads: 1523
                                  published_at: '2025-01-09T17:48:53.000000Z'
                                -
                                  id: 2
                                  version: 1.2.2
                                  spt_version_constraint: ^3.8.0
                                  downloads: 892
                                  published_at: '2025-01-05T12:30:00.000000Z'
                              items:
                                type: object
                                properties:
                                  id:
                                    type: integer
                                    example: 1
                                  version:
                                    type: string
                                    example: 1.2.3
                                  spt_version_constraint:
                                    type: string
                                    example: ^3.8.0
                                  downloads:
                                    type: integer
                                    example: 1523
                                  published_at:
                                    type: string
                                    example: '2025-01-09T17:48:53.000000Z'
                            license:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 1
                                name:
                                  type: string
                                  example: MIT
                                short_name:
                                  type: string
                                  example: MIT
                            published_at:
                              type: string
                              example: '2025-01-09T17:48:53.000000Z'
                            created_at:
                              type: string
                              example: '2024-12-11T14:48:53.000000Z'
                            updated_at:
                              type: string
                              example: '2025-04-10T13:50:00.000000Z'
                      links:
                        type: object
                        properties:
                          first:
                            type: string
                            example: 'https://forge.test/api/v0/mods?include=versions,license&page=1'
                          last:
                            type: string
                            example: 'https://forge.test/api/v0/mods?include=versions,license&page=1'
                          prev:
                            type: string
                            example: null
                            nullable: true
                          next:
                            type: string
                            example: null
                            nullable: true
                      meta:
                        type: object
                        properties:
                          current_page:
                            type: integer
                            example: 1
                          from:
                            type: integer
                            example: 1
                          last_page:
                            type: integer
                            example: 1
                          links:
                            type: array
                            example:
                              -
                                url: null
                                label: '&laquo; Previous'
                                active: false
                              -
                                url: 'https://forge.test/api/v0/mods?include=versions,license&page=1'
                                label: '1'
                                active: true
                              -
                                url: null
                                label: 'Next &raquo;'
                                active: false
                            items:
                              type: object
                              properties:
                                url:
                                  type: string
                                  example: null
                                  nullable: true
                                label:
                                  type: string
                                  example: '&laquo; Previous'
                                active:
                                  type: boolean
                                  example: false
                          path:
                            type: string
                            example: 'https://forge.test/api/v0/mods'
                          per_page:
                            type: integer
                            example: 12
                          to:
                            type: integer
                            example: 1
                          total:
                            type: integer
                            example: 1
        401:
          description: Unauthenticated
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: UNAUTHENTICATED
                  message: Unauthenticated.
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: UNAUTHENTICATED
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Mods
    parameters:
      -
        in: path
        name: fields
        description: 'Optional parameter. Comma-separated list of fields to include in the response. Defaults to all fields.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'name,slug,featured,created_at'
      -
        in: path
        name: 'filter[id]'
        description: 'Optional parameter. Filter by comma-separated Mod IDs.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '1,5,10'
      -
        in: path
        name: 'filter[hub_id]'
        description: 'Optional parameter. Filter by comma-separated Hub IDs.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '123,456'
      -
        in: path
        name: 'filter[guid]'
        description: 'Optional parameter. Filter by comma-separated GUIDs.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'com.example.mymod1,com.example.mymod2'
      -
        in: path
        name: 'filter[name]'
        description: 'Optional parameter. Filter by name (fuzzy filter).'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'Raid Time'
      -
        in: path
        name: 'filter[slug]'
        description: 'Optional parameter. Filter by slug (fuzzy filter).'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: some-mod
      -
        in: path
        name: 'filter[teaser]'
        description: 'Optional parameter. Filter by teaser text (fuzzy filter).'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: important
      -
        in: path
        name: 'filter[featured]'
        description: 'Optional parameter. Filter by featured status (1, true, 0, false).'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'true'
      -
        in: path
        name: 'filter[contains_ads]'
        description: 'Optional parameter. Filter by contains_ads status (1, true, 0, false).'
        required: true
        schema:
          type: boolean
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'false'
      -
        in: path
        name: 'filter[contains_ai_content]'
        description: 'Optional parameter. Filter by contains_ai_content status (1, true, 0, false).'
        required: true
        schema:
          type: boolean
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'false'
      -
        in: path
        name: 'filter[category_id]'
        description: 'Optional parameter. Filter by comma-separated category IDs.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '1,2,3'
      -
        in: path
        name: 'filter[category_slug]'
        description: 'Optional parameter. Filter by comma-separated category slugs.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'weapons,gear'
      -
        in: path
        name: 'filter[created_between]'
        description: 'Optional parameter. Filter by creation date range (YYYY-MM-DD,YYYY-MM-DD).'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2025-01-01,2025-03-31'
      -
        in: path
        name: 'filter[updated_between]'
        description: 'Optional parameter. Filter by update date range (YYYY-MM-DD,YYYY-MM-DD).'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2025-01-01,2025-03-31'
      -
        in: path
        name: 'filter[published_between]'
        description: 'Optional parameter. Filter by publication date range (YYYY-MM-DD,YYYY-MM-DD).'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2025-01-01,2025-03-31'
      -
        in: path
        name: 'filter[spt_version]'
        description: 'Optional parameter. Filter mods that are compatible with an SPT version SemVer constraint. This will only filter the mods, not the mod versions.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: ^3.8.0
      -
        in: path
        name: 'filter[fika_compatibility]'
        description: 'Optional parameter. Filter by Fika compatibility status. When true, only shows mods with Fika compatible versions (1, true, 0, false).'
        required: true
        schema:
          type: boolean
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'true'
      -
        in: path
        name: 'filter[include_legacy]'
        description: 'Optional parameter. Include legacy mods (mods with versions that have no SPT version constraint). By default, legacy mods are excluded from results (1, true, 0, false).'
        required: true
        schema:
          type: boolean
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'true'
      -
        in: path
        name: query
        description: 'Optional parameter. Search query to filter mods using Meilisearch. This will search across name, slug, and description fields.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'raid time'
      -
        in: path
        name: include
        description: 'Optional parameter. Comma-separated list of relationships. Available: `versions`, `license`, `category`, `source_code_links`.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'versions,category'
      -
        in: path
        name: sort
        description: 'Optional parameter. Sort results by attribute(s). Default ASC. Prefix with `-` for DESC. Comma-separate multiple fields. Allowed: `name`, `featured`, `created_at`, `updated_at`, `published_at`.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'featured,-name'
      -
        in: path
        name: page
        description: 'Optional parameter. The page number for pagination.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 2
      -
        in: path
        name: per_page
        description: 'Optional parameter. The number of results per page (max 50).'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 25
  '/api/v0/mod/{modId}':
    get:
      summary: 'Get Mod Details'
      operationId: getModDetails
      description: "Retrieves details for a single mod, allowing relationship inclusion.\n\nFields available:<br /><code>hub_id, guid, name, slug, teaser, description, thumbnail, downloads,\ndetail_url, fika_compatibility, featured, contains_ai_content, contains_ads, shows_profile_binding_notice,\npublished_at, created_at, updated_at</code>\n\n<aside class=\"notice\">This endpoint only offers limited version information. Only the latest 6 versions will be\nincluded. For additional version information, use the <code>mod/{id}/versions</code> endpoint.</aside>\n\n<aside class=\"notice\">\nThe <code>fika_compatibility</code> field on a mod is a boolean that indicates whether any published version is\nconfirmed compatible with Fika. Version records expose their own <code>fika_compatibility</code> field as a\nstring with one of <code>compatible</code>, <code>incompatible</code>, or <code>unknown</code>.\n</aside>\n\n<aside class=\"notice\">\nThe <code>owner</code> and <code>additional_authors</code> relationships are always included in the response by\ndefault and do not need to be specified in the <code>include</code> parameter.\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: 'Success (All fields, No Includes)'
                    type: object
                    example:
                      success: true
                      data:
                        id: 2
                        hub_id: null
                        guid: com.baumbach.adipisci-iusto-voluptas-nihil
                        name: 'Adipisci iusto voluptas nihil.'
                        slug: adipisci-iusto-voluptas-nihil
                        teaser: 'Minima adipisci perspiciatis nemo maiores rem porro natus.'
                        thumbnail: ''
                        downloads: 219598104
                        description: 'Adipisci rerum minima maiores sed. Neque totam quia libero exercitationem ullam.'
                        owner:
                          id: 1
                          name: ModOwner
                          profile_photo_url: 'https://example.com/owner.jpg'
                          cover_photo_url: 'https://example.com/owner-cover.jpg'
                        additional_authors: []
                        source_code_links:
                          -
                            url: 'http://baumbach.net/'
                            label: null
                        detail_url: 'https://forge.sp-tarkov.com/mods/2/adipisci-iusto-voluptas-nihil'
                        fika_compatibility: true
                        featured: false
                        contains_ads: true
                        contains_ai_content: true
                        shows_profile_binding_notice: false
                        published_at: '2024-08-30T14:48:53.000000Z'
                        created_at: '2024-06-22T04:48:53.000000Z'
                        updated_at: '2025-04-10T13:50:21.000000Z'
                    properties:
                      success:
                        type: boolean
                        example: true
                      data:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 2
                          hub_id:
                            type: string
                            example: null
                            nullable: true
                          guid:
                            type: string
                            example: com.baumbach.adipisci-iusto-voluptas-nihil
                          name:
                            type: string
                            example: 'Adipisci iusto voluptas nihil.'
                          slug:
                            type: string
                            example: adipisci-iusto-voluptas-nihil
                          teaser:
                            type: string
                            example: 'Minima adipisci perspiciatis nemo maiores rem porro natus.'
                          thumbnail:
                            type: string
                            example: ''
                          downloads:
                            type: integer
                            example: 219598104
                          description:
                            type: string
                            example: 'Adipisci rerum minima maiores sed. Neque totam quia libero exercitationem ullam.'
                          owner:
                            type: object
                            properties:
                              id:
                                type: integer
                                example: 1
                              name:
                                type: string
                                example: ModOwner
                              profile_photo_url:
                                type: string
                                example: 'https://example.com/owner.jpg'
                              cover_photo_url:
                                type: string
                                example: 'https://example.com/owner-cover.jpg'
                          additional_authors:
                            type: array
                            example: []
                          source_code_links:
                            type: array
                            example:
                              -
                                url: 'http://baumbach.net/'
                                label: null
                            items:
                              type: object
                              properties:
                                url:
                                  type: string
                                  example: 'http://baumbach.net/'
                                label:
                                  type: string
                                  example: null
                                  nullable: true
                          detail_url:
                            type: string
                            example: 'https://forge.sp-tarkov.com/mods/2/adipisci-iusto-voluptas-nihil'
                          fika_compatibility:
                            type: boolean
                            example: true
                          featured:
                            type: boolean
                            example: false
                          contains_ads:
                            type: boolean
                            example: true
                          contains_ai_content:
                            type: boolean
                            example: true
                          shows_profile_binding_notice:
                            type: boolean
                            example: false
                          published_at:
                            type: string
                            example: '2024-08-30T14:48:53.000000Z'
                          created_at:
                            type: string
                            example: '2024-06-22T04:48:53.000000Z'
                          updated_at:
                            type: string
                            example: '2025-04-10T13:50:21.000000Z'
                  -
                    description: 'Success (Include License)'
                    type: object
                    example:
                      success: true
                      data:
                        id: 2
                        hub_id: null
                        guid: com.baumbach.adipisci-iusto-voluptas-nihil
                        name: 'Adipisci iusto voluptas nihil.'
                        slug: adipisci-iusto-voluptas-nihil
                        teaser: 'Minima adipisci perspiciatis nemo maiores rem porro natus.'
                        thumbnail: ''
                        downloads: 219598104
                        description: 'Adipisci rerum minima maiores sed. Neque totam quia libero exercitationem ullam.'
                        owner:
                          id: 1
                          name: ModOwner
                          profile_photo_url: 'https://example.com/owner.jpg'
                          cover_photo_url: 'https://example.com/owner-cover.jpg'
                        additional_authors:
                          -
                            id: 5
                            name: ContributorOne
                            profile_photo_url: 'https://example.com/contributor1.jpg'
                            cover_photo_url: 'https://example.com/cover1.jpg'
                          -
                            id: 8
                            name: ContributorTwo
                            profile_photo_url: 'https://example.com/contributor2.jpg'
                            cover_photo_url: 'https://example.com/cover2.jpg'
                        source_code_links:
                          -
                            url: 'http://baumbach.net/'
                            label: null
                        detail_url: 'https://forge.sp-tarkov.com/mods/2/adipisci-iusto-voluptas-nihil'
                        fika_compatibility: true
                        featured: false
                        contains_ads: true
                        contains_ai_content: true
                        shows_profile_binding_notice: false
                        license:
                          id: 2
                          name: 'GNU General Public License v3.0'
                          short_name: GPL-3.0
                        published_at: '2024-08-30T14:48:53.000000Z'
                        created_at: '2024-06-22T04:48:53.000000Z'
                        updated_at: '2025-04-10T13:50:21.000000Z'
                    properties:
                      success:
                        type: boolean
                        example: true
                      data:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 2
                          hub_id:
                            type: string
                            example: null
                            nullable: true
                          guid:
                            type: string
                            example: com.baumbach.adipisci-iusto-voluptas-nihil
                          name:
                            type: string
                            example: 'Adipisci iusto voluptas nihil.'
                          slug:
                            type: string
                            example: adipisci-iusto-voluptas-nihil
                          teaser:
                            type: string
                            example: 'Minima adipisci perspiciatis nemo maiores rem porro natus.'
                          thumbnail:
                            type: string
                            example: ''
                          downloads:
                            type: integer
                            example: 219598104
                          description:
                            type: string
                            example: 'Adipisci rerum minima maiores sed. Neque totam quia libero exercitationem ullam.'
                          owner:
                            type: object
                            properties:
                              id:
                                type: integer
                                example: 1
                              name:
                                type: string
                                example: ModOwner
                              profile_photo_url:
                                type: string
                                example: 'https://example.com/owner.jpg'
                              cover_photo_url:
                                type: string
                                example: 'https://example.com/owner-cover.jpg'
                          additional_authors:
                            type: array
                            example:
                              -
                                id: 5
                                name: ContributorOne
                                profile_photo_url: 'https://example.com/contributor1.jpg'
                                cover_photo_url: 'https://example.com/cover1.jpg'
                              -
                                id: 8
                                name: ContributorTwo
                                profile_photo_url: 'https://example.com/contributor2.jpg'
                                cover_photo_url: 'https://example.com/cover2.jpg'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 5
                                name:
                                  type: string
                                  example: ContributorOne
                                profile_photo_url:
                                  type: string
                                  example: 'https://example.com/contributor1.jpg'
                                cover_photo_url:
                                  type: string
                                  example: 'https://example.com/cover1.jpg'
                          source_code_links:
                            type: array
                            example:
                              -
                                url: 'http://baumbach.net/'
                                label: null
                            items:
                              type: object
                              properties:
                                url:
                                  type: string
                                  example: 'http://baumbach.net/'
                                label:
                                  type: string
                                  example: null
                                  nullable: true
                          detail_url:
                            type: string
                            example: 'https://forge.sp-tarkov.com/mods/2/adipisci-iusto-voluptas-nihil'
                          fika_compatibility:
                            type: boolean
                            example: true
                          featured:
                            type: boolean
                            example: false
                          contains_ads:
                            type: boolean
                            example: true
                          contains_ai_content:
                            type: boolean
                            example: true
                          shows_profile_binding_notice:
                            type: boolean
                            example: false
                          license:
                            type: object
                            properties:
                              id:
                                type: integer
                                example: 2
                              name:
                                type: string
                                example: 'GNU General Public License v3.0'
                              short_name:
                                type: string
                                example: GPL-3.0
                          published_at:
                            type: string
                            example: '2024-08-30T14:48:53.000000Z'
                          created_at:
                            type: string
                            example: '2024-06-22T04:48:53.000000Z'
                          updated_at:
                            type: string
                            example: '2025-04-10T13:50:21.000000Z'
                  -
                    description: 'Success (Include Versions, License, and Category)'
                    type: object
                    example:
                      success: true
                      data:
                        id: 2
                        hub_id: null
                        guid: com.baumbach.adipisci-iusto-voluptas-nihil
                        name: 'Adipisci iusto voluptas nihil.'
                        slug: adipisci-iusto-voluptas-nihil
                        teaser: 'Minima adipisci perspiciatis nemo maiores rem porro natus.'
                        thumbnail: ''
                        downloads: 219598104
                        description: 'Adipisci rerum minima maiores sed. Neque totam quia libero exercitationem ullam.'
                        source_code_links:
                          -
                            url: 'http://baumbach.net/'
                            label: null
                        detail_url: 'https://forge.sp-tarkov.com/mods/2/adipisci-iusto-voluptas-nihil'
                        fika_compatibility: true
                        featured: false
                        contains_ads: true
                        contains_ai_content: true
                        shows_profile_binding_notice: false
                        owner:
                          id: 1
                          name: ModOwner
                          profile_photo_url: 'https://example.com/owner.jpg'
                          cover_photo_url: 'https://example.com/owner-cover.jpg'
                        additional_authors:
                          -
                            id: 5
                            name: ContributorOne
                            profile_photo_url: 'https://example.com/contributor1.jpg'
                            cover_photo_url: 'https://example.com/cover1.jpg'
                        versions:
                          -
                            id: 45
                            version: 2.1.0
                            spt_version_constraint: ^3.9.0
                            downloads: 5234
                            published_at: '2025-02-15T10:30:00.000000Z'
                          -
                            id: 44
                            version: 2.0.5
                            spt_version_constraint: ^3.8.0
                            downloads: 12456
                            published_at: '2025-01-20T08:15:00.000000Z'
                        license:
                          id: 2
                          name: 'GNU General Public License v3.0'
                          short_name: GPL-3.0
                        category:
                          id: 3
                          name: 'Quality of Life'
                          slug: quality-of-life
                          color_class: purple
                        published_at: '2024-08-30T14:48:53.000000Z'
                        created_at: '2024-06-22T04:48:53.000000Z'
                        updated_at: '2025-04-10T13:50:21.000000Z'
                    properties:
                      success:
                        type: boolean
                        example: true
                      data:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 2
                          hub_id:
                            type: string
                            example: null
                            nullable: true
                          guid:
                            type: string
                            example: com.baumbach.adipisci-iusto-voluptas-nihil
                          name:
                            type: string
                            example: 'Adipisci iusto voluptas nihil.'
                          slug:
                            type: string
                            example: adipisci-iusto-voluptas-nihil
                          teaser:
                            type: string
                            example: 'Minima adipisci perspiciatis nemo maiores rem porro natus.'
                          thumbnail:
                            type: string
                            example: ''
                          downloads:
                            type: integer
                            example: 219598104
                          description:
                            type: string
                            example: 'Adipisci rerum minima maiores sed. Neque totam quia libero exercitationem ullam.'
                          source_code_links:
                            type: array
                            example:
                              -
                                url: 'http://baumbach.net/'
                                label: null
                            items:
                              type: object
                              properties:
                                url:
                                  type: string
                                  example: 'http://baumbach.net/'
                                label:
                                  type: string
                                  example: null
                                  nullable: true
                          detail_url:
                            type: string
                            example: 'https://forge.sp-tarkov.com/mods/2/adipisci-iusto-voluptas-nihil'
                          fika_compatibility:
                            type: boolean
                            example: true
                          featured:
                            type: boolean
                            example: false
                          contains_ads:
                            type: boolean
                            example: true
                          contains_ai_content:
                            type: boolean
                            example: true
                          shows_profile_binding_notice:
                            type: boolean
                            example: false
                          owner:
                            type: object
                            properties:
                              id:
                                type: integer
                                example: 1
                              name:
                                type: string
                                example: ModOwner
                              profile_photo_url:
                                type: string
                                example: 'https://example.com/owner.jpg'
                              cover_photo_url:
                                type: string
                                example: 'https://example.com/owner-cover.jpg'
                          additional_authors:
                            type: array
                            example:
                              -
                                id: 5
                                name: ContributorOne
                                profile_photo_url: 'https://example.com/contributor1.jpg'
                                cover_photo_url: 'https://example.com/cover1.jpg'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 5
                                name:
                                  type: string
                                  example: ContributorOne
                                profile_photo_url:
                                  type: string
                                  example: 'https://example.com/contributor1.jpg'
                                cover_photo_url:
                                  type: string
                                  example: 'https://example.com/cover1.jpg'
                          versions:
                            type: array
                            example:
                              -
                                id: 45
                                version: 2.1.0
                                spt_version_constraint: ^3.9.0
                                downloads: 5234
                                published_at: '2025-02-15T10:30:00.000000Z'
                              -
                                id: 44
                                version: 2.0.5
                                spt_version_constraint: ^3.8.0
                                downloads: 12456
                                published_at: '2025-01-20T08:15:00.000000Z'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 45
                                version:
                                  type: string
                                  example: 2.1.0
                                spt_version_constraint:
                                  type: string
                                  example: ^3.9.0
                                downloads:
                                  type: integer
                                  example: 5234
                                published_at:
                                  type: string
                                  example: '2025-02-15T10:30:00.000000Z'
                          license:
                            type: object
                            properties:
                              id:
                                type: integer
                                example: 2
                              name:
                                type: string
                                example: 'GNU General Public License v3.0'
                              short_name:
                                type: string
                                example: GPL-3.0
                          category:
                            type: object
                            properties:
                              id:
                                type: integer
                                example: 3
                              name:
                                type: string
                                example: 'Quality of Life'
                              slug:
                                type: string
                                example: quality-of-life
                              color_class:
                                type: string
                                example: purple
                          published_at:
                            type: string
                            example: '2024-08-30T14:48:53.000000Z'
                          created_at:
                            type: string
                            example: '2024-06-22T04:48:53.000000Z'
                          updated_at:
                            type: string
                            example: '2025-04-10T13:50:21.000000Z'
        404:
          description: 'Mod Does Not Exist'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: NOT_FOUND
                  message: 'Resource not found.'
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: NOT_FOUND
                  message:
                    type: string
                    example: 'Resource not found.'
      tags:
        - Mods
    parameters:
      -
        in: path
        name: modId
        description: ''
        example: '0'
        required: true
        schema:
          type: string
      -
        in: path
        name: fields
        description: 'Optional parameter. Comma-separated list of fields to include in the response. Defaults to all fields.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'name,slug,featured,created_at'
      -
        in: path
        name: include
        description: 'Optional parameter. Comma-separated list of relationships. Available: `versions`, `license`, `category`, `source_code_links`.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'versions,license'
  '/api/v0/mod/{modId}/versions':
    get:
      summary: 'Get Mod Versions'
      operationId: getModVersions
      description: "Retrieves a paginated list of mod versions, allowing filtering, sorting, and relationship inclusion.\n\nFields available:<br /><code>hub_id, version, description, link, content_length, spt_version_constraint,\ndownloads, fika_compatibility, published_at, created_at, updated_at</code>\n\nThe <code>content_length</code> field contains the file size in bytes as determined by the Content-Length header\nfrom the download link. This field may be null for versions created before file size validation was implemented.\n\n<aside class=\"notice\">This endpoint only offers limited mod version dependency information. Only the immediate\ndependencies will be included. If a dependency has dependencies of its own, they will not be included. To resolve\nthe full tree of dependencies, use the <a href=\"#mods-GETapi-v0-mods-dependencies\"><code>/mods/dependencies</code></a>\nendpoint.</aside>\n\n<aside class=\"notice\">\nThe <code>fika_compatibility</code> field on each version is a string with one of <code>compatible</code>,\n<code>incompatible</code>, or <code>unknown</code>.\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: 'Success (All fields, No Includes)'
                    type: object
                    example:
                      success: true
                      data:
                        -
                          id: 938
                          hub_id: null
                          version: 0.2.9
                          description: 'Magni eius ad temporibus similique accusamus assumenda aliquid. Quisquam placeat in necessitatibus ducimus quasi odit. Autem nulla ea minus itaque.'
                          link: 'http://kautzer.com/enim-ut-quis-suscipit-dolores.html'
                          content_length: 52428800
                          spt_version_constraint: ^1.0.0
                          downloads: 8
                          fika_compatibility: unknown
                          published_at: '2024-05-09T10:49:41.000000Z'
                          created_at: '2024-12-19T04:49:41.000000Z'
                          updated_at: '2025-02-18T11:49:41.000000Z'
                        -
                          id: 660
                          hub_id: null
                          version: 8.2.8
                          description: 'Mollitia voluptatem quia et ex aut. Qui libero tempore ut. Suscipit a eius recusandae aut pariatur soluta necessitatibus.'
                          link: 'http://lockman.net/'
                          spt_version_constraint: '<4.0.0'
                          downloads: 3332503
                          fika_compatibility: compatible
                          published_at: '2024-07-03T05:49:25.000000Z'
                          created_at: '2024-10-06T23:49:25.000000Z'
                          updated_at: '2024-10-15T03:49:25.000000Z'
                        -
                          id: 2
                          hub_id: null
                          version: 6.5.2
                          description: 'Consequatur modi et labore ea neque id. Natus sapiente amet rerum quia in molestiae autem. Eligendi molestiae blanditiis voluptatem earum.'
                          link: 'https://auer.com/ipsum-ratione-sint-eveniet-aut-porro-qui-in-odio.html'
                          spt_version_constraint: '<4.0.0'
                          downloads: 40217550
                          fika_compatibility: incompatible
                          published_at: '2024-12-23T14:48:58.000000Z'
                          created_at: '2024-09-26T13:48:58.000000Z'
                          updated_at: '2025-03-21T01:48:58.000000Z'
                        -
                          id: 363
                          hub_id: null
                          version: 5.9.5
                          description: 'Aut ut inventore aut ex tempora a aspernatur asperiores. A laborum ullam ex rerum illo dolorem cupiditate. Veritatis id dolor qui quam et.'
                          link: 'http://kreiger.com/ut-voluptas-doloremque-natus-dolorem-odit-facilis'
                          spt_version_constraint: ^1.0.0
                          downloads: 11236658
                          fika_compatibility: unknown
                          published_at: '2025-03-18T23:49:12.000000Z'
                          created_at: '2024-09-04T16:49:12.000000Z'
                          updated_at: '2024-05-26T13:49:12.000000Z'
                        -
                          id: 1217
                          hub_id: null
                          version: 2.6.8
                          description: 'Aut in rerum est labore omnis. Voluptatem est velit doloribus expedita et. Illo error ut aspernatur quia quo repellat tenetur.'
                          link: 'http://www.becker.org/eum-laboriosam-ut-voluptates-voluptatibus-voluptates-nihil'
                          spt_version_constraint: '>=3.0.0'
                          downloads: 425925
                          fika_compatibility: compatible
                          published_at: '2025-03-20T13:50:00.000000Z'
                          created_at: '2025-02-12T01:50:00.000000Z'
                          updated_at: '2025-03-17T07:50:00.000000Z'
                      links:
                        first: 'https://forge.sp-tarkov.com/api/v0/mod/1/versions?page=1'
                        last: 'https://forge.sp-tarkov.com/api/v0/mod/1/versions?page=1'
                        prev: null
                        next: null
                      meta:
                        current_page: 1
                        from: 1
                        last_page: 1
                        links:
                          -
                            url: null
                            label: '&laquo; Previous'
                            active: false
                          -
                            url: 'https://forge.sp-tarkov.com/api/v0/mod/1/versions?page=1'
                            label: '1'
                            active: true
                          -
                            url: null
                            label: 'Next &raquo;'
                            active: false
                        path: 'https://forge.sp-tarkov.com/api/v0/mod/1/versions'
                        per_page: 12
                        to: 5
                        total: 5
                    properties:
                      success:
                        type: boolean
                        example: true
                      data:
                        type: array
                        example:
                          -
                            id: 938
                            hub_id: null
                            version: 0.2.9
                            description: 'Magni eius ad temporibus similique accusamus assumenda aliquid. Quisquam placeat in necessitatibus ducimus quasi odit. Autem nulla ea minus itaque.'
                            link: 'http://kautzer.com/enim-ut-quis-suscipit-dolores.html'
                            content_length: 52428800
                            spt_version_constraint: ^1.0.0
                            downloads: 8
                            fika_compatibility: unknown
                            published_at: '2024-05-09T10:49:41.000000Z'
                            created_at: '2024-12-19T04:49:41.000000Z'
                            updated_at: '2025-02-18T11:49:41.000000Z'
                          -
                            id: 660
                            hub_id: null
                            version: 8.2.8
                            description: 'Mollitia voluptatem quia et ex aut. Qui libero tempore ut. Suscipit a eius recusandae aut pariatur soluta necessitatibus.'
                            link: 'http://lockman.net/'
                            spt_version_constraint: '<4.0.0'
                            downloads: 3332503
                            fika_compatibility: compatible
                            published_at: '2024-07-03T05:49:25.000000Z'
                            created_at: '2024-10-06T23:49:25.000000Z'
                            updated_at: '2024-10-15T03:49:25.000000Z'
                          -
                            id: 2
                            hub_id: null
                            version: 6.5.2
                            description: 'Consequatur modi et labore ea neque id. Natus sapiente amet rerum quia in molestiae autem. Eligendi molestiae blanditiis voluptatem earum.'
                            link: 'https://auer.com/ipsum-ratione-sint-eveniet-aut-porro-qui-in-odio.html'
                            spt_version_constraint: '<4.0.0'
                            downloads: 40217550
                            fika_compatibility: incompatible
                            published_at: '2024-12-23T14:48:58.000000Z'
                            created_at: '2024-09-26T13:48:58.000000Z'
                            updated_at: '2025-03-21T01:48:58.000000Z'
                          -
                            id: 363
                            hub_id: null
                            version: 5.9.5
                            description: 'Aut ut inventore aut ex tempora a aspernatur asperiores. A laborum ullam ex rerum illo dolorem cupiditate. Veritatis id dolor qui quam et.'
                            link: 'http://kreiger.com/ut-voluptas-doloremque-natus-dolorem-odit-facilis'
                            spt_version_constraint: ^1.0.0
                            downloads: 11236658
                            fika_compatibility: unknown
                            published_at: '2025-03-18T23:49:12.000000Z'
                            created_at: '2024-09-04T16:49:12.000000Z'
                            updated_at: '2024-05-26T13:49:12.000000Z'
                          -
                            id: 1217
                            hub_id: null
                            version: 2.6.8
                            description: 'Aut in rerum est labore omnis. Voluptatem est velit doloribus expedita et. Illo error ut aspernatur quia quo repellat tenetur.'
                            link: 'http://www.becker.org/eum-laboriosam-ut-voluptates-voluptatibus-voluptates-nihil'
                            spt_version_constraint: '>=3.0.0'
                            downloads: 425925
                            fika_compatibility: compatible
                            published_at: '2025-03-20T13:50:00.000000Z'
                            created_at: '2025-02-12T01:50:00.000000Z'
                            updated_at: '2025-03-17T07:50:00.000000Z'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 938
                            hub_id:
                              type: string
                              example: null
                              nullable: true
                            version:
                              type: string
                              example: 0.2.9
                            description:
                              type: string
                              example: 'Magni eius ad temporibus similique accusamus assumenda aliquid. Quisquam placeat in necessitatibus ducimus quasi odit. Autem nulla ea minus itaque.'
                            link:
                              type: string
                              example: 'http://kautzer.com/enim-ut-quis-suscipit-dolores.html'
                            content_length:
                              type: integer
                              example: 52428800
                            spt_version_constraint:
                              type: string
                              example: ^1.0.0
                            downloads:
                              type: integer
                              example: 8
                            fika_compatibility:
                              type: string
                              example: unknown
                            published_at:
                              type: string
                              example: '2024-05-09T10:49:41.000000Z'
                            created_at:
                              type: string
                              example: '2024-12-19T04:49:41.000000Z'
                            updated_at:
                              type: string
                              example: '2025-02-18T11:49:41.000000Z'
                      links:
                        type: object
                        properties:
                          first:
                            type: string
                            example: 'https://forge.sp-tarkov.com/api/v0/mod/1/versions?page=1'
                          last:
                            type: string
                            example: 'https://forge.sp-tarkov.com/api/v0/mod/1/versions?page=1'
                          prev:
                            type: string
                            example: null
                            nullable: true
                          next:
                            type: string
                            example: null
                            nullable: true
                      meta:
                        type: object
                        properties:
                          current_page:
                            type: integer
                            example: 1
                          from:
                            type: integer
                            example: 1
                          last_page:
                            type: integer
                            example: 1
                          links:
                            type: array
                            example:
                              -
                                url: null
                                label: '&laquo; Previous'
                                active: false
                              -
                                url: 'https://forge.sp-tarkov.com/api/v0/mod/1/versions?page=1'
                                label: '1'
                                active: true
                              -
                                url: null
                                label: 'Next &raquo;'
                                active: false
                            items:
                              type: object
                              properties:
                                url:
                                  type: string
                                  example: null
                                  nullable: true
                                label:
                                  type: string
                                  example: '&laquo; Previous'
                                active:
                                  type: boolean
                                  example: false
                          path:
                            type: string
                            example: 'https://forge.sp-tarkov.com/api/v0/mod/1/versions'
                          per_page:
                            type: integer
                            example: 12
                          to:
                            type: integer
                            example: 5
                          total:
                            type: integer
                            example: 5
                  -
                    description: 'Success (Include Dependencies)'
                    type: object
                    example:
                      success: true
                      data:
                        -
                          id: 938
                          hub_id: null
                          version: 0.2.9
                          description: 'Magni eius ad temporibus similique accusamus assumenda aliquid. Quisquam placeat in necessitatibus ducimus quasi odit. Autem nulla ea minus itaque.'
                          link: 'http://kautzer.com/enim-ut-quis-suscipit-dolores.html'
                          content_length: 52428800
                          spt_version_constraint: ^1.0.0
                          downloads: 8
                          fika_compatibility: unknown
                          dependencies:
                            -
                              id: 5
                              mod_id: 42
                              mod_guid: com.example.core-library
                              mod_name: 'Core Library'
                              version_constraint: ^2.0.0
                              is_optional: false
                            -
                              id: 8
                              mod_id: 15
                              mod_guid: com.example.helper-utils
                              mod_name: 'Helper Utilities'
                              version_constraint: '>=1.5.0'
                              is_optional: true
                          published_at: '2024-05-09T10:49:41.000000Z'
                          created_at: '2024-12-19T04:49:41.000000Z'
                          updated_at: '2025-02-18T11:49:41.000000Z'
                        -
                          id: 660
                          hub_id: null
                          version: 8.2.8
                          description: 'Mollitia voluptatem quia et ex aut. Qui libero tempore ut. Suscipit a eius recusandae aut pariatur soluta necessitatibus.'
                          link: 'http://lockman.net/'
                          spt_version_constraint: '<4.0.0'
                          downloads: 3332503
                          fika_compatibility: compatible
                          dependencies: []
                          published_at: '2024-07-03T05:49:25.000000Z'
                          created_at: '2024-10-06T23:49:25.000000Z'
                          updated_at: '2024-10-15T03:49:25.000000Z'
                      links:
                        first: 'https://forge.sp-tarkov.com/api/v0/mod/1/versions?include=dependencies&page=1'
                        last: 'https://forge.sp-tarkov.com/api/v0/mod/1/versions?include=dependencies&page=1'
                        prev: null
                        next: null
                      meta:
                        current_page: 1
                        from: 1
                        last_page: 1
                        links:
                          -
                            url: null
                            label: '&laquo; Previous'
                            active: false
                          -
                            url: 'https://forge.sp-tarkov.com/api/v0/mod/1/versions?include=dependencies&page=1'
                            label: '1'
                            active: true
                          -
                            url: null
                            label: 'Next &raquo;'
                            active: false
                        path: 'https://forge.sp-tarkov.com/api/v0/mod/1/versions'
                        per_page: 12
                        to: 2
                        total: 2
                    properties:
                      success:
                        type: boolean
                        example: true
                      data:
                        type: array
                        example:
                          -
                            id: 938
                            hub_id: null
                            version: 0.2.9
                            description: 'Magni eius ad temporibus similique accusamus assumenda aliquid. Quisquam placeat in necessitatibus ducimus quasi odit. Autem nulla ea minus itaque.'
                            link: 'http://kautzer.com/enim-ut-quis-suscipit-dolores.html'
                            content_length: 52428800
                            spt_version_constraint: ^1.0.0
                            downloads: 8
                            fika_compatibility: unknown
                            dependencies:
                              -
                                id: 5
                                mod_id: 42
                                mod_guid: com.example.core-library
                                mod_name: 'Core Library'
                                version_constraint: ^2.0.0
                                is_optional: false
                              -
                                id: 8
                                mod_id: 15
                                mod_guid: com.example.helper-utils
                                mod_name: 'Helper Utilities'
                                version_constraint: '>=1.5.0'
                                is_optional: true
                            published_at: '2024-05-09T10:49:41.000000Z'
                            created_at: '2024-12-19T04:49:41.000000Z'
                            updated_at: '2025-02-18T11:49:41.000000Z'
                          -
                            id: 660
                            hub_id: null
                            version: 8.2.8
                            description: 'Mollitia voluptatem quia et ex aut. Qui libero tempore ut. Suscipit a eius recusandae aut pariatur soluta necessitatibus.'
                            link: 'http://lockman.net/'
                            spt_version_constraint: '<4.0.0'
                            downloads: 3332503
                            fika_compatibility: compatible
                            dependencies: []
                            published_at: '2024-07-03T05:49:25.000000Z'
                            created_at: '2024-10-06T23:49:25.000000Z'
                            updated_at: '2024-10-15T03:49:25.000000Z'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 938
                            hub_id:
                              type: string
                              example: null
                              nullable: true
                            version:
                              type: string
                              example: 0.2.9
                            description:
                              type: string
                              example: 'Magni eius ad temporibus similique accusamus assumenda aliquid. Quisquam placeat in necessitatibus ducimus quasi odit. Autem nulla ea minus itaque.'
                            link:
                              type: string
                              example: 'http://kautzer.com/enim-ut-quis-suscipit-dolores.html'
                            content_length:
                              type: integer
                              example: 52428800
                            spt_version_constraint:
                              type: string
                              example: ^1.0.0
                            downloads:
                              type: integer
                              example: 8
                            fika_compatibility:
                              type: string
                              example: unknown
                            dependencies:
                              type: array
                              example:
                                -
                                  id: 5
                                  mod_id: 42
                                  mod_guid: com.example.core-library
                                  mod_name: 'Core Library'
                                  version_constraint: ^2.0.0
                                  is_optional: false
                                -
                                  id: 8
                                  mod_id: 15
                                  mod_guid: com.example.helper-utils
                                  mod_name: 'Helper Utilities'
                                  version_constraint: '>=1.5.0'
                                  is_optional: true
                              items:
                                type: object
                                properties:
                                  id:
                                    type: integer
                                    example: 5
                                  mod_id:
                                    type: integer
                                    example: 42
                                  mod_guid:
                                    type: string
                                    example: com.example.core-library
                                  mod_name:
                                    type: string
                                    example: 'Core Library'
                                  version_constraint:
                                    type: string
                                    example: ^2.0.0
                                  is_optional:
                                    type: boolean
                                    example: false
                            published_at:
                              type: string
                              example: '2024-05-09T10:49:41.000000Z'
                            created_at:
                              type: string
                              example: '2024-12-19T04:49:41.000000Z'
                            updated_at:
                              type: string
                              example: '2025-02-18T11:49:41.000000Z'
                      links:
                        type: object
                        properties:
                          first:
                            type: string
                            example: 'https://forge.sp-tarkov.com/api/v0/mod/1/versions?include=dependencies&page=1'
                          last:
                            type: string
                            example: 'https://forge.sp-tarkov.com/api/v0/mod/1/versions?include=dependencies&page=1'
                          prev:
                            type: string
                            example: null
                            nullable: true
                          next:
                            type: string
                            example: null
                            nullable: true
                      meta:
                        type: object
                        properties:
                          current_page:
                            type: integer
                            example: 1
                          from:
                            type: integer
                            example: 1
                          last_page:
                            type: integer
                            example: 1
                          links:
                            type: array
                            example:
                              -
                                url: null
                                label: '&laquo; Previous'
                                active: false
                              -
                                url: 'https://forge.sp-tarkov.com/api/v0/mod/1/versions?include=dependencies&page=1'
                                label: '1'
                                active: true
                              -
                                url: null
                                label: 'Next &raquo;'
                                active: false
                            items:
                              type: object
                              properties:
                                url:
                                  type: string
                                  example: null
                                  nullable: true
                                label:
                                  type: string
                                  example: '&laquo; Previous'
                                active:
                                  type: boolean
                                  example: false
                          path:
                            type: string
                            example: 'https://forge.sp-tarkov.com/api/v0/mod/1/versions'
                          per_page:
                            type: integer
                            example: 12
                          to:
                            type: integer
                            example: 2
                          total:
                            type: integer
                            example: 2
        401:
          description: Unauthenticated
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: UNAUTHENTICATED
                  message: Unauthenticated.
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: UNAUTHENTICATED
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Mods
    parameters:
      -
        in: path
        name: modId
        description: ''
        example: '0'
        required: true
        schema:
          type: string
      -
        in: path
        name: fields
        description: 'Optional parameter. Comma-separated list of fields to include in the response. Defaults to all fields.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'id,version,link,created_at'
      -
        in: path
        name: 'filter[id]'
        description: 'Optional parameter. Filter by mod version ID. Comma-separated.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '234,432'
      -
        in: path
        name: 'filter[hub_id]'
        description: 'Optional parameter. Filter by mod hub ID. Comma-separated.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '234,432'
      -
        in: path
        name: 'filter[version]'
        description: 'Optional parameter. Filter mod versions by using a SemVer constraint.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: ^1.0.0
      -
        in: path
        name: 'filter[description]'
        description: 'Optional parameter. Fuzzy-filter by mod version description.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'This is a description'
      -
        in: path
        name: 'filter[link]'
        description: 'Optional parameter. Filter by mod version link.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: example.com
      -
        in: path
        name: 'filter[published_between]'
        description: 'Optional parameter. Filter by mod version published between.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2025-01-01,2025-03-31'
      -
        in: path
        name: 'filter[created_between]'
        description: 'Optional parameter. Filter by mod version created between.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2025-01-01,2025-03-31'
      -
        in: path
        name: 'filter[updated_between]'
        description: 'Optional parameter. Filter by mod version updated between.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2025-01-01,2025-03-31'
      -
        in: path
        name: 'filter[spt_version]'
        description: 'Optional parameter. Filter mod versions that are compatible with a SemVer constraint.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: ^3.8.0
      -
        in: path
        name: 'filter[fika_compatibility]'
        description: 'Optional parameter. Filter by Fika compatibility status. Comma-separated. Available values: compatible, incompatible, unknown.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: compatible
      -
        in: path
        name: include
        description: 'Optional parameter. Comma-separated list of relationships. Available: dependencies, virus_total_links.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'dependencies,virus_total_links'
      -
        in: path
        name: sort
        description: 'Optional parameter. Sort results by attribute(s). Default ASC. Prefix with `-` for DESC. Comma-separate multiple fields.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '-version,-created_at'
      -
        in: path
        name: page
        description: 'Optional parameter. The page number for pagination.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 2
      -
        in: path
        name: per_page
        description: 'Optional parameter. The number of results per page (max 50).'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 25
  /api/v0/mods/updates:
    get:
      summary: 'Get Mod Updates'
      operationId: getModUpdates
      description: "Checks for available updates for one or more installed mod versions, filtered by SPT version compatibility.\nThis endpoint intelligently handles dependency constraints and prerelease versions to provide safe update\nrecommendations.\n\n**How it works:**\n- Accepts mod identifier:version pairs and a target SPT version\n- Finds newer versions compatible with the target SPT version\n- Validates that updates won't break dependencies\n- Returns categorized results: safe updates, blocked updates, up-to-date mods, and incompatible mods\n\n**Prerelease Handling:**\n- If a mod is on a prerelease version (e.g., 1.0.0-beta.1), the stable release (1.0.0) will be recommended if available, otherwise newer prereleases (e.g., 1.0.0-beta.2)\n- If a mod is on a stable version, only stable versions are recommended (never prereleases)\n\n**Dependency Validation:**\n- Checks if updating would break constraints from other installed mods\n- Validates that all dependencies of the new version can be satisfied"
      parameters: []
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    spt_version: 3.11.5
                    updates:
                      -
                        current_version:
                          id: 42
                          mod_id: 5
                          guid: com.example.mod
                          name: 'Example Mod'
                          slug: example-mod
                          version: 1.0.0
                        recommended_version:
                          id: 58
                          version: 1.5.0
                          link: 'https://example.com/download'
                          content_length: 1048576
                          fika_compatibility: compatible
                          spt_versions:
                            - 3.11.0
                            - 3.11.5
                        update_reason: newer_version_available
                    blocked_updates:
                      -
                        current_version:
                          id: 99
                          mod_id: 20
                          guid: com.example.blocked
                          name: 'Blocked Mod'
                          version: 2.0.0
                        latest_version:
                          id: 105
                          version: 3.0.0
                          spt_versions:
                            - 3.11.5
                        block_reason: dependency_constraint_violation
                        blocking_mods:
                          -
                            mod_id: 15
                            mod_guid: com.example.dependent
                            mod_name: 'Dependent Mod'
                            current_version: 1.0.0
                            constraint: ^2.0.0
                            incompatible_with: 3.0.0
                    up_to_date:
                      -
                        id: 125
                        mod_id: 25
                        guid: com.example.current
                        name: 'Current Mod'
                        version: 1.8.0
                        spt_versions:
                          - 3.11.5
                    incompatible_with_spt:
                      -
                        id: 150
                        mod_id: 30
                        guid: com.example.old
                        name: 'Old Mod'
                        version: 1.0.0
                        reason: no_version_for_spt
                        latest_compatible_version: null
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      spt_version:
                        type: string
                        example: 3.11.5
                      updates:
                        type: array
                        example:
                          -
                            current_version:
                              id: 42
                              mod_id: 5
                              guid: com.example.mod
                              name: 'Example Mod'
                              slug: example-mod
                              version: 1.0.0
                            recommended_version:
                              id: 58
                              version: 1.5.0
                              link: 'https://example.com/download'
                              content_length: 1048576
                              fika_compatibility: compatible
                              spt_versions:
                                - 3.11.0
                                - 3.11.5
                            update_reason: newer_version_available
                        items:
                          type: object
                          properties:
                            current_version:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 42
                                mod_id:
                                  type: integer
                                  example: 5
                                guid:
                                  type: string
                                  example: com.example.mod
                                name:
                                  type: string
                                  example: 'Example Mod'
                                slug:
                                  type: string
                                  example: example-mod
                                version:
                                  type: string
                                  example: 1.0.0
                            recommended_version:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 58
                                version:
                                  type: string
                                  example: 1.5.0
                                link:
                                  type: string
                                  example: 'https://example.com/download'
                                content_length:
                                  type: integer
                                  example: 1048576
                                fika_compatibility:
                                  type: string
                                  example: compatible
                                spt_versions:
                                  type: array
                                  example:
                                    - 3.11.0
                                    - 3.11.5
                                  items:
                                    type: string
                            update_reason:
                              type: string
                              example: newer_version_available
                      blocked_updates:
                        type: array
                        example:
                          -
                            current_version:
                              id: 99
                              mod_id: 20
                              guid: com.example.blocked
                              name: 'Blocked Mod'
                              version: 2.0.0
                            latest_version:
                              id: 105
                              version: 3.0.0
                              spt_versions:
                                - 3.11.5
                            block_reason: dependency_constraint_violation
                            blocking_mods:
                              -
                                mod_id: 15
                                mod_guid: com.example.dependent
                                mod_name: 'Dependent Mod'
                                current_version: 1.0.0
                                constraint: ^2.0.0
                                incompatible_with: 3.0.0
                        items:
                          type: object
                          properties:
                            current_version:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 99
                                mod_id:
                                  type: integer
                                  example: 20
                                guid:
                                  type: string
                                  example: com.example.blocked
                                name:
                                  type: string
                                  example: 'Blocked Mod'
                                version:
                                  type: string
                                  example: 2.0.0
                            latest_version:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 105
                                version:
                                  type: string
                                  example: 3.0.0
                                spt_versions:
                                  type: array
                                  example:
                                    - 3.11.5
                                  items:
                                    type: string
                            block_reason:
                              type: string
                              example: dependency_constraint_violation
                            blocking_mods:
                              type: array
                              example:
                                -
                                  mod_id: 15
                                  mod_guid: com.example.dependent
                                  mod_name: 'Dependent Mod'
                                  current_version: 1.0.0
                                  constraint: ^2.0.0
                                  incompatible_with: 3.0.0
                              items:
                                type: object
                                properties:
                                  mod_id:
                                    type: integer
                                    example: 15
                                  mod_guid:
                                    type: string
                                    example: com.example.dependent
                                  mod_name:
                                    type: string
                                    example: 'Dependent Mod'
                                  current_version:
                                    type: string
                                    example: 1.0.0
                                  constraint:
                                    type: string
                                    example: ^2.0.0
                                  incompatible_with:
                                    type: string
                                    example: 3.0.0
                      up_to_date:
                        type: array
                        example:
                          -
                            id: 125
                            mod_id: 25
                            guid: com.example.current
                            name: 'Current Mod'
                            version: 1.8.0
                            spt_versions:
                              - 3.11.5
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 125
                            mod_id:
                              type: integer
                              example: 25
                            guid:
                              type: string
                              example: com.example.current
                            name:
                              type: string
                              example: 'Current Mod'
                            version:
                              type: string
                              example: 1.8.0
                            spt_versions:
                              type: array
                              example:
                                - 3.11.5
                              items:
                                type: string
                      incompatible_with_spt:
                        type: array
                        example:
                          -
                            id: 150
                            mod_id: 30
                            guid: com.example.old
                            name: 'Old Mod'
                            version: 1.0.0
                            reason: no_version_for_spt
                            latest_compatible_version: null
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 150
                            mod_id:
                              type: integer
                              example: 30
                            guid:
                              type: string
                              example: com.example.old
                            name:
                              type: string
                              example: 'Old Mod'
                            version:
                              type: string
                              example: 1.0.0
                            reason:
                              type: string
                              example: no_version_for_spt
                            latest_compatible_version:
                              type: string
                              example: null
                              nullable: true
        400:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: 'Missing Parameter'
                    type: object
                    example:
                      success: false
                      code: VALIDATION_FAILED
                      message: "You must provide both 'mods' and 'spt_version' parameters."
                    properties:
                      success:
                        type: boolean
                        example: false
                      code:
                        type: string
                        example: VALIDATION_FAILED
                      message:
                        type: string
                        example: "You must provide both 'mods' and 'spt_version' parameters."
                  -
                    description: 'Invalid SPT Version'
                    type: object
                    example:
                      success: false
                      code: VALIDATION_FAILED
                      message: 'SPT version not found or not published.'
                    properties:
                      success:
                        type: boolean
                        example: false
                      code:
                        type: string
                        example: VALIDATION_FAILED
                      message:
                        type: string
                        example: 'SPT version not found or not published.'
        401:
          description: Unauthenticated
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: UNAUTHENTICATED
                  message: Unauthenticated.
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: UNAUTHENTICATED
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Mods
    parameters:
      -
        in: path
        name: mods
        description: 'Comma-separated list of identifier:version pairs for installed mods. Identifier can be mod_id (numeric) or GUID (string).'
        example: '5:1.2.0,com.example.mod:2.0.5'
        required: true
        schema:
          type: string
      -
        in: path
        name: spt_version
        description: 'Target SPT version to check compatibility against.'
        example: 3.11.5
        required: true
        schema:
          type: string
  /api/v0/mods/dependencies:
    get:
      summary: 'Get Mod Dependencies'
      operationId: getModDependencies
      description: "Resolves the complete dependency tree for one or more mod versions, returning all required dependencies recursively.\nThis endpoint is designed for mod managers and installers that need to determine which mods must be downloaded and\ninstalled to satisfy all dependencies for a given set of mods.\n\n**How it works:**\n- Accepts one or more `identifier:version` pairs where identifier can be either a mod_id (numeric) or GUID (string) (e.g., `5:1.2.0,com.example.mod:2.0.5`)\n- For each queried mod version, resolves all direct and transitive dependencies\n- Returns a flattened tree structure with each dependency and its nested dependencies\n- Applies intelligent deduplication when multiple queried mods depend on the same mod\n- Detects and flags version constraint conflicts\n\n**Smart Deduplication:**\nWhen multiple queried mods share the same dependency, the endpoint analyzes semantic version constraints:\n- **Compatible constraints** (e.g., ^1.0.0 and ^1.5.0): Returns only the highest version satisfying all constraints (e.g., 1.8.0), with `conflict: false`\n- **Incompatible constraints** (e.g., ^1.0.0 and ^2.0.0): Returns all conflicting versions, each marked with `conflict: true`\n\n**Response Structure:**\nEach mod in the response includes:\n- **Mod fields**: `id`, `guid`, `name`, `slug` - Essential identifying information\n- **latest_compatible_version**: The highest version satisfying all constraints, containing:\n  - `id` - Mod version ID\n  - `version` - Semantic version string\n  - `link` - Download URL for the mod file\n  - `content_length` - File size in bytes\n  - `fika_compatibility` - Compatibility status with Fika mod\n- **conflict**: Boolean indicating if this dependency has incompatible version constraints\n- **dependencies**: Array of nested dependencies (same structure, recursive)"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: 'Success (Compatible Dependencies)'
                    type: object
                    example:
                      success: true
                      data:
                        -
                          id: 5
                          guid: com.example.dependency
                          name: 'Dependency Mod'
                          slug: dependency-mod
                          latest_compatible_version:
                            id: 42
                            version: 2.1.0
                            link: 'https://example.com/mods/dependency-mod-2.1.0.zip'
                            content_length: 1048576
                            fika_compatibility: compatible
                          conflict: false
                          dependencies:
                            -
                              id: 8
                              guid: com.example.subdep
                              name: 'Sub Dependency'
                              slug: sub-dependency
                              latest_compatible_version:
                                id: 67
                                version: 1.0.0
                                link: 'https://example.com/mods/sub-dependency-1.0.0.zip'
                                content_length: 524288
                                fika_compatibility: unknown
                              conflict: false
                              dependencies: []
                    properties:
                      success:
                        type: boolean
                        example: true
                      data:
                        type: array
                        example:
                          -
                            id: 5
                            guid: com.example.dependency
                            name: 'Dependency Mod'
                            slug: dependency-mod
                            latest_compatible_version:
                              id: 42
                              version: 2.1.0
                              link: 'https://example.com/mods/dependency-mod-2.1.0.zip'
                              content_length: 1048576
                              fika_compatibility: compatible
                            conflict: false
                            dependencies:
                              -
                                id: 8
                                guid: com.example.subdep
                                name: 'Sub Dependency'
                                slug: sub-dependency
                                latest_compatible_version:
                                  id: 67
                                  version: 1.0.0
                                  link: 'https://example.com/mods/sub-dependency-1.0.0.zip'
                                  content_length: 524288
                                  fika_compatibility: unknown
                                conflict: false
                                dependencies: []
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 5
                            guid:
                              type: string
                              example: com.example.dependency
                            name:
                              type: string
                              example: 'Dependency Mod'
                            slug:
                              type: string
                              example: dependency-mod
                            latest_compatible_version:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 42
                                version:
                                  type: string
                                  example: 2.1.0
                                link:
                                  type: string
                                  example: 'https://example.com/mods/dependency-mod-2.1.0.zip'
                                content_length:
                                  type: integer
                                  example: 1048576
                                fika_compatibility:
                                  type: string
                                  example: compatible
                            conflict:
                              type: boolean
                              example: false
                            dependencies:
                              type: array
                              example:
                                -
                                  id: 8
                                  guid: com.example.subdep
                                  name: 'Sub Dependency'
                                  slug: sub-dependency
                                  latest_compatible_version:
                                    id: 67
                                    version: 1.0.0
                                    link: 'https://example.com/mods/sub-dependency-1.0.0.zip'
                                    content_length: 524288
                                    fika_compatibility: unknown
                                  conflict: false
                                  dependencies: []
                              items:
                                type: object
                                properties:
                                  id:
                                    type: integer
                                    example: 8
                                  guid:
                                    type: string
                                    example: com.example.subdep
                                  name:
                                    type: string
                                    example: 'Sub Dependency'
                                  slug:
                                    type: string
                                    example: sub-dependency
                                  latest_compatible_version:
                                    type: object
                                    properties:
                                      id: { type: integer, example: 67 }
                                      version: { type: string, example: 1.0.0 }
                                      link: { type: string, example: 'https://example.com/mods/sub-dependency-1.0.0.zip' }
                                      content_length: { type: integer, example: 524288 }
                                      fika_compatibility: { type: string, example: unknown }
                                  conflict:
                                    type: boolean
                                    example: false
                                  dependencies:
                                    type: array
                                    example: []
                  -
                    description: 'Success (Conflicting Dependencies)'
                    type: object
                    example:
                      success: true
                      data:
                        -
                          id: 12
                          guid: com.example.conflicting
                          name: 'Conflicting Dependency'
                          slug: conflicting-dependency
                          latest_compatible_version:
                            id: 100
                            version: 1.5.0
                            link: 'https://example.com/mods/conflicting-1.5.0.zip'
                            content_length: 2097152
                            fika_compatibility: compatible
                          conflict: true
                          dependencies: []
                        -
                          id: 12
                          guid: com.example.conflicting
                          name: 'Conflicting Dependency'
                          slug: conflicting-dependency
                          latest_compatible_version:
                            id: 150
                            version: 2.0.0
                            link: 'https://example.com/mods/conflicting-2.0.0.zip'
                            content_length: 3145728
                            fika_compatibility: incompatible
                          conflict: true
                          dependencies: []
                    properties:
                      success:
                        type: boolean
                        example: true
                      data:
                        type: array
                        example:
                          -
                            id: 12
                            guid: com.example.conflicting
                            name: 'Conflicting Dependency'
                            slug: conflicting-dependency
                            latest_compatible_version:
                              id: 100
                              version: 1.5.0
                              link: 'https://example.com/mods/conflicting-1.5.0.zip'
                              content_length: 2097152
                              fika_compatibility: compatible
                            conflict: true
                            dependencies: []
                          -
                            id: 12
                            guid: com.example.conflicting
                            name: 'Conflicting Dependency'
                            slug: conflicting-dependency
                            latest_compatible_version:
                              id: 150
                              version: 2.0.0
                              link: 'https://example.com/mods/conflicting-2.0.0.zip'
                              content_length: 3145728
                              fika_compatibility: incompatible
                            conflict: true
                            dependencies: []
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 12
                            guid:
                              type: string
                              example: com.example.conflicting
                            name:
                              type: string
                              example: 'Conflicting Dependency'
                            slug:
                              type: string
                              example: conflicting-dependency
                            latest_compatible_version:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 100
                                version:
                                  type: string
                                  example: 1.5.0
                                link:
                                  type: string
                                  example: 'https://example.com/mods/conflicting-1.5.0.zip'
                                content_length:
                                  type: integer
                                  example: 2097152
                                fika_compatibility:
                                  type: string
                                  example: compatible
                            conflict:
                              type: boolean
                              example: true
                            dependencies:
                              type: array
                              example: []
                  -
                    description: 'Success (No Dependencies Found)'
                    type: object
                    example:
                      success: true
                      data: []
                    properties:
                      success:
                        type: boolean
                        example: true
                      data:
                        type: array
                        example: []
        400:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: 'Missing Parameter'
                    type: object
                    example:
                      success: false
                      code: VALIDATION_FAILED
                      message: "You must provide the 'mods' parameter."
                    properties:
                      success:
                        type: boolean
                        example: false
                      code:
                        type: string
                        example: VALIDATION_FAILED
                      message:
                        type: string
                        example: "You must provide the 'mods' parameter."
                  -
                    description: 'Invalid Format'
                    type: object
                    example:
                      success: false
                      code: VALIDATION_FAILED
                      message: "Invalid format for 'mods' parameter. Expected format: 'identifier:version,identifier:version' where identifier is either a mod_id (numeric) or GUID (string)"
                    properties:
                      success:
                        type: boolean
                        example: false
                      code:
                        type: string
                        example: VALIDATION_FAILED
                      message:
                        type: string
                        example: "Invalid format for 'mods' parameter. Expected format: 'identifier:version,identifier:version' where identifier is either a mod_id (numeric) or GUID (string)"
        401:
          description: Unauthenticated
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: UNAUTHENTICATED
                  message: Unauthenticated.
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: UNAUTHENTICATED
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Mods
    parameters:
      -
        in: path
        name: mods
        description: 'Comma-separated list of identifier:version pairs to resolve dependencies for. Identifier can be either a mod_id (numeric) or GUID (string). Version strings must match exactly.'
        example: '5:1.2.0,com.example.mod:2.0.5,15:3.1.0'
        required: true
        schema:
          type: string
  /api/v0/addons:
    get:
      summary: 'Get Addons'
      operationId: getAddons
      description: "Retrieves a paginated list of addons, allowing filtering, sorting, and relationship inclusion.\n\nFields available:<br /><code>guid, name, slug, teaser, thumbnail, downloads, detail_url,\ncontains_ai_content, contains_ads, mod_id, published_at, created_at, updated_at</code>\n\n<aside class=\"notice\">This endpoint only offers limited version information. Only the latest 6 versions will be\nincluded. For additional version information, use the <code>addon/{id}/versions</code> endpoint.</aside>\n\n<aside class=\"notice\">\nThe <code>owner</code> and <code>additional_authors</code> relationships are always included in the response by\ndefault and do not need to be specified in the <code>include</code> parameter.\n</aside>"
      parameters: []
      responses:
        200:
          description: 'Success (All fields, No Includes)'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    -
                      id: 1
                      guid: com.example.music-pack
                      name: 'Ultimate Music Pack'
                      slug: ultimate-music-pack
                      teaser: 'A collection of atmospheric music tracks'
                      thumbnail: ''
                      downloads: 1523
                      owner:
                        id: 1
                        name: AddonAuthor
                        profile_photo_url: 'https://example.com/profile.jpg'
                        cover_photo_url: 'https://example.com/cover.jpg'
                      additional_authors: []
                      source_code_links: []
                      detail_url: 'https://forge.sp-tarkov.com/addon/1/ultimate-music-pack'
                      contains_ads: false
                      contains_ai_content: false
                      mod_id: 5
                      is_detached: false
                      published_at: '2025-01-09T17:48:53.000000Z'
                      created_at: '2024-12-11T14:48:53.000000Z'
                      updated_at: '2025-04-10T13:50:00.000000Z'
                  links:
                    first: 'https://forge.test/api/v0/addons?page=1'
                    last: 'https://forge.test/api/v0/addons?page=1'
                    prev: null
                    next: null
                  meta:
                    current_page: 1
                    from: 1
                    last_page: 1
                    links:
                      -
                        url: null
                        label: '&laquo; Previous'
                        active: false
                      -
                        url: 'https://forge.test/api/v0/addons?page=1'
                        label: '1'
                        active: true
                      -
                        url: null
                        label: 'Next &raquo;'
                        active: false
                    path: 'https://forge.test/api/v0/addons'
                    per_page: 12
                    to: 1
                    total: 1
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        guid: com.example.music-pack
                        name: 'Ultimate Music Pack'
                        slug: ultimate-music-pack
                        teaser: 'A collection of atmospheric music tracks'
                        thumbnail: ''
                        downloads: 1523
                        owner:
                          id: 1
                          name: AddonAuthor
                          profile_photo_url: 'https://example.com/profile.jpg'
                          cover_photo_url: 'https://example.com/cover.jpg'
                        additional_authors: []
                        source_code_links: []
                        detail_url: 'https://forge.sp-tarkov.com/addon/1/ultimate-music-pack'
                        contains_ads: false
                        contains_ai_content: false
                        mod_id: 5
                        is_detached: false
                        published_at: '2025-01-09T17:48:53.000000Z'
                        created_at: '2024-12-11T14:48:53.000000Z'
                        updated_at: '2025-04-10T13:50:00.000000Z'
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        guid:
                          type: string
                          example: com.example.music-pack
                        name:
                          type: string
                          example: 'Ultimate Music Pack'
                        slug:
                          type: string
                          example: ultimate-music-pack
                        teaser:
                          type: string
                          example: 'A collection of atmospheric music tracks'
                        thumbnail:
                          type: string
                          example: ''
                        downloads:
                          type: integer
                          example: 1523
                        owner:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            name:
                              type: string
                              example: AddonAuthor
                            profile_photo_url:
                              type: string
                              example: 'https://example.com/profile.jpg'
                            cover_photo_url:
                              type: string
                              example: 'https://example.com/cover.jpg'
                        additional_authors:
                          type: array
                          example: []
                        source_code_links:
                          type: array
                          example: []
                        detail_url:
                          type: string
                          example: 'https://forge.sp-tarkov.com/addon/1/ultimate-music-pack'
                        contains_ads:
                          type: boolean
                          example: false
                        contains_ai_content:
                          type: boolean
                          example: false
                        mod_id:
                          type: integer
                          example: 5
                        is_detached:
                          type: boolean
                          example: false
                        published_at:
                          type: string
                          example: '2025-01-09T17:48:53.000000Z'
                        created_at:
                          type: string
                          example: '2024-12-11T14:48:53.000000Z'
                        updated_at:
                          type: string
                          example: '2025-04-10T13:50:00.000000Z'
                  links:
                    type: object
                    properties:
                      first:
                        type: string
                        example: 'https://forge.test/api/v0/addons?page=1'
                      last:
                        type: string
                        example: 'https://forge.test/api/v0/addons?page=1'
                      prev:
                        type: string
                        example: null
                        nullable: true
                      next:
                        type: string
                        example: null
                        nullable: true
                  meta:
                    type: object
                    properties:
                      current_page:
                        type: integer
                        example: 1
                      from:
                        type: integer
                        example: 1
                      last_page:
                        type: integer
                        example: 1
                      links:
                        type: array
                        example:
                          -
                            url: null
                            label: '&laquo; Previous'
                            active: false
                          -
                            url: 'https://forge.test/api/v0/addons?page=1'
                            label: '1'
                            active: true
                          -
                            url: null
                            label: 'Next &raquo;'
                            active: false
                        items:
                          type: object
                          properties:
                            url:
                              type: string
                              example: null
                              nullable: true
                            label:
                              type: string
                              example: '&laquo; Previous'
                            active:
                              type: boolean
                              example: false
                      path:
                        type: string
                        example: 'https://forge.test/api/v0/addons'
                      per_page:
                        type: integer
                        example: 12
                      to:
                        type: integer
                        example: 1
                      total:
                        type: integer
                        example: 1
        401:
          description: Unauthenticated
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: UNAUTHENTICATED
                  message: Unauthenticated.
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: UNAUTHENTICATED
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Addons
    parameters:
      -
        in: path
        name: fields
        description: 'Optional parameter. Comma-separated list of fields to include in the response. Defaults to all fields.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'name,slug,created_at'
      -
        in: path
        name: 'filter[id]'
        description: 'Optional parameter. Filter by comma-separated Addon IDs.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '1,5,10'
      -
        in: path
        name: 'filter[guid]'
        description: 'Optional parameter. Filter by comma-separated GUIDs.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'com.example.addon1,com.example.addon2'
      -
        in: path
        name: 'filter[name]'
        description: 'Optional parameter. Filter by name (fuzzy filter).'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'Music Pack'
      -
        in: path
        name: 'filter[slug]'
        description: 'Optional parameter. Filter by slug (fuzzy filter).'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: some-addon
      -
        in: path
        name: 'filter[teaser]'
        description: 'Optional parameter. Filter by teaser text (fuzzy filter).'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: important
      -
        in: path
        name: 'filter[mod_id]'
        description: 'Optional parameter. Filter by comma-separated mod IDs (parent mod).'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '1,2,3'
      -
        in: path
        name: 'filter[contains_ads]'
        description: 'Optional parameter. Filter by contains_ads status (1, true, 0, false).'
        required: true
        schema:
          type: boolean
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'false'
      -
        in: path
        name: 'filter[contains_ai_content]'
        description: 'Optional parameter. Filter by contains_ai_content status (1, true, 0, false).'
        required: true
        schema:
          type: boolean
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'false'
      -
        in: path
        name: 'filter[is_detached]'
        description: 'Optional parameter. Filter by detached status (1, true, 0, false).'
        required: true
        schema:
          type: boolean
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'false'
      -
        in: path
        name: 'filter[created_between]'
        description: 'Optional parameter. Filter by creation date range (YYYY-MM-DD,YYYY-MM-DD).'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2025-01-01,2025-03-31'
      -
        in: path
        name: 'filter[updated_between]'
        description: 'Optional parameter. Filter by update date range (YYYY-MM-DD,YYYY-MM-DD).'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2025-01-01,2025-03-31'
      -
        in: path
        name: 'filter[published_between]'
        description: 'Optional parameter. Filter by publication date range (YYYY-MM-DD,YYYY-MM-DD).'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2025-01-01,2025-03-31'
      -
        in: path
        name: query
        description: 'Optional parameter. Search query to filter addons using Meilisearch. This will search across name, slug, and description fields.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'music pack'
      -
        in: path
        name: include
        description: 'Optional parameter. Comma-separated list of relationships. Available: `versions`, `license`, `mod`, `source_code_links`.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'versions,mod'
      -
        in: path
        name: sort
        description: 'Optional parameter. Sort results by attribute(s). Default ASC. Prefix with `-` for DESC. Comma-separate multiple fields. Allowed: `name`, `created_at`, `updated_at`, `published_at`.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '-name'
      -
        in: path
        name: page
        description: 'Optional parameter. The page number for pagination.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 2
      -
        in: path
        name: per_page
        description: 'Optional parameter. The number of results per page (max 50).'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 25
  '/api/v0/addon/{addonId}':
    get:
      summary: 'Get Addon Details'
      operationId: getAddonDetails
      description: "Retrieves details for a single addon, allowing relationship inclusion.\n\nFields available:<br /><code>guid, name, slug, teaser, description, thumbnail, downloads, source_code_links,\ndetail_url, contains_ai_content, contains_ads, mod_id, is_detached, published_at, created_at, updated_at</code>\n\n<aside class=\"notice\">This endpoint only offers limited version information. Only the latest 6 versions will be\nincluded. For additional version information, use the <code>addon/{id}/versions</code> endpoint.</aside>\n\n<aside class=\"notice\">\nThe <code>owner</code> and <code>additional_authors</code> relationships are always included in the response by\ndefault and do not need to be specified in the <code>include</code> parameter.\n</aside>"
      parameters: []
      responses:
        200:
          description: 'Success (All fields, No Includes)'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    id: 1
                    guid: com.example.music-pack
                    name: 'Ultimate Music Pack'
                    slug: ultimate-music-pack
                    teaser: 'A collection of atmospheric music tracks'
                    description: 'This addon adds over 50 new music tracks...'
                    thumbnail: ''
                    downloads: 1523
                    owner:
                      id: 1
                      name: AddonAuthor
                      profile_photo_url: 'https://example.com/profile.jpg'
                      cover_photo_url: 'https://example.com/cover.jpg'
                    additional_authors: []
                    source_code_links: []
                    detail_url: 'https://forge.sp-tarkov.com/addon/1/ultimate-music-pack'
                    contains_ads: false
                    contains_ai_content: false
                    mod_id: 5
                    is_detached: false
                    published_at: '2025-01-09T17:48:53.000000Z'
                    created_at: '2024-12-11T14:48:53.000000Z'
                    updated_at: '2025-04-10T13:50:00.000000Z'
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 1
                      guid:
                        type: string
                        example: com.example.music-pack
                      name:
                        type: string
                        example: 'Ultimate Music Pack'
                      slug:
                        type: string
                        example: ultimate-music-pack
                      teaser:
                        type: string
                        example: 'A collection of atmospheric music tracks'
                      description:
                        type: string
                        example: 'This addon adds over 50 new music tracks...'
                      thumbnail:
                        type: string
                        example: ''
                      downloads:
                        type: integer
                        example: 1523
                      owner:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 1
                          name:
                            type: string
                            example: AddonAuthor
                          profile_photo_url:
                            type: string
                            example: 'https://example.com/profile.jpg'
                          cover_photo_url:
                            type: string
                            example: 'https://example.com/cover.jpg'
                      additional_authors:
                        type: array
                        example: []
                      source_code_links:
                        type: array
                        example: []
                      detail_url:
                        type: string
                        example: 'https://forge.sp-tarkov.com/addon/1/ultimate-music-pack'
                      contains_ads:
                        type: boolean
                        example: false
                      contains_ai_content:
                        type: boolean
                        example: false
                      mod_id:
                        type: integer
                        example: 5
                      is_detached:
                        type: boolean
                        example: false
                      published_at:
                        type: string
                        example: '2025-01-09T17:48:53.000000Z'
                      created_at:
                        type: string
                        example: '2024-12-11T14:48:53.000000Z'
                      updated_at:
                        type: string
                        example: '2025-04-10T13:50:00.000000Z'
        404:
          description: 'Addon Does Not Exist'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: NOT_FOUND
                  message: 'Resource not found.'
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: NOT_FOUND
                  message:
                    type: string
                    example: 'Resource not found.'
      tags:
        - Addons
    parameters:
      -
        in: path
        name: addonId
        description: ''
        example: '0'
        required: true
        schema:
          type: string
      -
        in: path
        name: fields
        description: 'Optional parameter. Comma-separated list of fields to include in the response. Defaults to all fields.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'name,slug,created_at'
      -
        in: path
        name: include
        description: 'Optional parameter. Comma-separated list of relationships. Available: `versions`, `license`, `mod`, `source_code_links`.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'versions,license'
  '/api/v0/addon/{addonId}/versions':
    get:
      summary: 'Get Addon Versions'
      operationId: getAddonVersions
      description: "Retrieves a paginated list of addon versions, allowing filtering, sorting, and relationship inclusion.\n\nFields available:<br /><code>id, version, description, link, content_length, mod_version_constraint,\ndownloads, published_at, created_at, updated_at</code>\n\nThe <code>content_length</code> field contains the file size in bytes as determined by the Content-Length header\nfrom the download link. This field may be null for versions created before file size validation was implemented."
      parameters: []
      responses:
        200:
          description: 'Success (All fields, No Includes)'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    -
                      id: 1
                      version: 1.2.0
                      description: 'Added 10 new tracks'
                      link: 'https://example.com/download/v1.2.0.zip'
                      content_length: 52428800
                      mod_version_constraint: ^2.0.0
                      downloads: 523
                      published_at: '2025-01-09T17:48:53.000000Z'
                      created_at: '2024-12-11T14:48:53.000000Z'
                      updated_at: '2025-04-10T13:50:00.000000Z'
                    -
                      id: 2
                      version: 1.1.0
                      description: 'Fixed audio glitches'
                      link: 'https://example.com/download/v1.1.0.zip'
                      content_length: 51200000
                      mod_version_constraint: ^2.0.0
                      downloads: 1000
                      published_at: '2024-12-15T10:30:00.000000Z'
                      created_at: '2024-11-20T08:15:00.000000Z'
                      updated_at: '2025-01-05T12:45:00.000000Z'
                  links:
                    first: 'https://forge.sp-tarkov.com/api/v0/addon/1/versions?page=1'
                    last: 'https://forge.sp-tarkov.com/api/v0/addon/1/versions?page=1'
                    prev: null
                    next: null
                  meta:
                    current_page: 1
                    from: 1
                    last_page: 1
                    links:
                      -
                        url: null
                        label: '&laquo; Previous'
                        active: false
                      -
                        url: 'https://forge.sp-tarkov.com/api/v0/addon/1/versions?page=1'
                        label: '1'
                        active: true
                      -
                        url: null
                        label: 'Next &raquo;'
                        active: false
                    path: 'https://forge.sp-tarkov.com/api/v0/addon/1/versions'
                    per_page: 12
                    to: 2
                    total: 2
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        version: 1.2.0
                        description: 'Added 10 new tracks'
                        link: 'https://example.com/download/v1.2.0.zip'
                        content_length: 52428800
                        mod_version_constraint: ^2.0.0
                        downloads: 523
                        published_at: '2025-01-09T17:48:53.000000Z'
                        created_at: '2024-12-11T14:48:53.000000Z'
                        updated_at: '2025-04-10T13:50:00.000000Z'
                      -
                        id: 2
                        version: 1.1.0
                        description: 'Fixed audio glitches'
                        link: 'https://example.com/download/v1.1.0.zip'
                        content_length: 51200000
                        mod_version_constraint: ^2.0.0
                        downloads: 1000
                        published_at: '2024-12-15T10:30:00.000000Z'
                        created_at: '2024-11-20T08:15:00.000000Z'
                        updated_at: '2025-01-05T12:45:00.000000Z'
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        version:
                          type: string
                          example: 1.2.0
                        description:
                          type: string
                          example: 'Added 10 new tracks'
                        link:
                          type: string
                          example: 'https://example.com/download/v1.2.0.zip'
                        content_length:
                          type: integer
                          example: 52428800
                        mod_version_constraint:
                          type: string
                          example: ^2.0.0
                        downloads:
                          type: integer
                          example: 523
                        published_at:
                          type: string
                          example: '2025-01-09T17:48:53.000000Z'
                        created_at:
                          type: string
                          example: '2024-12-11T14:48:53.000000Z'
                        updated_at:
                          type: string
                          example: '2025-04-10T13:50:00.000000Z'
                  links:
                    type: object
                    properties:
                      first:
                        type: string
                        example: 'https://forge.sp-tarkov.com/api/v0/addon/1/versions?page=1'
                      last:
                        type: string
                        example: 'https://forge.sp-tarkov.com/api/v0/addon/1/versions?page=1'
                      prev:
                        type: string
                        example: null
                        nullable: true
                      next:
                        type: string
                        example: null
                        nullable: true
                  meta:
                    type: object
                    properties:
                      current_page:
                        type: integer
                        example: 1
                      from:
                        type: integer
                        example: 1
                      last_page:
                        type: integer
                        example: 1
                      links:
                        type: array
                        example:
                          -
                            url: null
                            label: '&laquo; Previous'
                            active: false
                          -
                            url: 'https://forge.sp-tarkov.com/api/v0/addon/1/versions?page=1'
                            label: '1'
                            active: true
                          -
                            url: null
                            label: 'Next &raquo;'
                            active: false
                        items:
                          type: object
                          properties:
                            url:
                              type: string
                              example: null
                              nullable: true
                            label:
                              type: string
                              example: '&laquo; Previous'
                            active:
                              type: boolean
                              example: false
                      path:
                        type: string
                        example: 'https://forge.sp-tarkov.com/api/v0/addon/1/versions'
                      per_page:
                        type: integer
                        example: 12
                      to:
                        type: integer
                        example: 2
                      total:
                        type: integer
                        example: 2
        401:
          description: Unauthenticated
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: UNAUTHENTICATED
                  message: Unauthenticated.
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: UNAUTHENTICATED
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Addons
    parameters:
      -
        in: path
        name: addonId
        description: ''
        example: '0'
        required: true
        schema:
          type: string
      -
        in: path
        name: fields
        description: 'Optional parameter. Comma-separated list of fields to include in the response. Defaults to all fields.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'id,version,link,created_at'
      -
        in: path
        name: 'filter[id]'
        description: 'Optional parameter. Filter by addon version ID. Comma-separated.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '234,432'
      -
        in: path
        name: 'filter[version]'
        description: 'Optional parameter. Filter addon versions by using a SemVer constraint.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: ^1.0.0
      -
        in: path
        name: 'filter[description]'
        description: 'Optional parameter. Fuzzy-filter by addon version description.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'This is a description'
      -
        in: path
        name: 'filter[link]'
        description: 'Optional parameter. Filter by addon version link.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: example.com
      -
        in: path
        name: 'filter[published_between]'
        description: 'Optional parameter. Filter by addon version published between.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2025-01-01,2025-03-31'
      -
        in: path
        name: 'filter[created_between]'
        description: 'Optional parameter. Filter by addon version created between.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2025-01-01,2025-03-31'
      -
        in: path
        name: 'filter[updated_between]'
        description: 'Optional parameter. Filter by addon version updated between.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2025-01-01,2025-03-31'
      -
        in: path
        name: include
        description: 'Optional parameter. Comma-separated list of relationships. Available: virus_total_links.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: virus_total_links
      -
        in: path
        name: sort
        description: 'Optional parameter. Sort results by attribute(s). Default ASC. Prefix with `-` for DESC. Comma-separate multiple fields.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '-version,-created_at'
      -
        in: path
        name: page
        description: 'Optional parameter. The page number for pagination.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 2
      -
        in: path
        name: per_page
        description: 'Optional parameter. The number of results per page (max 50).'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 25
  /api/v0/addons/dependencies:
    get:
      summary: 'Get Addon Dependencies'
      operationId: getAddonDependencies
      description: "Resolves the complete dependency tree for one or more addon versions, returning all required mod dependencies.\nThis endpoint is designed for mod managers and installers that need to determine which mods must be downloaded\nand installed to satisfy all dependencies for a given set of addons.\n\n**How it works:**\n- Accepts one or more `identifier:version` pairs where identifier can be either an addon_id (numeric) or slug (string) (e.g., `5:1.2.0,my-addon:2.0.5`)\n- For each queried addon version, resolves all direct mod dependencies and their transitive dependencies\n- Returns a flattened tree structure with each dependency and its nested dependencies\n- Applies intelligent deduplication when multiple queried addons depend on the same mod\n- Detects and flags version constraint conflicts\n\n**Smart Deduplication:**\nWhen multiple queried addons share the same dependency, the endpoint analyzes semantic version constraints:\n- **Compatible constraints** (e.g., ^1.0.0 and ^1.5.0): Returns only the highest version satisfying all constraints, with `conflict: false`\n- **Incompatible constraints** (e.g., ^1.0.0 and ^2.0.0): Returns all conflicting versions, each marked with `conflict: true`\n\n**Response Structure:**\nEach mod in the response includes:\n- **Mod fields**: `id`, `guid`, `name`, `slug` - Essential identifying information\n- **latest_compatible_version**: The highest version satisfying all constraints\n- **conflict**: Boolean indicating if this dependency has incompatible version constraints\n- **dependencies**: Array of nested mod dependencies (same structure, recursive)"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: 'Success (Compatible Dependencies)'
                    type: object
                    example:
                      success: true
                      data:
                        -
                          id: 5
                          guid: com.example.dependency
                          name: 'Dependency Mod'
                          slug: dependency-mod
                          latest_compatible_version:
                            id: 42
                            version: 2.1.0
                            link: 'https://example.com/mods/dependency-mod-2.1.0.zip'
                            content_length: 1048576
                            fika_compatibility: compatible
                          conflict: false
                          dependencies: []
                    properties:
                      success:
                        type: boolean
                        example: true
                      data:
                        type: array
                        example:
                          -
                            id: 5
                            guid: com.example.dependency
                            name: 'Dependency Mod'
                            slug: dependency-mod
                            latest_compatible_version:
                              id: 42
                              version: 2.1.0
                              link: 'https://example.com/mods/dependency-mod-2.1.0.zip'
                              content_length: 1048576
                              fika_compatibility: compatible
                            conflict: false
                            dependencies: []
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 5
                            guid:
                              type: string
                              example: com.example.dependency
                            name:
                              type: string
                              example: 'Dependency Mod'
                            slug:
                              type: string
                              example: dependency-mod
                            latest_compatible_version:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 42
                                version:
                                  type: string
                                  example: 2.1.0
                                link:
                                  type: string
                                  example: 'https://example.com/mods/dependency-mod-2.1.0.zip'
                                content_length:
                                  type: integer
                                  example: 1048576
                                fika_compatibility:
                                  type: string
                                  example: compatible
                            conflict:
                              type: boolean
                              example: false
                            dependencies:
                              type: array
                              example: []
                  -
                    description: 'Success (No Dependencies Found)'
                    type: object
                    example:
                      success: true
                      data: []
                    properties:
                      success:
                        type: boolean
                        example: true
                      data:
                        type: array
                        example: []
        400:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: 'Missing Parameter'
                    type: object
                    example:
                      success: false
                      code: VALIDATION_FAILED
                      message: "You must provide the 'addons' parameter."
                    properties:
                      success:
                        type: boolean
                        example: false
                      code:
                        type: string
                        example: VALIDATION_FAILED
                      message:
                        type: string
                        example: "You must provide the 'addons' parameter."
                  -
                    description: 'Invalid Format'
                    type: object
                    example:
                      success: false
                      code: VALIDATION_FAILED
                      message: "Invalid format for 'addons' parameter. Expected format: 'identifier:version,identifier:version' where identifier is either an addon_id (numeric) or slug (string)"
                    properties:
                      success:
                        type: boolean
                        example: false
                      code:
                        type: string
                        example: VALIDATION_FAILED
                      message:
                        type: string
                        example: "Invalid format for 'addons' parameter. Expected format: 'identifier:version,identifier:version' where identifier is either an addon_id (numeric) or slug (string)"
        401:
          description: Unauthenticated
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: UNAUTHENTICATED
                  message: Unauthenticated.
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: UNAUTHENTICATED
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Addons
    parameters:
      -
        in: path
        name: addons
        description: 'Comma-separated list of identifier:version pairs to resolve dependencies for. Identifier can be either an addon_id (numeric) or slug (string). Version strings must match exactly.'
        example: '5:1.2.0,my-addon:2.0.5,15:3.1.0'
        required: true
        schema:
          type: string
  /api/v0/mod-categories:
    get:
      summary: 'Get Mod Categories'
      operationId: getModCategories
      description: "Retrieves a paginated list of mod categories, allowing filtering and sorting.\n\nFields available:<br /><code>id, hub_id, title, slug, description</code>"
      parameters: []
      responses:
        200:
          description: Success
          content:
            text/plain:
              schema:
                type: string
                example: "{\n    \"success\": true,\n    \"data\": [\n        {\n            \"id\": 1,\n            \"hub_id\": 12,\n            \"title\": \"Weapons\",\n            \"slug\": \"weapons\",\n            \"description\": \"Weapon mods and attachments\",\n        },\n        {\n            \"id\": 2,\n            \"hub_id\": 13,\n            \"title\": \"Gear\",\n            \"slug\": \"gear\",\n            \"description\": \"Armor, rigs, and equipment\",\n        }\n    ],\n    \"links\": {\n        \"first\": \"https://forge.sp-tarkov.com/api/v0/mod-categories?page=1\",\n        \"last\": \"https://forge.sp-tarkov.com/api/v0/mod-categories?page=1\",\n        \"prev\": null,\n        \"next\": null\n    },\n    \"meta\": {\n        \"current_page\": 1,\n        \"from\": 1,\n        \"last_page\": 1,\n        \"links\": [\n            {\n                \"url\": null,\n                \"label\": \"&laquo; Previous\",\n                \"active\": false\n            },\n            {\n                \"url\": \"https://forge.sp-tarkov.com/api/v0/mod-categories?page=1\",\n                \"label\": \"1\",\n                \"active\": true\n            },\n            {\n                \"url\": null,\n                \"label\": \"Next &raquo;\",\n                \"active\": false\n            }\n        ],\n        \"path\": \"https://forge.sp-tarkov.com/api/v0/mod-categories\",\n        \"per_page\": 50,\n        \"to\": 2,\n        \"total\": 2\n    }\n}"
        401:
          description: Unauthenticated
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: UNAUTHENTICATED
                  message: Unauthenticated.
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: UNAUTHENTICATED
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - 'Mod Categories'
    parameters:
      -
        in: path
        name: fields
        description: 'Optional parameter. Comma-separated list of fields to include in the response. Defaults to all fields.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'id,title,slug'
      -
        in: path
        name: 'filter[id]'
        description: 'Optional parameter. Filter by category ID. Comma-separated.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '1,2,3'
      -
        in: path
        name: 'filter[slug]'
        description: 'Optional parameter. Filter by category slug. Comma-separated.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'weapons,gear'
      -
        in: path
        name: 'filter[title]'
        description: 'Optional parameter. Filter by category title (wildcard search).'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: weapon
      -
        in: path
        name: sort
        description: 'Optional parameter. Sort results by attribute(s). Default ASC. Prefix with `-` for DESC. Comma-separate multiple fields.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'title,-slug'
      -
        in: path
        name: page
        description: 'Optional parameter. The page number for pagination.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 2
      -
        in: path
        name: per_page
        description: 'Optional parameter. The number of results per page (max 100).'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 50
  '/api/v0/mod-categories/{identifier}':
    get:
      summary: 'Get Mod Category'
      operationId: getModCategory
      description: 'Retrieves a single mod category by ID or slug.'
      parameters: []
      responses:
        200:
          description: Success
          content:
            text/plain:
              schema:
                type: string
                example: "{\n    \"success\": true,\n    \"data\": {\n        \"id\": 1,\n        \"hub_id\": 12,\n        \"title\": \"Weapons\",\n        \"slug\": \"weapons\",\n        \"description\": \"Weapon mods and attachments\",\n    }\n}"
        404:
          description: 'Not Found'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: NOT_FOUND
                  message: 'The requested resource was not found.'
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: NOT_FOUND
                  message:
                    type: string
                    example: 'The requested resource was not found.'
      tags:
        - 'Mod Categories'
    parameters:
      -
        in: path
        name: identifier
        description: ''
        example: illum
        required: true
        schema:
          type: string
      -
        in: path
        name: fields
        description: 'Optional parameter. Comma-separated list of fields to include in the response. Defaults to all fields.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'id,title,slug'
  /api/v0/spt/versions:
    get:
      summary: 'Get SPT Versions'
      operationId: getSPTVersions
      description: "Retrieves a paginated list of SPT versions, allowing filtering and sorting.\n\nFields available:<br /><code>id, version, version_major, version_minor, version_patch, version_labels, mod_count,\nlink, color_class, created_at, updated_at</code>"
      parameters: []
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    -
                      id: 2
                      version: 3.11.3
                      version_major: 3
                      version_minor: 11
                      version_patch: 3
                      version_labels: ''
                      mod_count: 371
                      link: 'https://github.com/sp-tarkov/build/releases/tag/3.11.3'
                      color_class: green
                      created_at: '2025-04-08T19:29:40.000000Z'
                      updated_at: '2025-04-08T19:29:40.000000Z'
                    -
                      id: 3
                      version: 3.11.2
                      version_major: 3
                      version_minor: 11
                      version_patch: 2
                      version_labels: ''
                      mod_count: 371
                      link: 'https://github.com/sp-tarkov/build/releases/tag/3.11.2'
                      color_class: green
                      created_at: '2025-03-31T12:39:00.000000Z'
                      updated_at: '2025-03-31T12:39:00.000000Z'
                  links:
                    first: 'https://forge.sp-tarkov.com/api/v0/spt/versions?page=1'
                    last: 'https://forge.sp-tarkov.com/api/v0/spt/versions?page=1'
                    prev: null
                    next: null
                  meta:
                    current_page: 1
                    from: 1
                    last_page: 1
                    links:
                      -
                        url: null
                        label: '&laquo; Previous'
                        active: false
                      -
                        url: 'https://forge.sp-tarkov.com/api/v0/spt/versions?page=1'
                        label: '1'
                        active: true
                      -
                        url: null
                        label: 'Next &raquo;'
                        active: false
                    path: 'https://forge.sp-tarkov.com/api/v0/spt/versions'
                    per_page: 12
                    to: 2
                    total: 2
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: array
                    example:
                      -
                        id: 2
                        version: 3.11.3
                        version_major: 3
                        version_minor: 11
                        version_patch: 3
                        version_labels: ''
                        mod_count: 371
                        link: 'https://github.com/sp-tarkov/build/releases/tag/3.11.3'
                        color_class: green
                        created_at: '2025-04-08T19:29:40.000000Z'
                        updated_at: '2025-04-08T19:29:40.000000Z'
                      -
                        id: 3
                        version: 3.11.2
                        version_major: 3
                        version_minor: 11
                        version_patch: 2
                        version_labels: ''
                        mod_count: 371
                        link: 'https://github.com/sp-tarkov/build/releases/tag/3.11.2'
                        color_class: green
                        created_at: '2025-03-31T12:39:00.000000Z'
                        updated_at: '2025-03-31T12:39:00.000000Z'
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 2
                        version:
                          type: string
                          example: 3.11.3
                        version_major:
                          type: integer
                          example: 3
                        version_minor:
                          type: integer
                          example: 11
                        version_patch:
                          type: integer
                          example: 3
                        version_labels:
                          type: string
                          example: ''
                        mod_count:
                          type: integer
                          example: 371
                        link:
                          type: string
                          example: 'https://github.com/sp-tarkov/build/releases/tag/3.11.3'
                        color_class:
                          type: string
                          example: green
                        created_at:
                          type: string
                          example: '2025-04-08T19:29:40.000000Z'
                        updated_at:
                          type: string
                          example: '2025-04-08T19:29:40.000000Z'
                  links:
                    type: object
                    properties:
                      first:
                        type: string
                        example: 'https://forge.sp-tarkov.com/api/v0/spt/versions?page=1'
                      last:
                        type: string
                        example: 'https://forge.sp-tarkov.com/api/v0/spt/versions?page=1'
                      prev:
                        type: string
                        example: null
                        nullable: true
                      next:
                        type: string
                        example: null
                        nullable: true
                  meta:
                    type: object
                    properties:
                      current_page:
                        type: integer
                        example: 1
                      from:
                        type: integer
                        example: 1
                      last_page:
                        type: integer
                        example: 1
                      links:
                        type: array
                        example:
                          -
                            url: null
                            label: '&laquo; Previous'
                            active: false
                          -
                            url: 'https://forge.sp-tarkov.com/api/v0/spt/versions?page=1'
                            label: '1'
                            active: true
                          -
                            url: null
                            label: 'Next &raquo;'
                            active: false
                        items:
                          type: object
                          properties:
                            url:
                              type: string
                              example: null
                              nullable: true
                            label:
                              type: string
                              example: '&laquo; Previous'
                            active:
                              type: boolean
                              example: false
                      path:
                        type: string
                        example: 'https://forge.sp-tarkov.com/api/v0/spt/versions'
                      per_page:
                        type: integer
                        example: 12
                      to:
                        type: integer
                        example: 2
                      total:
                        type: integer
                        example: 2
        401:
          description: Unauthenticated
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  code: UNAUTHENTICATED
                  message: Unauthenticated.
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: UNAUTHENTICATED
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - 'SPT Versions'
    parameters:
      -
        in: path
        name: fields
        description: 'Optional parameter. Comma-separated list of fields to include in the response. Defaults to all fields.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 'id,version,created_at'
      -
        in: path
        name: 'filter[id]'
        description: 'Optional parameter. Filter by SPT version ID. Comma-separated.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '234,432'
      -
        in: path
        name: 'filter[created_between]'
        description: 'Optional parameter. Filter between by two created_at dates.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2025-01-01,2025-03-31'
      -
        in: path
        name: 'filter[updated_between]'
        description: 'Optional parameter. Filter between by two updated_at dates.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2025-01-01,2025-03-31'
      -
        in: path
        name: 'filter[spt_version]'
        description: 'Optional parameter. Filter versions that are compatible with a SemVer constraint.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: ^3.9.0
      -
        in: path
        name: sort
        description: 'Optional parameter. Sort results by attribute(s). Default ASC. Prefix with `-` for DESC. Comma-separate multiple fields.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '-version,created_at'
      -
        in: path
        name: page
        description: 'Optional parameter. The page number for pagination.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 2
      -
        in: path
        name: per_page
        description: 'Optional parameter. The number of results per page (max 50).'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 25
