Credentially Right to Work API
Right to work status lookup endpoints
Right to work status lookup endpoints
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