{
  "openapi": "3.0.4",
  "info": {
    "title": "DevRate API",
    "description": "Backend API for the DevRate Roblox developer reputation platform.",
    "version": "v1"
  },
  "paths": {
    "/api/auth/register": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "deprecated": true
      }
    },
    "/api/auth/login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "deprecated": true
      }
    },
    "/api/auth/refresh": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/verify-email": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyEmailRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyEmailRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyEmailRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "deprecated": true
      }
    },
    "/api/auth/resend-verification": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResendVerificationEmailRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ResendVerificationEmailRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ResendVerificationEmailRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "deprecated": true
      }
    },
    "/api/auth/forgot-password": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotPasswordRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotPasswordRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotPasswordRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "deprecated": true
      }
    },
    "/api/auth/reset-password": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "deprecated": true
      }
    },
    "/api/auth/logout": {
      "post": {
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/": {
      "get": {
        "tags": [
          "DevRate.API"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/index.html": {
      "get": {
        "tags": [
          "DevRate.API"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/health": {
      "get": {
        "tags": [
          "DevRate.API"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/incidents": {
      "get": {
        "tags": [
          "Incidents"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SecurityIncidentResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SecurityIncidentResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SecurityIncidentResponse"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Incidents"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SecurityIncidentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SecurityIncidentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SecurityIncidentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityIncidentResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityIncidentResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityIncidentResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/incidents/{id}": {
      "put": {
        "tags": [
          "Incidents"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SecurityIncidentUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SecurityIncidentUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SecurityIncidentUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityIncidentResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityIncidentResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityIncidentResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/legal/privacy-policy": {
      "get": {
        "tags": [
          "Legal"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/legal/terms-of-service": {
      "get": {
        "tags": [
          "Legal"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/legal/data-processing-agreement": {
      "get": {
        "tags": [
          "Legal"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/moderation/verification": {
      "post": {
        "tags": [
          "Moderation"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerificationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VerificationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VerificationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/moderation/suspend": {
      "post": {
        "tags": [
          "Moderation"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModerationUserRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ModerationUserRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ModerationUserRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/moderation/unsuspend/{userId}": {
      "post": {
        "tags": [
          "Moderation"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/moderation/audit-logs": {
      "get": {
        "tags": [
          "Moderation"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/moderation/users/{userId}/role": {
      "post": {
        "tags": [
          "Moderation"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignRoleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignRoleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AssignRoleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/profiles/{id}": {
      "get": {
        "tags": [
          "Profiles"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/profiles/slug/{slug}": {
      "get": {
        "tags": [
          "Profiles"
        ],
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/profiles/me": {
      "get": {
        "tags": [
          "Profiles"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Profiles"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileUpsertRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileUpsertRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileUpsertRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Profiles"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/profiles/slug-available/{slug}": {
      "get": {
        "tags": [
          "Profiles"
        ],
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/profiles/{profileId}/likes": {
      "post": {
        "tags": [
          "Profiles"
        ],
        "parameters": [
          {
            "name": "profileId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dislike",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Profiles"
        ],
        "parameters": [
          {
            "name": "profileId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/profiles/comments": {
      "post": {
        "tags": [
          "Profiles"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CommentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CommentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/profiles/roblox-placeholder": {
      "post": {
        "tags": [
          "Profiles"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlaceholderProfileRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PlaceholderProfileRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PlaceholderProfileRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/ratings": {
      "post": {
        "tags": [
          "Ratings"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RatingRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RatingRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RatingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RatingResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RatingResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RatingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/ratings/{id}": {
      "put": {
        "tags": [
          "Ratings"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RatingRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RatingRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RatingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RatingResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RatingResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RatingResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Ratings"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/reports": {
      "post": {
        "tags": [
          "Reports"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/reports/{id}/resolve": {
      "post": {
        "tags": [
          "Reports"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResolveReportRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ResolveReportRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ResolveReportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/robloxauth/authorize": {
      "post": {
        "tags": [
          "RobloxAuth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RobloxAuthorizeResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RobloxAuthorizeResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RobloxAuthorizeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/robloxauth/login/authorize": {
      "post": {
        "tags": [
          "RobloxAuth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RobloxAuthorizeResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RobloxAuthorizeResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RobloxAuthorizeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/robloxauth/link/authorize": {
      "post": {
        "tags": [
          "RobloxAuth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RobloxAuthorizeResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RobloxAuthorizeResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RobloxAuthorizeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/robloxauth/callback": {
      "get": {
        "tags": [
          "RobloxAuth"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "RobloxAuth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RobloxCallbackRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RobloxCallbackRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RobloxCallbackRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/search/profiles": {
      "get": {
        "tags": [
          "Search"
        ],
        "parameters": [
          {
            "name": "Query",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "VerifiedOnly",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "MinimumRating",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MinimumLikes",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Skills",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "SortBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponsePagedResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponsePagedResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponsePagedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/search/top-verified": {
      "get": {
        "tags": [
          "Search"
        ],
        "parameters": [
          {
            "name": "take",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProfileResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProfileResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProfileResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/search/trending": {
      "get": {
        "tags": [
          "Search"
        ],
        "parameters": [
          {
            "name": "take",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProfileResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProfileResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProfileResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/subscriptions/status": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/users/me/consents": {
      "get": {
        "tags": [
          "Users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConsentResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConsentResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConsentResponse"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Users"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ConsentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/consents/{type}": {
      "delete": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ConsentType"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/users/me/export": {
      "get": {
        "tags": [
          "Users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserDataExportResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDataExportResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDataExportResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/data-requests": {
      "get": {
        "tags": [
          "Users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DataSubjectRequestResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DataSubjectRequestResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DataSubjectRequestResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/audit-logs": {
      "get": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/users/me/contact-email": {
      "put": {
        "tags": [
          "Users"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactEmailRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactEmailRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactEmailRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserSummary"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/{userId}/anonymize-now": {
      "post": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AssignRoleRequest": {
        "type": "object",
        "properties": {
          "role": {
            "$ref": "#/components/schemas/UserRole"
          }
        },
        "additionalProperties": false
      },
      "AuthResponse": {
        "type": "object",
        "properties": {
          "accessToken": {
            "type": "string",
            "nullable": true
          },
          "refreshToken": {
            "type": "string",
            "nullable": true
          },
          "accessTokenExpiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "user": {
            "$ref": "#/components/schemas/UserSummary"
          },
          "profile": {
            "$ref": "#/components/schemas/ProfileResponse"
          }
        },
        "additionalProperties": false
      },
      "CollaborationType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "format": "int32"
      },
      "CommentRequest": {
        "type": "object",
        "properties": {
          "profileId": {
            "type": "string",
            "format": "uuid"
          },
          "body": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CompensationType": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "format": "int32"
      },
      "ConsentRequest": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/ConsentType"
          },
          "version": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConsentResponse": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/ConsentType"
          },
          "version": {
            "type": "string",
            "nullable": true
          },
          "grantedAt": {
            "type": "string",
            "format": "date-time"
          },
          "withdrawnAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConsentType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6
        ],
        "type": "integer",
        "format": "int32"
      },
      "ContactEmailRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DataSubjectRequestResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "$ref": "#/components/schemas/DataSubjectRequestType"
          },
          "status": {
            "$ref": "#/components/schemas/DataSubjectRequestStatus"
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "details": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DataSubjectRequestStatus": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "DataSubjectRequestType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "ForgotPasswordRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoginRequest": {
        "type": "object",
        "properties": {
          "login": {
            "type": "string",
            "nullable": true
          },
          "password": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ModerationUserRequest": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "reason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PlaceholderProfileRequest": {
        "type": "object",
        "properties": {
          "robloxUserId": {
            "type": "integer",
            "format": "int64"
          },
          "robloxUsername": {
            "type": "string",
            "nullable": true
          },
          "robloxDisplayName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProfileResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "slug": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "bio": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "skills": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "portfolioLinks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "socialLinks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "robloxUserId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "robloxUsername": {
            "type": "string",
            "nullable": true
          },
          "robloxDisplayName": {
            "type": "string",
            "nullable": true
          },
          "isPlaceholder": {
            "type": "boolean"
          },
          "isSearchable": {
            "type": "boolean"
          },
          "averageRating": {
            "type": "number",
            "format": "double"
          },
          "totalLikesCount": {
            "type": "integer",
            "format": "int32"
          },
          "totalRatingsCount": {
            "type": "integer",
            "format": "int32"
          },
          "reputationPoints": {
            "type": "integer",
            "format": "int32"
          },
          "trustScore": {
            "type": "integer",
            "format": "int32"
          },
          "verificationStatus": {
            "type": "string",
            "nullable": true
          },
          "moderationStatus": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProfileResponsePagedResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileResponse"
            },
            "nullable": true
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ProfileUpsertRequest": {
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "bio": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "skills": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "portfolioLinks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "socialLinks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "avatarUrl": {
            "type": "string",
            "nullable": true
          },
          "isSearchable": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "RatingCategory": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8
        ],
        "type": "integer",
        "format": "int32"
      },
      "RatingRequest": {
        "type": "object",
        "properties": {
          "targetProfileId": {
            "type": "string",
            "format": "uuid"
          },
          "jobTitle": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "$ref": "#/components/schemas/RatingCategory"
          },
          "collaborationType": {
            "$ref": "#/components/schemas/CollaborationType"
          },
          "compensationType": {
            "$ref": "#/components/schemas/CompensationType"
          },
          "workDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "stars": {
            "type": "integer",
            "format": "int32"
          },
          "reviewText": {
            "type": "string",
            "nullable": true
          },
          "pros": {
            "type": "string",
            "nullable": true
          },
          "cons": {
            "type": "string",
            "nullable": true
          },
          "evidenceLinks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "wouldWorkAgain": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "RatingResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "reviewerId": {
            "type": "string",
            "format": "uuid"
          },
          "targetProfileId": {
            "type": "string",
            "format": "uuid"
          },
          "jobTitle": {
            "type": "string",
            "nullable": true
          },
          "stars": {
            "type": "integer",
            "format": "int32"
          },
          "reviewText": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "RatingStatus": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "format": "int32"
      },
      "RefreshTokenRequest": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "refreshToken": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RegisterRequest": {
        "type": "object",
        "properties": {
          "userName": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "password": {
            "type": "string",
            "nullable": true
          },
          "acceptPrivacyPolicy": {
            "type": "boolean"
          },
          "acceptTermsOfService": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ReportReason": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "format": "int32"
      },
      "ReportRequest": {
        "type": "object",
        "properties": {
          "ratingId": {
            "type": "string",
            "format": "uuid"
          },
          "reason": {
            "$ref": "#/components/schemas/ReportReason"
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReportStatus": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "ResendVerificationEmailRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ResetPasswordRequest": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "token": {
            "type": "string",
            "nullable": true
          },
          "newPassword": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ResolveReportRequest": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/ReportStatus"
          },
          "ratingStatus": {
            "$ref": "#/components/schemas/RatingStatus"
          },
          "moderatorNotes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RobloxAuthorizeResponse": {
        "type": "object",
        "properties": {
          "authorizationUrl": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RobloxCallbackRequest": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SecurityIncidentRequest": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "severity": {
            "$ref": "#/components/schemas/SecurityIncidentSeverity"
          },
          "discoveredAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SecurityIncidentResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "severity": {
            "$ref": "#/components/schemas/SecurityIncidentSeverity"
          },
          "status": {
            "$ref": "#/components/schemas/SecurityIncidentStatus"
          },
          "discoveredAt": {
            "type": "string",
            "format": "date-time"
          },
          "supervisoryAuthorityDeadlineAt": {
            "type": "string",
            "format": "date-time"
          },
          "notifiedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdByUserId": {
            "type": "string",
            "format": "uuid"
          },
          "updatedByUserId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SecurityIncidentSeverity": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "format": "int32"
      },
      "SecurityIncidentStatus": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "format": "int32"
      },
      "SecurityIncidentUpdateRequest": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/SecurityIncidentStatus"
          },
          "severity": {
            "$ref": "#/components/schemas/SecurityIncidentSeverity"
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "notifiedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserDataExportResponse": {
        "type": "object",
        "properties": {
          "user": {
            "nullable": true
          },
          "profile": {
            "nullable": true
          },
          "robloxIdentity": {
            "nullable": true
          },
          "ratingsWritten": {
            "type": "array",
            "items": { },
            "nullable": true
          },
          "ratingsReceived": {
            "type": "array",
            "items": { },
            "nullable": true
          },
          "comments": {
            "type": "array",
            "items": { },
            "nullable": true
          },
          "reports": {
            "type": "array",
            "items": { },
            "nullable": true
          },
          "likes": {
            "type": "array",
            "items": { },
            "nullable": true
          },
          "subscriptions": {
            "type": "array",
            "items": { },
            "nullable": true
          },
          "auditLogs": {
            "type": "array",
            "items": { },
            "nullable": true
          },
          "consents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsentResponse"
            },
            "nullable": true
          },
          "dataSubjectRequests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataSubjectRequestResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserRole": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "type": "integer",
        "format": "int32"
      },
      "UserSummary": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "userName": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "role": {
            "type": "string",
            "nullable": true
          },
          "hasLinkedRoblox": {
            "type": "boolean"
          },
          "isSuspended": {
            "type": "boolean"
          },
          "isEmailVerified": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "VerificationRequest": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "$ref": "#/components/schemas/VerificationStatus"
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VerificationStatus": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "format": "int32"
      },
      "VerifyEmailRequest": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "token": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "description": "Paste your JWT access token. Swagger will send it as: Bearer {token}",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "Bearer": [ ]
    }
  ],
  "tags": [
    {
      "name": "Auth"
    },
    {
      "name": "DevRate.API"
    },
    {
      "name": "Incidents"
    },
    {
      "name": "Legal"
    },
    {
      "name": "Moderation"
    },
    {
      "name": "Profiles"
    },
    {
      "name": "Ratings"
    },
    {
      "name": "Reports"
    },
    {
      "name": "RobloxAuth"
    },
    {
      "name": "Search"
    },
    {
      "name": "Subscriptions"
    },
    {
      "name": "Users"
    }
  ]
}