openapi: 3.0.3 info: title: Accredible Analytics References API description: The Accredible API issues, manages, and verifies digital credentials - certificates and Open Badges - programmatically. Credentials are issued to a recipient against a Group (a course or achievement) and rendered with a reusable Design. The API also manages Evidence Items and References attached to credentials, generates credential PDFs and blockchain-verifiable records, returns engagement analytics, administers Departments and Team Members, and generates recipient SSO links. All requests are authenticated with an API key sent in the Authorization header using the scheme `Token token=YOUR_API_KEY`. Production base URL is https://api.accredible.com/v1; a sandbox is available at https://sandbox.api.accredible.com/v1. Endpoints and paths are grounded in Accredible's published API reference; request and response schemas are modeled and simplified. version: '1.0' contact: name: Accredible url: https://www.accredible.com license: name: Proprietary url: https://www.accredible.com/terms-of-service servers: - url: https://api.accredible.com/v1 description: Production - url: https://sandbox.api.accredible.com/v1 description: Sandbox security: - tokenAuth: [] tags: - name: References description: Peer, teacher, or manager endorsements attached to a credential. paths: /credentials/{credential_id}/references: post: operationId: createReference tags: - References summary: Create a reference description: Attaches a new Reference (endorsement) to a credential. parameters: - $ref: '#/components/parameters/CredentialIdPath' requestBody: required: true content: application/json: schema: type: object properties: reference: $ref: '#/components/schemas/ReferenceInput' responses: '200': description: The created reference. '401': $ref: '#/components/responses/Unauthorized' /credentials/{credential_id}/references/{reference_id}: parameters: - $ref: '#/components/parameters/CredentialIdPath' - name: reference_id in: path required: true schema: type: integer get: operationId: getReference tags: - References summary: View a reference description: Retrieves a single Reference on a credential. responses: '200': description: The requested reference. '404': $ref: '#/components/responses/NotFound' put: operationId: updateReference tags: - References summary: Update a reference description: Updates a Reference on a credential. requestBody: required: true content: application/json: schema: type: object properties: reference: $ref: '#/components/schemas/ReferenceInput' responses: '200': description: The updated reference. '401': $ref: '#/components/responses/Unauthorized' delete: operationId: deleteReference tags: - References summary: Delete a reference description: Deletes a Reference from a credential. responses: '200': description: The reference was deleted. '401': $ref: '#/components/responses/Unauthorized' components: responses: Unauthorized: description: Invalid or missing API key. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' schemas: ReferenceInput: type: object properties: name: type: string description: The name of the person giving the reference. email: type: string description: The email of the referee. body: type: string description: The reference text. hidden: type: boolean description: Whether the reference is hidden. Error: type: object properties: error: type: string description: A human-readable error message. errors: type: array items: type: string parameters: CredentialIdPath: name: credential_id in: path required: true description: The unique ID of the credential. schema: type: integer securitySchemes: tokenAuth: type: apiKey in: header name: Authorization description: API key sent in the Authorization header using the scheme `Token token=YOUR_API_KEY`.