openapi: 3.1.0 info: title: PlanetScale Platform Backups Schema Recommendations API description: The PlanetScale Platform API provides programmatic access to manage PlanetScale serverless MySQL-compatible databases. It allows developers to create and manage databases, branches, deploy requests, passwords, backups, service tokens, organization members, teams, bouncers, and billing data. The API supports authentication via service tokens and OAuth, enabling integration into CI/CD pipelines and infrastructure-as-code workflows. version: 1.0.0 contact: name: PlanetScale Support url: https://support.planetscale.com termsOfService: https://planetscale.com/legal/tos license: name: Proprietary url: https://planetscale.com/legal/tos servers: - url: https://api.planetscale.com/v1 description: PlanetScale Production API security: - serviceToken: [] tags: - name: Schema Recommendations description: View and manage schema recommendations for optimizing database performance and structure. paths: /organizations/{organization}/databases/{database}/schema-recommendations: get: operationId: listSchemaRecommendations summary: List schema recommendations description: Returns a list of schema recommendations for the specified database, identifying potential optimization opportunities. tags: - Schema Recommendations parameters: - $ref: '#/components/parameters/OrganizationParam' - $ref: '#/components/parameters/DatabaseParam' responses: '200': description: Successful response with list of recommendations content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/SchemaRecommendation' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: responses: Unauthorized: description: Authentication failed. The service token or OAuth token is missing, invalid, or lacks the required permissions. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' parameters: OrganizationParam: name: organization in: path required: true description: The name of the organization. schema: type: string DatabaseParam: name: database in: path required: true description: The name of the database. schema: type: string schemas: SchemaRecommendation: type: object description: A schema optimization recommendation for a database. properties: id: type: string description: The unique identifier of the recommendation. type: type: string description: The type of recommendation. table_name: type: string description: The table the recommendation applies to. description: type: string description: A human-readable description of the recommendation. severity: type: string description: The severity level of the recommendation. enum: - info - warning - critical dismissed: type: boolean description: Whether the recommendation has been dismissed. created_at: type: string format: date-time description: The timestamp when the recommendation was generated. Error: type: object description: An error response from the PlanetScale API. properties: code: type: string description: A machine-readable error code. message: type: string description: A human-readable error message. securitySchemes: serviceToken: type: apiKey in: header name: Authorization description: Service token authentication. Use the format 'ServiceToken {token_id}:{token_value}' in the Authorization header. bearerAuth: type: http scheme: bearer description: OAuth 2.0 bearer token authentication. Obtain tokens via the PlanetScale OAuth authorization code flow. externalDocs: description: PlanetScale API Documentation url: https://planetscale.com/docs/api/reference/getting-started-with-planetscale-api