Credentially Employee Placements API
Placement data scoped to a specific employee.
Placement data scoped to a specific employee.
openapi: 3.1.0
info:
title: Credentially Public Compliance-packages Employee Placements 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: Employee Placements
description: Placement data scoped to a specific employee.
paths:
/api/employees/{employeePublicId}/placements/notes:
get:
tags:
- Employee Placements
summary: List all placement notes for an employee
description: '
**Rate Limit:** `list-employee-placement-notes` (100 req / 1s)'
operationId: getEmployeePlacementNotes
parameters:
- name: employeePublicId
in: path
required: true
schema:
type: string
format: uuid
- name: X-API-Version
in: header
schema:
type: string
default: 2.0.0
enum:
- 2.0.0
responses:
'200':
description: Notes retrieved
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/PlacementNoteResponseDto'
'401':
description: Missing or invalid bearer token
'403':
description: Token lacks required scope
'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: []
/api/employees/{employeePublicId}/placements:
get:
tags:
- Employee Placements
summary: List PENDING and ACTIVE placements for an employee
description: 'All in-flight placements (PENDING or ACTIVE) for the employee. COMPLETED and CANCELLED are excluded.
**Rate Limit:** `list-employee-placements` (100 req / 1s)'
operationId: getActivePendingPlacements
parameters:
- name: employeePublicId
in: path
required: true
schema:
type: string
format: uuid
- name: X-API-Version
in: header
schema:
type: string
default: 2.0.0
enum:
- 2.0.0
responses:
'200':
description: List of in-flight placements (may be empty)
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/PlacementResponseDto'
'401':
description: Missing or invalid bearer token
'403':
description: Token lacks required scope
'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:
PlacementResponseDto:
type: object
properties:
publicId:
type: string
format: uuid
employeePublicId:
type: string
format: uuid
jobPositionId:
type: integer
format: int64
rolePublicId:
type: string
format: uuid
locationPublicId:
type: string
format: uuid
jurisdictionPublicId:
type: string
format: uuid
status:
type: string
enum:
- PENDING
- ACTIVE
- COMPLETED
- CANCELLED
complianceStatus:
type: string
enum:
- COMPLIANT
- NOT_COMPLIANT
compliancePercentage:
type: integer
format: int32
complianceEvaluationSeq:
type: integer
format: int64
complianceEvaluatedAsOf:
type: string
format: date
startDate:
type: string
format: date
endDate:
type: string
format: date
approvalDueDate:
type: string
format: date
approvedBy:
type: string
format: uuid
approvedAt:
type: string
format: date-time
stagePublicId:
type: string
format: uuid
notesCount:
type: integer
format: int32
latestNotes:
type: array
items:
$ref: '#/components/schemas/PlacementNotePreviewDto'
createdAt:
type: string
format: date-time
createdBy:
type: string
format: uuid
updatedAt:
type: string
format: date-time
updatedBy:
type: string
format: uuid
PlacementNotePreviewDto:
type: object
properties:
content:
type: string
createdAt:
type: string
format: date-time
PlacementNoteResponseDto:
type: object
properties:
publicId:
type: string
format: uuid
placementPublicId:
type: string
format: uuid
employeePublicId:
type: string
format: uuid
locationName:
type: string
roleName:
type: string
content:
type: string
createdAt:
type: string
format: date-time
createdBy:
type: string
format: uuid
createdByName:
type: string
createdByJobRole:
type: string
updatedAt:
type: string
format: date-time
updatedBy:
type: string
format: uuid
securitySchemes:
bearer-key:
type: http
scheme: bearer
bearerFormat: JWT