openapi: 3.1.0 info: title: Backstage Software Catalog Entities API description: 'The Backstage Software Catalog API exposes the entities and locations managed by the catalog backend. Endpoints are served by the catalog backend plugin under {backend.baseUrl}/api/catalog. Authentication is optional or required depending on the install, and uses a Bearer token issued by the Backstage identity API. This file is an API Evangelist research artifact for the scalable-software-and-systems topic. ' version: 1.0.0 contact: name: API Evangelist url: https://apievangelist.com servers: - url: http://localhost:7007/api/catalog description: Local Backstage backend - url: https://{backend}/api/catalog description: Hosted Backstage backend variables: backend: default: backstage.example.com description: Backstage backend hostname security: - BearerAuth: [] tags: - name: Entities paths: /entities/by-query: get: summary: Query entities operationId: queryEntities tags: - Entities description: Query entities with filtering, field selection, and pagination. responses: '200': description: A page of entities. post: summary: Query entities with advanced predicates operationId: queryEntitiesPost tags: - Entities requestBody: required: true content: application/json: schema: type: object responses: '200': description: A page of entities. /entities/by-uid/{uid}: parameters: - name: uid in: path required: true schema: type: string get: summary: Get an entity by UID operationId: getEntityByUid tags: - Entities responses: '200': description: A single entity. delete: summary: Delete an entity by UID operationId: deleteEntityByUid tags: - Entities responses: '204': description: Entity deleted. /entities/by-name/{kind}/{namespace}/{name}: parameters: - name: kind in: path required: true schema: type: string - name: namespace in: path required: true schema: type: string - name: name in: path required: true schema: type: string get: summary: Get an entity by reference triplet operationId: getEntityByName tags: - Entities responses: '200': description: A single entity. /entities/by-refs: post: summary: Get multiple entities by entity references operationId: getEntitiesByRefs tags: - Entities requestBody: required: true content: application/json: schema: type: object properties: entityRefs: type: array items: type: string responses: '200': description: Entities array. /refresh: post: summary: Refresh an entity operationId: refreshEntity tags: - Entities requestBody: required: true content: application/json: schema: type: object properties: entityRef: type: string responses: '200': description: Refresh accepted. /validate-entity: post: summary: Validate entity schema operationId: validateEntity tags: - Entities requestBody: required: true content: application/json: schema: type: object responses: '200': description: Validation result. components: securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: BackstageToken