openapi: 3.1.0 info: title: Credentially Public Compliance-packages Right to Work API description: Public API Proxy with Rate Limiting and Audit version: 2.0.0 servers: - url: https://app.credentially.io/gateway description: Generated server url tags: - name: Right to Work description: Right to work status lookup endpoints paths: /api/profile/{profileId}/right-to-work: get: tags: - Right to Work summary: Get Profile Right To Work Status description: 'Returns the current right to work outcome for the requested profile, including approval details when available. **Rate Limit:** `profile-right-to-work` (100 req / 1s)' operationId: getProfileRightToWork parameters: - name: profileId in: path description: Credentially profile ID. required: true schema: type: string example: profile-123 - name: X-API-Version in: header schema: type: string default: 2.0.0 enum: - 2.0.0 responses: '200': description: Right to work status retrieved content: '*/*': schema: $ref: '#/components/schemas/RightToWorkDto' examples: rightToWork: description: rightToWork value: profileId: profile-123 status: OK passed: true sourceStatus: PASSED approvedBy: id: approver-123 firstName: Jane lastName: Smith email: jane.smith@example.com approvedDate: '2026-04-01T12:08:10Z' validityType: PERMANENT updated: '2026-04-01T12:08:10Z' '404': description: Profile not found '500': description: Internal server error '429': description: Too many requests - the rate limit for this endpoint has been exceeded. Use the Retry-After header to determine when to retry. headers: Retry-After: description: Number of seconds to wait before retrying the request. schema: type: integer format: int32 example: 1 security: - bearer-key: [] components: schemas: EmployeeSummaryDto: type: object properties: id: type: string description: Credentially profile identifier. example: approver-123 firstName: type: string description: First name. example: Jane lastName: type: string description: Last name. example: Smith smallAvatarUrl: type: string description: Small avatar URL. example: https://example.com/avatar.jpg email: type: string description: Email address. example: jane.smith@example.com RightToWorkDto: type: object description: Right to work status for a profile. properties: profileId: type: string description: Credentially profile identifier. example: profile-123 status: type: string description: Normalised right to work status. enum: - OK - EXPIRED - MISSING example: OK passed: type: boolean description: Whether the profile currently has an accepted right to work status. example: true sourceStatus: type: string description: Current Credentially right to work status. example: PASSED approvedBy: $ref: '#/components/schemas/EmployeeSummaryDto' description: User who approved the right to work status, when available. approvedDate: type: string format: date-time description: Timestamp when the right to work status was approved, when available. example: '2026-04-01T12:08:10Z' validityType: type: string description: Right to work validity type, when available. example: PERMANENT reason: type: string description: Reason recorded against the current right to work status, when available. example: Share code accepted created: type: string format: date-time description: Timestamp when the right to work record was created. example: '2026-04-01T12:08:10Z' updated: type: string format: date-time description: Timestamp when the right to work record was last updated. example: '2026-04-01T12:08:10Z' securitySchemes: bearer-key: type: http scheme: bearer bearerFormat: JWT