openapi: 3.0.3 info: title: Sertifier Credential Attributes Credentials API description: 'The Sertifier Credential API lets backend systems and LMS/CRM integrations programmatically design, issue, verify, and manage verifiable digital credentials (certificates and badges) on the Sertifier platform. A credential is issued inside a Campaign that binds three things: a visual Design, a descriptive Detail, and an Email Template used to deliver the finished credential to a Recipient. Custom Attributes are merged into the design and email at issue time. All requests are sent to the base host with a private API key in the `secretKey` header and an `api-version` header. Most responses share a common envelope ({ message, hasError, validationErrors, data, content }). All dates are UTC. Designs are authored in the Sertifier web application; the API references and duplicates them. Endpoint paths, methods, the base host (https://b2b.sertifier.com), the `secretKey` / `api-version` headers, and the credential-issuance workflow are grounded in Sertifier''s public Apiary reference, help-center quickstart, and integration guides. Request and response bodies are minimally modeled where the public reference does not fully enumerate every field; those are marked with `x-modeled: true`.' version: '3.3' contact: name: Sertifier url: https://sertifier.com email: support@sertifier.com x-logo: url: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg servers: - url: https://b2b.sertifier.com description: Sertifier Credential API (production) security: - secretKey: [] tags: - name: Credentials description: Individual issued credentials - retrieve, update, publish, and generate PDF links. paths: /credential/{credentialId}: get: operationId: getCredential tags: - Credentials summary: Retrieve a credential parameters: - $ref: '#/components/parameters/ApiVersion' - $ref: '#/components/parameters/CredentialId' responses: '200': description: The requested credential. content: application/json: schema: $ref: '#/components/schemas/Envelope' '401': $ref: '#/components/responses/Unauthorized' put: operationId: updateCredential tags: - Credentials summary: Update a credential parameters: - $ref: '#/components/parameters/ApiVersion' - $ref: '#/components/parameters/CredentialId' requestBody: required: true content: application/json: schema: type: object x-modeled: true responses: '200': description: The updated credential. content: application/json: schema: $ref: '#/components/schemas/Envelope' '401': $ref: '#/components/responses/Unauthorized' delete: operationId: deleteCredential tags: - Credentials summary: Delete a credential parameters: - $ref: '#/components/parameters/ApiVersion' - $ref: '#/components/parameters/CredentialId' responses: '200': description: The credential was deleted. content: application/json: schema: $ref: '#/components/schemas/Envelope' '401': $ref: '#/components/responses/Unauthorized' /credential/search: post: operationId: searchCredentials tags: - Credentials summary: Search credentials description: Returns a paginated list of issued credentials matching the filters. parameters: - $ref: '#/components/parameters/ApiVersion' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SearchRequest' responses: '200': description: A paginated list of credentials. content: application/json: schema: $ref: '#/components/schemas/Envelope' '401': $ref: '#/components/responses/Unauthorized' /credential/publish: post: operationId: publishCredentials tags: - Credentials summary: Publish credentials description: Publishes one or more credentials, making their verifiable URLs live. parameters: - $ref: '#/components/parameters/ApiVersion' requestBody: required: true content: application/json: schema: type: object properties: credentialIds: type: array items: type: string responses: '200': description: The credentials were published. content: application/json: schema: $ref: '#/components/schemas/Envelope' '401': $ref: '#/components/responses/Unauthorized' /credential/generatePDFLink/{credentialIdOrCertificateNo}: get: operationId: generatePdfLink tags: - Credentials summary: Generate a credential PDF link description: Generates a downloadable PDF link for a credential, identified by its credential ID or its certificate number. parameters: - $ref: '#/components/parameters/ApiVersion' - name: credentialIdOrCertificateNo in: path required: true description: The credential ID or the certificate number. schema: type: string responses: '200': description: A downloadable PDF link for the credential. content: application/json: schema: $ref: '#/components/schemas/Envelope' '401': $ref: '#/components/responses/Unauthorized' components: responses: Unauthorized: description: The secretKey is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Envelope' parameters: ApiVersion: name: api-version in: header required: true description: API version header. Current documented value is 3.3. schema: type: string default: '3.3' CredentialId: name: credentialId in: path required: true schema: type: string schemas: SearchRequest: type: object description: Paginated search request. x-modeled: true properties: page: type: integer default: 1 pageSize: type: integer default: 20 query: type: string nullable: true Envelope: type: object description: Standard Sertifier response envelope. properties: message: type: string nullable: true hasError: type: boolean validationErrors: type: array items: type: string data: nullable: true description: The operation-specific payload (object or array). content: nullable: true securitySchemes: secretKey: type: apiKey in: header name: secretKey description: Private API key obtained from the Sertifier web application under Settings > API & Integrations (also referenced as Advanced > Integrations). Store it in a secrets vault; never embed it in client-side JavaScript.