Credentially Right to Work API

Right to work status lookup endpoints

OpenAPI Specification

credentially-right-to-work-api-openapi.yml Raw ↑
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