openapi: 3.2.0 info: title: 7SIGNAL API Keys API description: This is the 7SIGNAL public API for interacting with the 7SIGNAL Platform version: 2.21.1 contact: email: info@7signal.com license: name: All Rights Reserved url: https://www.7signal.com/contact servers: - url: https://api-v2.7signal.com description: 7SIGNAL API Gateway (production) tags: - name: API Keys paths: /apikeys: get: operationId: apikeys-get-e5f6 tags: - API Keys summary: List all accessible ApiKeys, optionally filtered by permissions, ids… parameters: - name: permissions in: query required: false schema: type: array items: type: string default: [] - name: ids in: query required: false schema: type: array items: type: string format: uuid default: [] - name: createdBys in: query required: false schema: type: array items: type: string default: [] - name: organizationIds in: query required: false schema: type: array items: type: string format: uuid default: [] - $ref: '#/components/parameters/metadata.PageRequestParam' - $ref: '#/components/parameters/common.PerPageRequestParam' - $ref: '#/components/parameters/common.SortOrderParam' - $ref: '#/components/parameters/common.SortFieldParam' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/metadata.PageModelApiKey' '400': $ref: '#/components/responses/common.400BadRequestResponse' '404': $ref: '#/components/responses/common.404NotFoundResponse' security: - oauth2: [] post: operationId: apikeys-post-g7h8 tags: - API Keys summary: Create an ApiKey and make it available for usage requestBody: content: application/json: schema: $ref: '#/components/schemas/metadata.ApiKeyRequest' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/metadata.ApiKeyResponse' '400': $ref: '#/components/responses/common.400BadRequestResponse' security: - oauth2: [] /apikeys/{apikeyId}: get: operationId: apikeys-with-id-get-i9j0 tags: - API Keys summary: List the specific ApiKey identified by its UUID, and its associated Permissions parameters: - name: apikeyId in: path required: true schema: type: string format: uuid responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/metadata.ApiKeyResponse' '400': $ref: '#/components/responses/common.400BadRequestResponse' '404': $ref: '#/components/responses/common.404NotFoundResponse' security: - oauth2: [] delete: operationId: apikeys-with-id-delete-k1l2 tags: - API Keys summary: Delete the ApiKey specified by the UUID parameters: - name: apikeyId in: path required: true schema: type: string format: uuid responses: '204': description: No Content '404': $ref: '#/components/responses/common.404NotFoundResponse' security: - oauth2: [] components: responses: common.400BadRequestResponse: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/common.ResponseStatusException' common.404NotFoundResponse: description: Resource Not Found content: application/json: schema: $ref: '#/components/schemas/common.ResponseStatusException' schemas: common.ResponseStatusException: type: object required: - timestamp - status - error - path - requestId properties: timestamp: type: string format: date-time status: type: integer error: type: string message: type: string path: type: string requestId: type: string metadata.PageModelApiKey: type: object properties: results: type: array items: $ref: '#/components/schemas/metadata.ApiKey' pagination: $ref: '#/components/schemas/metadata.Pagination' metadata.ApiKeyResponse: type: object properties: organization: $ref: '#/components/schemas/metadata.AggregateReferenceOrganizationUUID' group: $ref: '#/components/schemas/metadata.AggregateReferenceGroupUUID' id: type: string format: uuid apiKey: type: string createdBy: type: string description: type: string createdAt: type: string format: date-time isSystem: type: boolean clientSecret: type: string permissions: type: array items: $ref: '#/components/schemas/metadata.Permission' metadata.AggregateReferenceGroupUUID: type: object properties: id: type: string format: uuid metadata.AggregateReferenceOrganizationUUID: type: object properties: id: type: string format: uuid metadata.ApiKeyRequest: required: - organizationId type: object properties: organizationId: type: string format: uuid sapphireGroupId: type: string format: uuid roleId: type: string format: uuid permissionIds: type: array items: type: string format: uuid description: type: string metadata.Pagination: type: object properties: perPage: type: integer format: int32 page: type: integer format: int32 minimum: 0 description: The current page number. The first page is supposed to be 1, but some endpoints mistakenly treat the first page as 0. This is a known issue and will be fixed in the next major API release. total: type: integer format: int64 pages: type: integer format: int32 metadata.ApiKey: required: - organization type: object properties: organization: $ref: '#/components/schemas/metadata.AggregateReferenceOrganizationUUID' group: $ref: '#/components/schemas/metadata.AggregateReferenceGroupUUID' id: type: string format: uuid apiKey: type: string createdBy: type: string description: type: string createdAt: type: string format: date-time isSystem: type: boolean metadata.Permission: type: object properties: id: type: string format: uuid key: type: string description: type: string isPublic: type: boolean parameters: common.SortOrderParam: name: order in: query description: Sort order required: false schema: type: string enum: - asc - desc metadata.PageRequestParam: name: page in: query description: Fetch a particular page of data. The first page is supposed to be 1, but some endpoints mistakenly treat the first page as 0. This is a known issue and will be fixed in the next major API release. required: false schema: type: integer minimum: 0 common.PerPageRequestParam: name: perPage in: query description: Fetch a specific number of records per page required: false schema: type: integer common.SortFieldParam: name: sortField in: query description: The field on which to sort the results required: false schema: type: string securitySchemes: oauth2: type: oauth2 flows: clientCredentials: tokenUrl: /oauth2/token scopes: {}