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