openapi: 3.1.0 info: title: Credentially Public Compliance-packages References 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: References description: Profile reference status lookup endpoints paths: /api/profile/{profileId}/references: get: tags: - References summary: Get Profile References description: 'Returns reference titles, employment dates, durations, and status for the requested profile. **Rate Limit:** `profile-references` (100 req / 1s)' operationId: getProfileReferences 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: References retrieved content: '*/*': schema: $ref: '#/components/schemas/ProfileReferencesDto' examples: references: description: references value: profileId: profile-123 status: OK references: - id: reference-123 title: Employment reference startDate: '2023-01-01' endDate: '2025-12-31' currentEmployment: false durationDays: 1095 status: OK sourceStatus: APPROVED expiryDate: '2026-12-31' referee: fullName: Alex Johnson email: alex.johnson@example.com phone: '+441234567890' '404': description: Profile not found in the authenticated organisation context '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: ProfileReferencesDto: type: object description: Reference status summary for a profile. properties: profileId: type: string description: Credentially profile identifier. example: profile-123 status: type: string description: Normalised status across the profile references. enum: - OK - EXPIRED - MISSING example: OK references: type: array description: References for the profile. items: $ref: '#/components/schemas/ProfileReferenceDto' RefereeDto: type: object description: Referee contact details for a profile reference. properties: fullName: type: string description: Referee full name. example: Alex Johnson email: type: string description: Referee email address. example: alex.johnson@example.com phone: type: string description: Referee phone number. example: '+441234567890' ProfileReferenceDto: type: object description: Reference summary for a profile. properties: id: type: string description: Credentially reference identifier. example: reference-123 title: type: string description: Reference title. example: Employment reference startDate: type: string format: date description: Reference start date. example: '2023-01-01' endDate: type: string format: date description: Reference end date. example: '2025-12-31' currentEmployment: type: boolean description: Whether the reference describes current employment. example: false durationDays: type: integer format: int64 description: Reference duration in calendar days. example: 1095 status: type: string description: Normalised reference status. enum: - OK - EXPIRED - MISSING example: OK sourceStatus: type: string description: Current Credentially reference status. example: APPROVED expiryDate: type: string format: date description: Reference expiry date, when configured. example: '2026-12-31' referee: $ref: '#/components/schemas/RefereeDto' description: Referee contact details. securitySchemes: bearer-key: type: http scheme: bearer bearerFormat: JWT