openapi: 3.0.3 info: title: Aptly App API version: '1.0' description: 'The Aptly API lets you read and write cards on any Aptly board from external systems. All requests require an API key passed as the `x-token` header. API keys are scoped to your company and work across all boards. ' servers: - url: https://core-api.getaptly.com description: Production security: - ApiKeyHeader: [] tags: - name: App paths: /api/app/verify: post: summary: Verify a delegate token (keyless) description: 'Validates a short-lived delegate token without requiring an API key. The token must include an `appClientId` (i.e. it was issued for an embedded app via `POST /api/platform/user-token`). Returns the user''s identity, company name, and the app''s title. ' operationId: verifyDelegateToken tags: - App security: [] requestBody: required: true content: application/json: schema: type: object required: - token properties: token: type: string description: Delegate token returned by `POST /api/platform/user-token`. responses: '200': description: Token is valid. content: application/json: schema: type: object properties: userId: type: string email: type: string nullable: true firstName: type: string nullable: true lastName: type: string nullable: true companyId: type: string companyName: type: string nullable: true appClientId: type: string appTitle: type: string nullable: true '400': description: token field is missing. '401': description: Token is invalid, expired, or was not issued for an embedded app (missing appClientId). /api/app/me: get: summary: Get credential info description: "Returns identity information for the credential used in the request. The response shape\ndepends on the auth method:\n\n- **Delegate token** (`Authorization: DelegateToken `): returns user identity and,\n if the token has an `appClientId`, embedded-app context.\n- **API key** (`x-token` header or query param): returns company identity.\n- **Partner token** (`Authorization: Bearer `): returns the partner's permission list.\n" operationId: getMe tags: - App security: - ApiKeyHeader: [] - DelegateToken: [] - PartnerBearer: [] responses: '200': description: Credential identity. content: application/json: schema: oneOf: - title: Delegate token — user type: object properties: type: type: string enum: - user userId: type: string email: type: string nullable: true firstName: type: string nullable: true lastName: type: string nullable: true companyId: type: string companyName: type: string nullable: true - title: Delegate token — app type: object properties: type: type: string enum: - app userId: type: string email: type: string nullable: true firstName: type: string nullable: true lastName: type: string nullable: true companyId: type: string companyName: type: string nullable: true appClientId: type: string appTitle: type: string nullable: true - title: API key type: object properties: type: type: string enum: - apiKey companyId: type: string companyName: type: string nullable: true - title: Partner token type: object properties: type: type: string enum: - partner permissions: type: array items: type: string '401': description: Invalid or missing credential. components: securitySchemes: ApiKeyHeader: type: apiKey in: header name: x-token DelegateToken: type: apiKey in: header name: Authorization description: 'Delegate token issued by the platform. Format: `DelegateToken `' PartnerBearer: type: http scheme: bearer description: 'Partner token. Format: `Authorization: Bearer `'