{ "openapi": "3.0.3", "info": { "title": "Accredible Credential API", "version": "25.08.0", "description": "The [Accredible](https://www.accredible.com/) Credential API allows you to create and interact with badges and certificates called [Accredible Credentials](https://www.credential.net/10000005).\n\nThere are 3 main objects in Accredible: Credentials, Groups and Designs.\n\n### Getting Started with the API - Video Walkthrough\n\n[](https://us06web.zoom.us/clips/share/_p4jjy0LQ-WOaQPviLor1A)\n\n# Objects Overview\n## Credentials\n[Credentials](#tag/Credentials) are the core object in the API. They collect all of the data related to a course, training activity or achievement and the recipient/participant information.\n\nYou should create a credential for each achievement completion that a recipient has. For example if John Doe finishes the Programming 101 course we should create one credential to represent that. If John Doe achieves something else then he would need a new credential.\n\n## Groups\n\n[Groups](#tag/Groups) represent an achievement such as a course or qualification. They contain information about the achievement and have multiple Credentials attached to them.\n\nFor example you should create a group for the Introduction to Programming course. You'd provide the Course Name, Course Description and Course URL. In the future you can pass the name or ID of this group when creating a credential so that the credential is passed all the information relating to the achievement.\n\n## Designs\n\n[Designs](#tag/Designs) provide a visual specification for how a Credential should be rendered. Designs can be used across multiple Groups.\n\nFor example if we have three courses: Intro to Basic Programming, Intro to Advanced Programming and Intro to DevOps each of these may have the same design for their Credentials. When creating or updating their corresponding Groups you would attach the desired design accordingly.\n\n## Departments\n\n[Departments](#tag/Departments), if enabled for your account allow you to manage multiple, independent organization groups. Each Department is entirely separate with its own Designs, Groups, Branding, etc. You cannot share data between Departments except Billing and Administrators.\n\n## Attributes\n\n[Attributes](#tag/Attributes), are used to merge information with your badge or certificate designs and email templates. Attributes act as placeholders for information and can be added to certificate designs and email templates.\n\n## Skills Frameworks\n\n[Skills Frameworks](#tag/Skills-Frameworks) are structured taxonomies of skills — Accredible-maintained ones such as O*NET, ESCO and NACE, plus any your organization uploads itself. Tagging a Group against a framework version replaces the Group's free-text `learning_outcomes` with skills that carry a stable identifier and a known position in a recognized taxonomy.\n\nFor example, instead of listing `\"Reading Books\"` on your Introduction to Programming group, you can attach the O*NET skill `Reading Comprehension` together with the trail it sits on — Worker Requirements → Basic Skills → Content.\n\nFrameworks are read-only over the API: you discover the frameworks enabled for a department, search their skills, then select those skills when creating or updating a Group. Uploading and managing frameworks is done in the Accredible Dashboard.\n\n# API Keys\n\nAPI keys are used as Authorization tokens in the header in all authenticated API endpoints. These Keys are managed in the [Accredible Dashboard](https://dashboard.accredible.com/). There are two types of API Keys, those that are account wide and work on all assets and those that are related to a specific department. API keys scoped to a specific department can only access the resources (Credentials, Groups, Designs etc.) belonging to that department.\n\n# Single sign-on options\n\n[Single sign-on](#tag/SSO) in addition to the student authentication provided by Accredible, you can also use single sign-on to authenticate your student into Accredible and they can directly sign-in.\n\nSSO is also available via our Integrations and via SAML 2.0.\n\n# Rate Limiting\n\nWe allow up to 2000 requests every 5 minutes from a single IP address, but some higher security endpoints have stricter rate limiting. Requests are counted in 30 second periods.\n\nIf you attempt to make requests more quickly than permitted by these rules, you may receive a `429 Too Many Requests` response from an endpoint.\n\n# Errors\n\nAccredible uses conventional HTTP response codes to indicate the success or failure of an API request. Most error response formats are consistent across API versions, with some differences in bulk operations.\n\n## HTTP Status Codes\n\n| Status Code | Description |\n| ----------- | ----------- |\n| **2xx** | Success |\n| 200 | OK - The request was successful |\n| 207 | Multi-Status - Partial success. Returned by v2 bulk operations, and by Group create/update/clone when skills frameworks are involved |\n| **4xx** | Client Error |\n| 400 | Bad Request - Invalid request parameters |\n| 401 | Unauthorized - Invalid or missing API key |\n| 403 | Forbidden - Insufficient permissions |\n| 404 | Not Found - Resource not found |\n| 422 | Unprocessable Entity - Validation errors |\n| 429 | Too Many Requests - Rate limit exceeded |\n| **5xx** | Server Error |\n| 500 | Internal Server Error |\n\n## Common Error Formats\n\nMost API endpoints use these standard error formats:\n\n**Search Query Errors (400)**\n```json\n{\n \"code\": 400,\n \"message\": \"Sort order increasing is not supported\",\n \"status\": \"invalid_search_query\",\n \"errors\": {}\n}\n```\n\n**Unauthorized (401):**\n```\nHTTP Token: Access denied.\n```\n\n```json\n{\n \"success\": false,\n \"data\": \"Not enough or too many segments\"\n}\n```\n\n```json\n{\n \"success\": false,\n \"data\": \"Sorry, You are not authorized, visit accredible.com for this\"\n}\n```\n\n**Forbidden (403):**\n```json\n{\n \"errors\": \"Private Certificate, use key\"\n}\n```\n\n**Not Found (404):**\n```json\n{\n \"errors\": \"Doesn't exist\"\n}\n```\n\n```json\n{\n \"error\": \"Not found\"\n}\n```\n\n```json\n{\n \"success\": false,\n \"data\": \"Group does not exist\"\n}\n```\n\n**Unprocessable Entity (422):**\n```json\n{\n \"errors\": \"Invalid Group\"\n}\n```\n\n```json\n{\n \"errors\": \"Can not create credential without recipient data\"\n}\n```\n\n```json\n{\n \"errors\": {\n \"course_name\": [\n \"can't be blank\"\n ],\n \"course_description\": [\n \"can't be blank\"\n ]\n }\n}\n```\n\n**Internal Server Error (500):**\n```json\n{\n \"errors\": \"Internal server error\"\n}\n```\n\n## Bulk Operations Error Handling\n\n### V2 Bulk Create (Mixed Results Supported)\n\n**All Successful (200):**\n```json\n{\n \"results\": [\n {\n \"credential\": { /* credential object */ }\n },\n {\n \"credential\": { /* credential object */ }\n }\n ]\n}\n```\n\n**Mixed Success/Failure (207 Multi-Status):**\n```json\n{\n \"results\": [\n {\n \"credential\": { /* successful credential */ }\n },\n {\n \"error\": {\n \"code\": \"credential_invalid\",\n \"message\": \"The credential is not valid\",\n \"details\": [\n {\n \"property\": \"recipient_name\",\n \"reason\": \"blank\"\n }\n ]\n }\n },\n {\n \"credential\": { /* successful but unpublished */ },\n \"error\": {\n \"code\": \"insufficient_credits\",\n \"message\": \"The credential was created but not published\"\n }\n }\n ]\n}\n```\n\n**All Failed (422):**\n```json\n{\n \"results\": [\n {\n \"error\": {\n \"code\": \"credential_invalid\",\n \"message\": \"The credential is not valid\",\n \"details\": [\n {\n \"property\": \"course_name\",\n \"reason\": \"blank\"\n }\n ]\n }\n }\n ]\n}\n```\n\n## Skills Frameworks Error Handling\n\n### Framework Endpoints (401, 403, 400, 404)\n\n`GET /v1/skill_frameworks` and `GET /v1/skill_frameworks/{id}/versions/{version_id}/skills` use the standard error format, with a machine-readable `status`:\n\n```json\n{\n \"code\": 403,\n \"message\": \"Your plan does not include access to skills frameworks\",\n \"status\": \"plan_not_entitled\",\n \"errors\": {}\n}\n```\n\n| Code | `status` | `message` | Cause |\n| ---- | -------- | --------- | ----- |\n| 401 | — | — | Missing or invalid API key. Authentication runs before the framework checks, so the body is the API's standard plain-text `HTTP Token: Access denied.` rather than the JSON shape above. |\n| 403 | `plan_not_entitled` | Your plan does not include access to skills frameworks | Your plan does not include the skills frameworks feature. |\n| 400 | `missing_department_id` | department_id is required | `department_id` was not supplied to the framework list endpoint. |\n| 403 | `invalid_department` | Invalid Department ID | The `department_id` is not a Department your API key can access. |\n| 404 | `not_found` | Skills framework not found | The framework does not exist, or it is a custom framework belonging to another organization. |\n| 400 | `invalid_version` | This version does not belong to the specified framework | The version id belongs to a different framework, or the version is not published. |\n| 400 | `invalid_query` | Query must be at least 2 characters | The skills search `query` was missing or shorter than 2 characters. |\n\nChecks run in that order, so a request that is both unentitled and missing `department_id` returns the 403.\n\n### Group Writes — Partial Success (207 Multi-Status)\n\nSkills framework problems do not fail a Group write, with one exception — a Group that is already framework-backed on a plan that no longer includes skills frameworks, covered under **Plan Downgrade (403)** below. Otherwise `POST /v1/issuer/groups`, `PUT /v1/issuer/groups/{group_id}` and `POST /v1/issuer/groups/{group_id}/clone` still create, update or clone the Group, attach every skill that was valid, and return `207` with the problems itemized:\n\n```json\n{\n \"group\": { /* the group as it was saved */ },\n \"errors\": [\n {\n \"code\": \"skills_not_attached\",\n \"message\": \"One or more framework skills were not attached — they do not belong to framework version 512 or are not taggable: 999999991\"\n }\n ]\n}\n```\n\nAlways read `group.skill_framework` and `group.skills` from a 207 response to see what was actually saved. More than one error can be returned: input-shape errors come first, then `skills_not_attached`, then `breadcrumb_ids_invalid`.\n\n| `code` | Meaning |\n| ------ | ------- |\n| `framework_params_incomplete` | Only one of `skill_framework_version_id` / `framework_skills` was sent, or `framework_skills` was empty alongside a version. Send both, with at least one skill. |\n| `plan_not_entitled` | Your plan does not include skills frameworks, so no skills were attached. |\n| `version_not_found` | There is no published framework version with that id. Draft versions are not visible to the API. |\n| `framework_not_available` | The version's framework is not enabled for this Group's Department. |\n| `version_retired` | The target version has been retired — use the framework's `active` version instead. On clone, it means the source Group's skills could not be copied: either its version is retired, or its framework is mid-retirement for that Department, in which case the version itself still reads as `active`. |\n| `framework_skills_malformed` | An entry in `framework_skills` is not shaped like `{ id, breadcrumb_ids }`. The message names the offending index and field. |\n| `skills_not_attached` | The listed skill ids do not belong to the given framework version, or they are structural nodes that cannot be tagged. |\n| `breadcrumb_ids_invalid` | The listed skills' `breadcrumb_ids` are not a real trail in that version — unknown ids, a broken parent chain, a repeated node, or an empty trail for a skill that has a parent. |\n\n### Plan Downgrade (403)\n\nIf your plan does not include access to skills frameworks and you send framework parameters for a Group that is **already** framework-backed, `PUT /v1/issuer/groups/{group_id}` fails outright and nothing in the request is saved:\n\n```json\n{\n \"success\": false,\n \"data\": \"Your plan no longer supports this framework. Contact support to upgrade.\"\n}\n```\n\nThe Group's framework and skills stay saved and are still returned when you read it, and you can always move it back to free-text skills by sending `\"framework_skills\": null`." }, "servers": [ { "url": "https://api.accredible.com/", "description": "Production environment - US" }, { "url": "https://eu.api.accredible.com/", "description": "Production environment - EU" }, { "url": "https://sandbox.api.accredible.com/", "description": "Sandbox environment - Testing environment" } ], "paths": { "/v1/credentials": { "post": { "responses": { "200": { "description": "OK", "headers": {}, "content": { "application/json": { "schema": { "type": "object", "properties": { "credential": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "approve": { "type": "boolean" }, "grade": { "nullable": true }, "complete": { "type": "boolean" }, "issued_on": { "type": "string" }, "course_link": { "type": "string" }, "custom_attributes": { "type": "object", "properties": { "Location": { "type": "string" } } }, "expired_on": { "nullable": true }, "group_name": { "type": "string" }, "group_id": { "type": "number" }, "url": { "type": "string" }, "encoded_id": { "type": "string" }, "private": { "type": "boolean" }, "seo_image": { "type": "string" }, "certificate": { "type": "object", "properties": { "image": { "type": "object", "properties": { "preview": { "type": "string" } } } } }, "badge": { "type": "object", "properties": { "image": { "type": "object", "properties": { "preview": { "type": "string" } } } } }, "evidence_items": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "description": { "type": "string" }, "preview_image_url": { "type": "string", "nullable": true }, "link_url": { "type": "string", "nullable": true }, "type": { "type": "string" }, "string_object": { "type": "object", "properties": { "grade": { "type": "number" } }, "nullable": true }, "supplemental": { "type": "boolean" }, "position": { "type": "number" } }, "required": [ "id", "description", "preview_image_url", "link_url", "type", "string_object", "supplemental", "position" ] } }, "references": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "description": { "type": "string" }, "relationship": { "type": "string", "description": "Must be one of: \"taught\", \"managed\", \"mentored\", \"worked\", \"studied\", \"friends\", \"stranger\", \"professor\"." }, "supplemental": { "type": "boolean" }, "approve": { "type": "boolean" }, "referee": { "type": "object", "properties": { "name": { "type": "string" }, "email": { "nullable": true }, "avatar": { "type": "string" } } } } } }, "recipient": { "type": "object", "properties": { "name": { "type": "string" }, "email": { "type": "string" }, "phone_number": { "type": "string", "nullable": true }, "id": { "type": "string" }, "meta_data": { "type": "object", "properties": { "bar": { "type": "string" } } } } }, "issuer": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "nullable": true }, "url": { "type": "string" }, "id": { "type": "number" } } }, "meta_data": { "type": "object", "properties": { "foo": { "type": "string" } } }, "skills": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "identifier": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "url": { "type": "string", "nullable": true }, "breadcrumbs": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "identifier": { "type": "string", "nullable": true } }, "required": [ "id", "name", "identifier" ] } } }, "required": [ "id", "name", "identifier", "description", "url", "breadcrumbs" ] } } } } } }, "example": { "credential": { "id": "10000005", "name": "Example Certificate", "description": "This is an example description - you can write anything you want here.\n\nWe recommend describing the achievement.", "approve": true, "grade": null, "complete": true, "issued_on": "2014-08-14", "course_link": "https://www.accredible.com", "custom_attributes": { "Location": "London" }, "expired_on": null, "group_name": "Example Certificate Design", "group_id": 9549, "url": "https://www.credential.net/10000005", "encoded_id": "10000005", "private": false, "seo_image": "https://api.accredible.com/v1/frontend/credential_seo_image/10000005", "certificate": { "image": { "preview": "https://api.accredible.com/v1/frontend/credential_website_embed_image/certificate/10000005" } }, "badge": { "image": { "preview": "https://api.accredible.com/v1/frontend/credential_badge_image/10000005" } }, "evidence_items": [ { "id": 826, "description": "Final Grade", "preview_image_url": null, "link_url": null, "type": "grade", "string_object": { "grade": 80 }, "supplemental": false, "position": 1 }, { "id": 10, "description": "Presentation", "preview_image_url": "https://s3.amazonaws.com/staging_accredible_api_evidence_items/previews/10/medium/open-uri20140316-15300-14jngj.jpg?1408372366", "link_url": "https://s3.amazonaws.com/staging_accredible_api_evidence_items/files/10/original/open-uri20140316-15300-14jngj.pdf", "type": "file", "string_object": null, "supplemental": true, "position": 4 } ], "references": [ { "id": 2, "description": "Although he had difficulty with the course material at first, John learned a lot throughout the course. His final project was one of the best in his class.", "relationship": "mentored", "supplemental": false, "approve": true, "referee": { "name": "Example Person", "email": null, "avatar": "https://s3.amazonaws.com/staging_accredible_api_individuals/images/4/thumb/open-uri20140815-11960-1r0hppg?1408416647" } } ], "recipient": { "name": "Jordan Smith", "email": "jor@dan.org", "phone_number": "+14155552671", "id": "ct992", "meta_data": { "bar": "foo" } }, "issuer": { "name": "Example Organization", "description": null, "url": "http://www.accredible.com", "id": 4897 }, "meta_data": { "foo": "bar" }, "skills": [ { "id": 59302, "name": "Active Listening", "identifier": "2.A.1.b", "description": "Giving full attention to what other people are saying, taking time to understand the points being made.", "url": "https://www.onetonline.org/find/descriptor/result/2.A.1.b", "breadcrumbs": [ { "id": 59298, "name": "Worker Requirements", "identifier": "2" }, { "id": 59299, "name": "Basic Skills", "identifier": "2.A" }, { "id": 59300, "name": "Content", "identifier": "2.A.1" } ] }, { "id": 59301, "name": "Reading Comprehension", "identifier": "2.A.1.a", "description": "Understanding written sentences and paragraphs in work related documents.", "url": "https://www.onetonline.org/find/descriptor/result/2.A.1.a", "breadcrumbs": [ { "id": 59298, "name": "Worker Requirements", "identifier": "2" }, { "id": 59299, "name": "Basic Skills", "identifier": "2.A" }, { "id": 59300, "name": "Content", "identifier": "2.A.1" } ] } ] } } } } } }, "summary": "Create a New Credential", "operationId": "Create a New Credential", "description": "You create a Credential with optional EvidenceItems and References using this action. Please make sure that you've created a group on your dashboard before creating a Credential. If you haven't then [create a group in the dashboard](https://dashboard.accredible.com/issuer/dashboard/group/new?edit=information-and-appearance) or use [this API request](#tag/Groups).\n\nThis endpoint requires a JSON object containing a Credential.\n\n**Important:** If you don't have enough credits when attempting to create Credentials with this endpoint, your credentials will still be created in your account, but will not be published. This will save your data and prevent you from having to re-attempt your request later. You will be able to publish the created credentials in your account when you have the required credits\n\n[Creating Credentials - Video Walkthrough](https://www.loom.com/share/c7c47531a46d4a3f85abaf7413d9e636?sid=b3998a3d-dd4a-4289-84fc-db6df40efd5b)", "tags": [ "Credentials" ], "requestBody": { "content": { "application/json": { "example": { "credential": { "recipient": { "name": "John Doe", "email": "person@example.com", "phone_number": "+14155552671", "id": "PK-17993", "meta_data": { "credential_batch": "772" } }, "name": "Credential Name", "group_name": "course1234", "group_id": 23, "description": null, "issued_on": "2014-06-14", "evidence_items": [ { "description": "Report card including all grades", "url": "http://www.awesomelearningexample.com/johndoe/reportcard", "category": "url" }, { "description": "Final essay", "file": "https://s3.amazonaws.com/accredible_api_evidence_items/files/12/original/open-uri20140316-15266-1m3by6h.jpeg", "category": "file" } ], "references": [ { "description": "John worked hard on this course and provided exemplary understanding of the core concepts", "referee": { "name": "Jane Doe", "email": "person2@example.com", "avatar": "https://placehold.it/100x100", "url": "https://any-url.com" }, "relationship": "managed" } ], "custom_attributes": { "custom_variables": "some value", "dob": "29 jan 1970" }, "meta_data": { "batch_id": "TK210" } } }, "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "The unique ID of the credential. If you supply your own internal ID we'll use this as a reference for the Credential. If not we'll assign an ID." }, "recipient.name": { "type": "string", "description": "The name of the recipient the credential is issued to." }, "recipient.email": { "type": "string", "description": "The recipient's email address." }, "recipient.phone_number": { "type": "string", "description": "The recipient's phone number in E.164 format (e.g., +14155552671). This field is optional and available as part of the Growth plan. Phone numbers are used for SMS campaigns and are associated with the credential." }, "recipient.id": { "type": "string", "description": "The recipient's user ID as defined by your organization. This alllows you to easily map your recipients to their Credentials regardless of changes to their email address." }, "recipient.meta_data": { "type": "object", "properties": {}, "description": "You can use this parameter to attach key-value strings to the object. Meta data is useful for storing additional, structured information on an object." }, "group_id": { "type": "number", "description": "Group Id to which the credential should belong." }, "name": { "type": "string", "description": "The Credential/course name displayed to recipients. This is required if the Group the Credential belongs to doesn't have a Course Name set." }, "description": { "type": "string", "description": "The credential/course description displayed to recipients. This is required if the Group the Credential belongs to doesn't have a Course Description set." }, "custom_attributes": { "type": "object", "properties": {}, "description": "Custom variables to display on the Credential. These should be added to the design using the visual editor. Data should be formatted as a JSON hash where keys are the custom attribute names and the values are the values to be displayed on the Credential." }, "issued_on": { "type": "string", "description": "Date of issue, the default is when the credential is created. Format: YYYY-MM-DD (DD/MM/YYYY also works but is deprecated)" }, "expired_on": { "type": "string", "description": "Date you would like the credential to expire on, null by default. Format: YYYY-MM-DD (DD/MM/YYYY also works but is deprecated)" }, "complete": { "type": "boolean", "description": "Whether the achievement is complete or still in progress, true by default." }, "private": { "type": "boolean", "description": "Whether to make credential private. When it is set to `true`, the Credential will be private and visible only to its recipient who has signed into credential.net. If no value is set, the default value will be automatically assigned based on `Group.generate_private_credential` and `Department.generate_private_credential`. `Department.generate_private_credential` will be used as the default when `Group.generate_private_credential` is set to `null`. `Group.generate_private_credential` will override `Department.generate_private_credential` and be used as the default when it is set to `true` or `false`." }, "approve": { "type": "boolean", "description": "Whether to publish credential at the time of creation. By default this is true but settings at dashboard for sandbox_mode take precendence." }, "allow_supplemental_evidence": { "type": "boolean", "description": "Whether to allow recipients to add their own supplemental evidence to the Credential, true by default." }, "allow_supplemental_references": { "type": "boolean", "description": "Whether to allow recipients to add their own supplemental references to the credential, true by default." }, "evidence_items": { "description": "Evidence to add to this credential, that provide more information about how the recipient met the achievement. See Evidence Items for fields. Typically this would include work samples for a course." }, "references": { "description": "References to add to this Credential, that provide more information about how the recipient met the achievement. See References for fields. Typically this would be a peer, teacher or manager giving their feedback." }, "meta_data": { "type": "object", "properties": {}, "description": "You can use this parameter to attach key-value strings to the object. Meta data is useful for storing additional, structured information on an object." } }, "required": [ "recipient.name", "recipient.email", "group_id" ] } } } }, "security": [ { "ApiKeyAuth": [] } ], "x-code-samples": [ { "lang": "cURL", "label": "cURL", "source": "curl -X POST \\\n \"https://api.accredible.com/v1/credentials\" \\\n -H \"Authorization: Token token=YOUR_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"credential\": {\n \"recipient\": {\n \"name\": \"John Doe\",\n \"email\": \"person@example.com\",\n \"phone_number\": \"+14155552671\",\n \"id\": \"PK-17993\",\n \"meta_data\": {\n \"credential_batch\": \"772\"\n }\n },\n \"name\": \"Credential Name\",\n \"group_name\": \"course1234\",\n \"group_id\": 23,\n \"description\": null,\n \"issued_on\": \"2014-06-14\",\n \"evidence_items\": [\n {\n \"description\": \"Report card including all grades\",\n \"url\": \"http://www.awesomelearningexample.com/johndoe/reportcard\",\n \"category\": \"url\"\n },\n {\n \"description\": \"Final essay\",\n \"file\": \"https://s3.amazonaws.com/accredible_api_evidence_items/files/12/original/open-uri20140316-15266-1m3by6h.jpeg\",\n \"category\": \"file\"\n }\n ],\n \"references\": [\n {\n \"description\": \"John worked hard on this course and provided exemplary understanding of the core concepts\",\n \"referee\": {\n \"name\": \"Jane Doe\",\n \"email\": \"person2@example.com\",\n \"avatar\": \"https://placehold.it/100x100\",\n \"url\": \"https://any-url.com\"\n },\n \"relationship\": \"managed\"\n }\n ],\n \"custom_attributes\": {\n \"custom_variables\": \"some value\",\n \"dob\": \"29 jan 1970\"\n },\n \"meta_data\": {\n \"batch_id\": \"TK210\"\n }\n }\n}'" } ] } }, "/v1/credentials/bulk_create": { "post": { "responses": { "200": { "description": "OK", "headers": {}, "content": {} } }, "summary": "Bulk Create credentials (v1)", "operationId": "Bulk Create credentials (v1)", "description": "Create multiple Credentials using this action. It requires a JSON object containing credentials in an array.\n\n**Important:** If you don't have enough credits when attempting to create Credentials with this endpoint, your credentials will still be created in your account, but will not be published. This will save your data and prevent you from having to re-attempt your request later. You will be able to publish the created credentials in your account when you have the required credits.\n\n**API Limits:** Each request can accommodate up to 100 credentials. Should you have a larger set of credentials to process, it's recommended to split them into batches of 100 and make successive calls to this API.\n\n[Bulk Creating Credentials - Video Walkthrough](https://www.loom.com/share/df043cb9d2b04140bcc53b633d232147?sid=005848bc-91a9-49cc-8f12-7f31c15245f8)", "tags": [ "Credentials" ], "requestBody": { "content": { "application/json": { "example": { "credentials": [ { "recipient": { "name": "John Doe", "email": "student@example.com", "phone_number": "+14155552671" }, "group_id": 22625 }, { "recipient": { "name": "Jane Smith", "email": "jane@example.com", "phone_number": "+14155552672" }, "group_id": 62430 } ] }, "schema": { "type": "object", "properties": { "credentials": { "description": "Array of the credentials payload all field applicable which is in create credential endpoint." } }, "required": [ "credentials" ] } } } }, "security": [ { "ApiKeyAuth": [] } ], "x-code-samples": [ { "lang": "cURL", "label": "cURL", "source": "curl -X POST \\\n \"https://api.accredible.com/v1/credentials/bulk_create\" \\\n -H \"Authorization: Token token=YOUR_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"credentials\": [\n {\n \"recipient\": {\n \"name\": \"John Doe\",\n \"email\": \"student@example.com\",\n \"phone_number\": \"+14155552671\"\n },\n \"group_id\": 22625\n },\n {\n \"recipient\": {\n \"name\": \"Jane Smith\",\n \"email\": \"jane@example.com\",\n \"phone_number\": \"+14155552672\"\n },\n \"group_id\": 62430\n }\n ]\n}'" } ] } }, "/v2/credentials/bulk_create": { "post": { "responses": { "200": { "description": "OK", "headers": {}, "content": {} }, "207": { "description": "Multi-Status", "headers": {}, "content": { "application/json": { "schema": { "type": "object", "properties": { "results": { "type": "array", "items": { "type": "object", "properties": { "credential": { "type": "object", "properties": { "id": { "type": "number" }, "approve": { "type": "boolean" }, "recipient": { "type": "object", "properties": { "name": { "type": "string" }, "email": { "type": "string" }, "phone_number": { "type": "string", "nullable": true }, "id": { "type": "number" }, "meta_data": { "nullable": true } } }, "issuer": { "type": "object", "properties": { "name": { "type": "string" }, "url": { "type": "string" }, "description": { "type": "string" } } }, "name": { "type": "string" }, "description": { "type": "string" }, "issued_on": { "type": "string" }, "group_name": { "type": "string" }, "url": { "type": "string" }, "grade": { "nullable": true }, "complete": { "type": "boolean" }, "expired_on": { "nullable": true }, "custom_attibutes": { "nullable": true }, "course_link": { "nullable": true }, "meta_data": { "nullable": true }, "evidence_items": { "type": "array", "items": {} }, "references": { "type": "array", "items": {} }, "skills": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "identifier": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "url": { "type": "string", "nullable": true }, "breadcrumbs": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "identifier": { "type": "string", "nullable": true } }, "required": [ "id", "name", "identifier" ] } } }, "required": [ "id", "name", "identifier", "description", "url", "breadcrumbs" ] } } } }, "errors": { "type": "object", "properties": { "code": { "type": "string" }, "message": { "type": "string" } } } } } } } }, "example": { "results": [ { "credential": { "id": 1234, "approve": false, "recipient": { "name": "John Doe", "email": "person2@example.com", "phone_number": "+14155552671", "id": 232, "meta_data": null }, "issuer": { "name": "Course Provider", "url": "http://www.awesomelearningexample.com", "description": "Technical courses at an introductory level..." }, "name": "Credential Name", "description": "A detailed description of what the credential is for", "issued_on": "2014-06-14", "group_name": "Test Group", "url": "https://www.example.com/10000005", "grade": null, "complete": true, "expired_on": null, "custom_attibutes": null, "course_link": null, "meta_data": null, "evidence_items": [], "references": [], "skills": [ { "id": 59302, "name": "Active Listening", "identifier": "2.A.1.b", "description": "Giving full attention to what other people are saying, taking time to understand the points being made.", "url": "https://www.onetonline.org/find/descriptor/result/2.A.1.b", "breadcrumbs": [ { "id": 59298, "name": "Worker Requirements", "identifier": "2" }, { "id": 59299, "name": "Basic Skills", "identifier": "2.A" }, { "id": 59300, "name": "Content", "identifier": "2.A.1" } ] }, { "id": 59301, "name": "Reading Comprehension", "identifier": "2.A.1.a", "description": "Understanding written sentences and paragraphs in work related documents.", "url": "https://www.onetonline.org/find/descriptor/result/2.A.1.a", "breadcrumbs": [ { "id": 59298, "name": "Worker Requirements", "identifier": "2" }, { "id": 59299, "name": "Basic Skills", "identifier": "2.A" }, { "id": 59300, "name": "Content", "identifier": "2.A.1" } ] } ] }, "errors": { "code": "insufficient_credits", "message": "The credential was created but not published." } } ] } } } }, "422": { "description": "Unprocessable Entity", "headers": {}, "content": { "application/json": { "schema": { "type": "object", "properties": { "results": { "type": "array", "items": { "type": "object", "properties": { "errors": { "type": "object", "properties": { "code": { "type": "string" }, "message": { "type": "string" }, "details": { "type": "array", "items": { "type": "object", "properties": { "property": { "type": "string" }, "message": { "type": "string" } } } } } } } } } } }, "example": { "results": [ { "errors": { "code": "credential_invalid", "message": "The credential is not valid", "details": [ { "property": "recipient.email", "message": "has already been taken. Your group settings do not allow duplicates of this credential to be sent to the same email." } ] } } ] } } } } }, "summary": "Bulk Create Credentials (v2)", "operationId": "Bulk Create Credentials (v2)", "description": "**Important:** If you don't have enough credits when attempting to create Credentials with this endpoint, your credentials will still be created in your account, but will not be published.\nIt supports multi-status responses, where partial successes and errors are consolidated into a single structure with `status: 207 Multi-Status`.\nYou will be able to publish the created credentials in your account when you have the required credits.\n\n**API Limits:** Each request can accommodate up to 30 credentials. Should you have a larger set of credentials to process, it's recommended to split them into batches of 30 and make successive calls to this API.", "tags": [ "Credentials" ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "credentials": { "description": "Array of the credentials payload all field applicable which is in create credential endpoint." } }, "required": [ "credentials" ] }, "example": { "credentials": [ { "recipient": { "name": "John Doe", "email": "student@example.com", "phone_number": "+14155552671" }, "group_id": 22625 }, { "recipient": { "name": "Jane Smith", "email": "jane@example.com", "phone_number": "+14155552672" }, "group_id": 62430 } ] } } } }, "security": [ { "ApiKeyAuth": [] } ], "x-code-samples": [ { "lang": "cURL", "label": "cURL", "source": "curl -X POST \\\n \"https://api.accredible.com/v2/credentials/bulk_create\" \\\n -H \"Authorization: Token token=YOUR_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"credentials\": [\n {\n \"recipient\": {\n \"name\": \"John Doe\",\n \"email\": \"student@example.com\",\n \"phone_number\": \"+14155552671\"\n },\n \"group_id\": 22625\n },\n {\n \"recipient\": {\n \"name\": \"Jane Smith\",\n \"email\": \"jane@example.com\",\n \"phone_number\": \"+14155552672\"\n },\n \"group_id\": 62430\n }\n ]\n}'" } ] } }, "/v1/credentials/{id}": { "get": { "responses": { "200": { "description": "OK", "headers": {}, "content": { "application/json": { "schema": { "type": "object", "properties": { "credential": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "approve": { "type": "boolean" }, "grade": { "nullable": true }, "complete": { "type": "boolean" }, "issued_on": { "type": "string" }, "course_link": { "type": "string" }, "custom_attributes": { "type": "object", "properties": { "Location": { "type": "string" } } }, "expired_on": { "nullable": true }, "group_name": { "type": "string" }, "group_id": { "type": "number" }, "url": { "type": "string" }, "encoded_id": { "type": "string" }, "private": { "type": "boolean" }, "seo_image": { "type": "string" }, "certificate": { "type": "object", "properties": { "image": { "type": "object", "properties": { "preview": { "type": "string" } } } } }, "badge": { "type": "object", "properties": { "image": { "type": "object", "properties": { "preview": { "type": "string" } } } } }, "evidence_items": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "description": { "type": "string" }, "preview_image_url": { "type": "string", "nullable": true }, "link_url": { "type": "string", "nullable": true }, "type": { "type": "string" }, "string_object": { "type": "object", "properties": { "grade": { "type": "number" } }, "nullable": true }, "supplemental": { "type": "boolean" }, "position": { "type": "number" } }, "required": [ "id", "description", "preview_image_url", "link_url", "type", "string_object", "supplemental", "position" ] } }, "references": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "description": { "type": "string" }, "relationship": { "type": "string" }, "supplemental": { "type": "boolean" }, "approve": { "type": "boolean" }, "referee": { "type": "object", "properties": { "name": { "type": "string" }, "email": { "nullable": true }, "avatar": { "type": "string" } } } } } }, "recipient": { "type": "object", "properties": { "name": { "type": "string" }, "email": { "type": "string" }, "phone_number": { "type": "string", "nullable": true }, "id": { "type": "string" }, "meta_data": { "nullable": true } } }, "issuer": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "nullable": true }, "url": { "type": "string" }, "id": { "type": "number" } } }, "meta_data": { "nullable": true }, "skills": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "identifier": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "url": { "type": "string", "nullable": true }, "breadcrumbs": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "identifier": { "type": "string", "nullable": true } }, "required": [ "id", "name", "identifier" ] } } }, "required": [ "id", "name", "identifier", "description", "url", "breadcrumbs" ] } } } } } }, "example": { "credential": { "id": "10000005", "name": "Example Certificate", "description": "This is an example description - you can write anything you want here.\n\nWe recommend describing the achievement.", "approve": true, "grade": null, "complete": true, "issued_on": "2014-08-14", "course_link": "https://www.accredible.com", "custom_attributes": { "Location": "London" }, "expired_on": null, "group_name": "Example Certificate Design", "group_id": 9549, "url": "https://www.credential.net/10000005", "encoded_id": "10000005", "private": false, "seo_image": "https://api.accredible.com/v1/frontend/credential_seo_image/10000005", "certificate": { "image": { "preview": "https://api.accredible.com/v1/frontend/credential_website_embed_image/certificate/10000005" } }, "badge": { "image": { "preview": "https://api.accredible.com/v1/frontend/credential_badge_image/10000005" } }, "evidence_items": [ { "id": 826, "description": "Final Grade", "preview_image_url": null, "link_url": null, "type": "grade", "string_object": { "grade": 80 }, "supplemental": false, "position": 1 }, { "id": 10, "description": "Presentation", "preview_image_url": "https://s3.amazonaws.com/staging_accredible_api_evidence_items/previews/10/medium/open-uri20140316-15300-14jngj.jpg?1408372366", "link_url": "https://s3.amazonaws.com/staging_accredible_api_evidence_items/files/10/original/open-uri20140316-15300-14jngj.pdf", "type": "file", "string_object": null, "supplemental": true, "position": 4 } ], "references": [ { "id": 2, "description": "Although he had difficulty with the course material at first, John learned a lot throughout the course. His final project was one of the best in his class.", "relationship": "mentored", "supplemental": false, "approve": true, "referee": { "name": "Example Person", "email": null, "avatar": "https://s3.amazonaws.com/staging_accredible_api_individuals/images/4/thumb/open-uri20140815-11960-1r0hppg?1408416647" } } ], "recipient": { "name": "Jordan Smith", "email": "jor@dan.org", "phone_number": "+14155552671", "id": "dw373", "meta_data": null }, "issuer": { "name": "Example Organization", "description": null, "url": "http://www.accredible.com", "id": 4897 }, "meta_data": null, "skills": [ { "id": 59302, "name": "Active Listening", "identifier": "2.A.1.b", "description": "Giving full attention to what other people are saying, taking time to understand the points being made.", "url": "https://www.onetonline.org/find/descriptor/result/2.A.1.b", "breadcrumbs": [ { "id": 59298, "name": "Worker Requirements", "identifier": "2" }, { "id": 59299, "name": "Basic Skills", "identifier": "2.A" }, { "id": 59300, "name": "Content", "identifier": "2.A.1" } ] }, { "id": 59301, "name": "Reading Comprehension", "identifier": "2.A.1.a", "description": "Understanding written sentences and paragraphs in work related documents.", "url": "https://www.onetonline.org/find/descriptor/result/2.A.1.a", "breadcrumbs": [ { "id": 59298, "name": "Worker Requirements", "identifier": "2" }, { "id": 59299, "name": "Basic Skills", "identifier": "2.A" }, { "id": 59300, "name": "Content", "identifier": "2.A.1" } ] } ] } } } } } }, "summary": "View a Credential", "operationId": "View a Credential", "description": "[View Credentials - Video Walkthrough](https://www.loom.com/share/9724ce5eb0694dfab0c03f5b70d8a3f3?sid=cea2c757-5031-4ff1-b33d-91b361fd0cdf)", "tags": [ "Credentials" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of the Credential in the form of an integer or string for the particular Credential requested.", "required": true, "schema": { "type": "string" } } ], "security": [ { "ApiKeyAuth": [] } ], "x-code-samples": [ { "lang": "cURL", "label": "cURL", "source": "curl -X GET \\\n \"https://api.accredible.com/v1/credentials/12345\" \\\n -H \"Authorization: Token token=YOUR_API_KEY\"" } ] }, "put": { "responses": { "200": { "description": "OK", "headers": {}, "content": {} } }, "summary": "Update a Credential", "operationId": "Update a Credential", "description": "[Updating Credentials - Video Walkthrough](https://www.loom.com/share/4940d9cf43da43dc870f40ac4dd3831f?sid=ebfe460c-01a1-40a0-b5fe-6e8d13386f54)", "tags": [ "Credentials" ], "parameters": [ { "name": "id", "in": "path", "description": "The unique ID of the credential. If you supply your own internal ID we'll use this as a reference for the Credential. If not we'll assign an ID.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "credential": { "approve": true, "recipient": { "phone_number": "+14155552671" } } }, "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "The unique ID of the credential. If you supply your own internal ID we'll use this as a reference for the Credential. If not we'll assign an ID." }, "recipient.name": { "type": "string", "description": "The name of the recipient the credential is issued to." }, "recipient.email": { "type": "string", "description": "The recipient's email address." }, "recipient.phone_number": { "type": "string", "description": "The recipient's phone number in E.164 format (e.g., +14155552671). This field is optional and available as part of the Growth plan. Phone numbers are used for SMS campaigns and are associated with the credential." }, "recipient.id": { "type": "string", "description": "The recipient's user ID as defined by your organization. This alllows you to easily map your recipients to their Credentials regardless of changes to their email address." }, "recipient.meta_data": { "type": "object", "properties": {}, "description": "You can use this parameter to attach key-value strings to the object. Meta data is useful for storing additional, structured information on an object." }, "group_id": { "type": "number", "description": "Group Id to which the credential should belong." }, "name": { "type": "string", "description": "The Credential/course name displayed to recipients. This is required if the Group the Credential belongs to doesn't have a Course Name set." }, "description": { "type": "string", "description": "The credential/course description displayed to recipients. This is required if the Group the Credential belongs to doesn't have a Course Description set." }, "custom_attributes": { "type": "object", "properties": {}, "description": "Custom variables to display on the Credential. These should be added to the design using the visual editor. Data should be formatted as a JSON hash where keys are the custom attribute names and the values are the values to be displayed on the Credential." }, "issued_on": { "type": "string", "description": "Date of issue, the default is when the credential is created. Format: YYYY-MM-DD (DD/MM/YYYY also works but is deprecated)" }, "expired_on": { "type": "string", "description": "Date you would like the credential to expire on, null by default. Format: YYYY-MM-DD (DD/MM/YYYY also works but is deprecated)" }, "complete": { "type": "boolean", "description": "Whether the achievement is complete or still in progress, true by default." }, "allow_supplemental_evidence": { "type": "boolean", "description": "Whether to allow recipients to add their own supplemental evidence to the Credential, true by default." }, "allow_supplemental_references": { "type": "boolean", "description": "Whether to allow recipients to add their own supplemental references to the credential, true by default." }, "evidence_items": { "description": "Evidence to add to this credential, that provide more information about how the recipient met the achievement. See Evidence Items for fields. Typically this would include work samples for a course." }, "references": { "description": "References to add to this Credential, that provide more information about how the recipient met the achievement. See References for fields. Typically this would be a peer, teacher or manager giving their feedback." }, "meta_data": { "type": "object", "properties": {}, "description": "You can use this parameter to attach key-value strings to the object. Meta data is useful for storing additional, structured information on an object." } } } } } }, "security": [ { "ApiKeyAuth": [] } ], "x-code-samples": [ { "lang": "cURL", "label": "cURL", "source": "curl -X PUT \\\n \"https://api.accredible.com/v1/credentials/12345\" \\\n -H \"Authorization: Token token=YOUR_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"credential\": {\n \"approve\": true,\n \"recipient\": {\n \"phone_number\": \"+14155552671\"\n }\n }\n}'" } ] }, "delete": { "responses": { "200": { "description": "OK", "headers": {}, "content": { "application/json": { "schema": { "type": "object", "properties": { "credential": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "approve": { "type": "boolean" }, "grade": { "nullable": true }, "complete": { "type": "boolean" }, "issued_on": { "type": "string" }, "course_link": { "type": "string" }, "custom_attributes": { "type": "object", "properties": { "Location": { "type": "string" } } }, "expired_on": { "nullable": true }, "group_name": { "type": "string" }, "group_id": { "type": "number" }, "url": { "type": "string" }, "encoded_id": { "type": "string" }, "private": { "type": "boolean" }, "seo_image": { "type": "string" }, "certificate": { "type": "object", "properties": { "image": { "type": "object", "properties": { "preview": { "type": "string" } } } } }, "badge": { "type": "object", "properties": { "image": { "type": "object", "properties": { "preview": { "type": "string" } } } } }, "evidence_items": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "description": { "type": "string" }, "preview_image_url": { "type": "string", "nullable": true }, "link_url": { "type": "string", "nullable": true }, "type": { "type": "string" }, "string_object": { "type": "object", "properties": { "grade": { "type": "number" } }, "nullable": true }, "supplemental": { "type": "boolean" }, "position": { "type": "number" } }, "required": [ "id", "description", "preview_image_url", "link_url", "type", "string_object", "supplemental", "position" ] } }, "references": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "description": { "type": "string" }, "relationship": { "type": "string" }, "supplemental": { "type": "boolean" }, "approve": { "type": "boolean" }, "referee": { "type": "object", "properties": { "name": { "type": "string" }, "email": { "nullable": true }, "avatar": { "type": "string" } } } } } }, "recipient": { "type": "object", "properties": { "name": { "type": "string" }, "email": { "type": "string" }, "phone_number": { "type": "string", "nullable": true }, "id": { "type": "string" }, "meta_data": { "nullable": true } } }, "issuer": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "nullable": true }, "url": { "type": "string" }, "id": { "type": "number" } } }, "meta_data": { "nullable": true } } } } }, "example": { "credential": { "id": "10000005", "name": "Example Certificate", "description": "This is an example description - you can write anything you want here.\n\nWe recommend describing the achievement.", "approve": true, "grade": null, "complete": true, "issued_on": "2014-08-14", "course_link": "https://www.accredible.com", "custom_attributes": { "Location": "London" }, "expired_on": null, "group_name": "Example Certificate Design", "group_id": 9549, "url": "https://www.credential.net/10000005", "encoded_id": "10000005", "private": false, "seo_image": "https://api.accredible.com/v1/frontend/credential_seo_image/10000005", "certificate": { "image": { "preview": "https://api.accredible.com/v1/frontend/credential_website_embed_image/certificate/10000005" } }, "badge": { "image": { "preview": "https://api.accredible.com/v1/frontend/credential_badge_image/10000005" } }, "evidence_items": [ { "id": 826, "description": "Final Grade", "preview_image_url": null, "link_url": null, "type": "grade", "string_object": { "grade": 80 }, "supplemental": false, "position": 1 }, { "id": 10, "description": "Presentation", "preview_image_url": "https://s3.amazonaws.com/staging_accredible_api_evidence_items/previews/10/medium/open-uri20140316-15300-14jngj.jpg?1408372366", "link_url": "https://s3.amazonaws.com/staging_accredible_api_evidence_items/files/10/original/open-uri20140316-15300-14jngj.pdf", "type": "file", "string_object": null, "supplemental": true, "position": 4 } ], "references": [ { "id": 2, "description": "Although he had difficulty with the course material at first, John learned a lot throughout the course. His final project was one of the best in his class.", "relationship": "mentored", "supplemental": false, "approve": true, "referee": { "name": "Example Person", "email": null, "avatar": "https://s3.amazonaws.com/staging_accredible_api_individuals/images/4/thumb/open-uri20140815-11960-1r0hppg?1408416647" } } ], "recipient": { "name": "Jordan Smith", "email": "jor@dan.org", "id": "net772", "meta_data": null }, "issuer": { "name": "Example Organization", "description": null, "url": "http://www.accredible.com", "id": 4897 }, "meta_data": null } } } } } }, "summary": "Delete a Credential", "operationId": "Delete a Credential", "description": "[Deleting Credentials - Video Walkthrough](https://www.loom.com/share/5cf48b55e1a74803bb9ad3ce87bdc657?sid=44bb79e9-47ee-4070-9e03-bc6a68957789)", "tags": [ "Credentials" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of the credential for the particular Credential requested.", "required": true, "schema": { "type": "string" } } ], "security": [ { "ApiKeyAuth": [] } ], "x-code-samples": [ { "lang": "cURL", "label": "cURL", "source": "curl -X DELETE \\\n \"https://api.accredible.com/v1/credentials/12345\" \\\n -H \"Authorization: Token token=YOUR_API_KEY\"" } ] } }, "/v1/all_credentials": { "get": { "responses": { "200": { "description": "OK", "headers": {}, "content": { "application/json": { "schema": { "type": "object", "properties": { "credentials": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "description": { "type": "string" }, "grade": { "nullable": true }, "complete": { "type": "boolean" }, "issued_on": { "type": "string" }, "allow_supplemental_references": { "nullable": true }, "allow_supplemental_evidence": { "nullable": true }, "course_link": { "type": "string" }, "custom_attributes": { "nullable": true }, "expired_on": { "nullable": true }, "group_name": { "type": "string" }, "private": { "type": "boolean" }, "recipient": { "type": "object", "properties": { "name": { "type": "string" }, "email": { "type": "string" }, "phone_number": { "type": "string", "nullable": true }, "id": { "type": "number" }, "meta_data": { "type": "object", "properties": { "zip_code": { "type": "string" } }, "nullable": true } } }, "issuer": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "url": { "type": "string" } } }, "meta_data": { "type": "object", "properties": { "foo": { "type": "string" } }, "nullable": true } }, "required": [ "id", "name", "description", "grade", "complete", "issued_on", "allow_supplemental_references", "allow_supplemental_evidence", "course_link", "custom_attributes", "expired_on", "group_name", "private", "recipient", "issuer", "meta_data" ] } }, "meta": { "type": "object", "properties": { "current_page": { "type": "number" }, "next_page": { "type": "number" }, "prev_page": { "nullable": true }, "total_pages": { "type": "number" }, "total_count": { "type": "number" } } } } }, "example": { "credentials": [ { "id": 10250009, "name": "TestCourse", "description": "Test Description", "grade": null, "complete": true, "issued_on": "2015-07-03", "allow_supplemental_references": null, "allow_supplemental_evidence": null, "course_link": "http://example.com", "custom_attributes": null, "expired_on": null, "group_name": "test", "private": false, "recipient": { "name": "John Doe", "email": "person2@example.com", "id": 772, "meta_data": { "zip_code": "10459" } }, "issuer": { "name": "Example Provider", "description": " Best place to manage online learning", "url": "http://www.accredible.com" }, "meta_data": { "foo": "bar" } }, { "id": 10250010, "name": "TestCourse", "description": "Test Description", "grade": null, "complete": true, "issued_on": "2015-07-03", "allow_supplemental_references": null, "allow_supplemental_evidence": null, "course_link": "http://example.com", "custom_attributes": null, "expired_on": null, "group_name": "test", "private": false, "recipient": { "name": "John Doe", "email": "person2@example.com", "id": 883, "meta_data": null }, "issuer": { "name": "Example Provider", "description": " Best place to manage online learning", "url": "http://www.accredible.com" }, "meta_data": null } ], "meta": { "current_page": 1, "next_page": 2, "prev_page": null, "total_pages": 795, "total_count": 1590 } } } } } }, "summary": "View many Credentials", "operationId": "View many Credentials", "description": "**DEPRECATED:** This endpoint is deprecated.\n\n[View Many Credentials - Video Walkthrough](https://www.loom.com/share/520347485c3b44c7b64daeb17f1b307b?sid=9deb6be0-e636-4a03-ac2a-3dc831b1e3ad)", "deprecated": true, "tags": [ "Credentials" ], "parameters": [ { "name": "group_id", "in": "query", "description": "Limit the returned Credentials to a specific group ID.", "schema": { "type": "string" } }, { "name": "email", "in": "query", "description": "Limit the returned Credentials to a specific recipient's email address.", "schema": { "type": "string" } }, { "name": "recipient_id", "in": "query", "description": "Limit the returned Credentials to a specific recipient user identifier (ID) you set whilst creating Credentials.", "schema": { "type": "string" } }, { "name": "license_id", "in": "query", "description": "Limit the returned Credential to a specific credential id you set whilst creating credential.", "schema": { "type": "string" } }, { "name": "start_date", "in": "query", "description": "Date after which credentials issued should be return. Format: YYYY-MM-DD (DD/MM/YYYY also works but is deprecated)", "schema": { "type": "string" } }, { "name": "end_date", "in": "query", "description": "Date before which credetials issued should be return. Format: YYYY-MM-DD (DD/MM/YYYY also works but is deprecated)", "schema": { "type": "string" } }, { "name": "start_updated_date", "in": "query", "description": "Date after which Credentials updated should be returned. Format: YYYY-MM-DD (DD/MM/YYYY also works but is deprecated)", "schema": { "type": "string" } }, { "name": "end_updated_date", "in": "query", "description": "Date before which Credentials updated should be returned. Format: YYYY-MM-DD (DD/MM/YYYY also works but is deprecated)", "schema": { "type": "string" } }, { "name": "page_size", "in": "query", "description": "The pagination response size, default of 50.", "schema": { "type": "number" } }, { "name": "page", "in": "query", "description": "The pagination page.", "schema": { "type": "number" } } ], "security": [ { "ApiKeyAuth": [] } ], "x-code-samples": [ { "lang": "cURL", "label": "cURL", "source": "curl -X GET \\\n \"https://api.accredible.com/v1/all_credentials\" \\\n -H \"Authorization: Token token=YOUR_API_KEY\"" } ] } }, "/v1/credentials/search": { "post": { "responses": { "200": { "description": "OK", "headers": {}, "content": { "application/json": { "schema": { "type": "object", "properties": { "credentials": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "description": { "type": "string" }, "grade": { "nullable": true }, "complete": { "type": "boolean" }, "issued_on": { "type": "string" }, "allow_supplemental_references": { "nullable": true }, "allow_supplemental_evidence": { "nullable": true }, "course_link": { "type": "string" }, "custom_attributes": { "nullable": true }, "expired_on": { "nullable": true }, "group_name": { "type": "string" }, "private": { "type": "boolean" }, "seo_image": { "type": "string" }, "encoded_id": { "type": "string" }, "recipient": { "type": "object", "properties": { "name": { "type": "string" }, "email": { "type": "string" }, "phone_number": { "type": "string", "nullable": true }, "id": { "type": "number" }, "meta_data": { "type": "object", "properties": { "zip_code": { "type": "string" } }, "nullable": true } } }, "issuer": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "url": { "type": "string" } } }, "meta_data": { "type": "object", "properties": { "foo": { "type": "string" } }, "nullable": true }, "skills": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "identifier": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "url": { "type": "string", "nullable": true }, "breadcrumbs": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "identifier": { "type": "string", "nullable": true } }, "required": [ "id", "name", "identifier" ] } } }, "required": [ "id", "name", "identifier", "description", "url", "breadcrumbs" ] } } }, "required": [ "id", "name", "description", "grade", "complete", "issued_on", "allow_supplemental_references", "allow_supplemental_evidence", "course_link", "custom_attributes", "expired_on", "group_name", "private", "recipient", "issuer", "meta_data", "skills" ] } }, "meta": { "type": "object", "properties": { "current_page": { "type": "number" }, "next_page": { "type": "number" }, "prev_page": { "nullable": true }, "total_pages": { "type": "number" }, "total_count": { "type": "number" } } } } }, "example": { "credentials": [ { "id": 10250009, "name": "TestCourse", "description": "Test Description", "grade": null, "complete": true, "issued_on": "2015-07-03", "allow_supplemental_references": null, "allow_supplemental_evidence": null, "course_link": "http://example.com", "custom_attributes": null, "expired_on": null, "group_name": "test", "private": false, "seo_image": "https://api.accredible.com/v1/frontend/credential_seo_image/10250009", "encoded_id": "gqm1e46g", "recipient": { "name": "John Doe", "email": "person2@example.com", "id": 772, "meta_data": { "zip_code": "10459" } }, "issuer": { "name": "Example Provider", "description": " Best place to manage online learning", "url": "http://www.accredible.com" }, "meta_data": { "foo": "bar" }, "skills": [ { "id": 59302, "name": "Active Listening", "identifier": "2.A.1.b", "description": "Giving full attention to what other people are saying, taking time to understand the points being made.", "url": "https://www.onetonline.org/find/descriptor/result/2.A.1.b", "breadcrumbs": [ { "id": 59298, "name": "Worker Requirements", "identifier": "2" }, { "id": 59299, "name": "Basic Skills", "identifier": "2.A" }, { "id": 59300, "name": "Content", "identifier": "2.A.1" } ] }, { "id": 59301, "name": "Reading Comprehension", "identifier": "2.A.1.a", "description": "Understanding written sentences and paragraphs in work related documents.", "url": "https://www.onetonline.org/find/descriptor/result/2.A.1.a", "breadcrumbs": [ { "id": 59298, "name": "Worker Requirements", "identifier": "2" }, { "id": 59299, "name": "Basic Skills", "identifier": "2.A" }, { "id": 59300, "name": "Content", "identifier": "2.A.1" } ] } ] }, { "id": 10250010, "name": "TestCourse", "description": "Test Description", "grade": null, "complete": true, "issued_on": "2015-07-03", "allow_supplemental_references": null, "allow_supplemental_evidence": null, "course_link": "http://example.com", "custom_attributes": null, "expired_on": null, "group_name": "test", "private": false, "seo_image": "https://api.accredible.com/v1/frontend/credential_seo_image/10250010", "encoded_id": "gqm1e36g", "recipient": { "name": "John Doe", "email": "person2@example.com", "id": 883, "meta_data": null }, "issuer": { "name": "Example Provider", "description": " Best place to manage online learning", "url": "http://www.accredible.com" }, "meta_data": null, "skills": [] } ], "meta": { "current_page": 1, "next_page": 2, "prev_page": null, "total_pages": 795, "total_count": 1590 } } } } } }, "summary": "Search for Credentials (v1)", "operationId": "Search for Credentials (v1)", "description": "**DEPRECATED:** This is a deprecated API. Please consider switching to the updated v2 Search API for better performance and support.\n\n**Rate Limiting:** For this deprecated endpoint, there is a strict rate limit of 100 requests per 60 seconds, per IP address.", "deprecated": true, "tags": [ "Credentials" ], "requestBody": { "content": { "application/json": { "example": { "group_id": "example", "recipient.name": "John Doe", "recipient.email": "person@example.com", "recipient.id": "example", "recipient.meta_data": { "zip_code": "10459" }, "license_id": "example", "meta_data": { "example": "value" }, "start_date": "2022-01-01", "end_date": "2022-12-31", "start_updated_date": "2022-01-01", "end_updated_date": "2022-12-31", "page_size": 50, "page": 1 }, "schema": { "type": "object", "properties": { "group_id": { "type": "string", "description": "Limit the returned Credentials to a specific group ID." }, "recipient.name": { "type": "string", "description": "Limit the returned Credentials to a recipient's name" }, "recipient.email": { "type": "string", "description": "Limit the returned Credentials to a specific recipient's email address." }, "recipient.id": { "type": "string", "description": "Limit the returned Credentials to a specific recipient user identifier (ID) you set whilst creating Credentials." }, "recipient.meta_data": { "type": "object", "properties": { "zip_code": { "type": "string" } }, "description": "String key/values for client's own data on recipient" }, "license_id": { "type": "string", "description": "Limit the returned Credential to a specific credential id you set whilst creating credential." }, "meta_data": { "type": "object", "properties": { "example": { "type": "string" } }, "description": "String key/values for client's own data on credential" }, "start_date": { "type": "string", "description": "Date after which credentials issued should be return. Format: YYYY-MM-DD (DD/MM/YYYY also works but is deprecated)" }, "end_date": { "type": "string", "description": "Date before which credetials issued should be return. Format: YYYY-MM-DD (DD/MM/YYYY also works but is deprecated)" }, "start_updated_date": { "type": "string", "description": "Date after which Credentials updated should be returned. Format: YYYY-MM-DD (DD/MM/YYYY also works but is deprecated)" }, "end_updated_date": { "type": "string", "description": "Date before which Credetials updated should be returned. Format: YYYY-MM-DD (DD/MM/YYYY also works but is deprecated)" }, "page_size": { "type": "number", "description": "The pagination response size, default of 50." }, "page": { "type": "number", "description": "The pagination page." } } } } } }, "security": [ { "ApiKeyAuth": [] } ], "x-code-samples": [ { "lang": "cURL", "label": "cURL", "source": "curl -X POST \\\n \"https://api.accredible.com/v1/credentials/search\" \\\n -H \"Authorization: Token token=YOUR_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"group_id\": \"example\",\n \"recipient.name\": \"John Doe\",\n \"recipient.email\": \"person@example.com\",\n \"recipient.id\": \"example\",\n \"recipient.meta_data\": {\n \"zip_code\": \"10459\"\n },\n \"license_id\": \"example\",\n \"meta_data\": {\n \"example\": \"value\"\n },\n \"start_date\": \"2022-01-01\",\n \"end_date\": \"2022-12-31\",\n \"start_updated_date\": \"2022-01-01\",\n \"end_updated_date\": \"2022-12-31\",\n \"page_size\": 50,\n \"page\": 1\n}'" } ] } }, "/v2/credentials/search": { "post": { "responses": { "200": { "description": "OK", "headers": {}, "content": { "application/json": { "schema": { "type": "object", "properties": { "credentials": { "type": "array", "items": { "type": "object", "properties": { "encoded_id": { "type": "string" }, "private": { "type": "boolean" }, "recipient_opened": { "type": "boolean" }, "seo_image": { "type": "string" }, "published_on": { "type": "string", "nullable": true }, "recipient_email": { "type": "string" }, "created_at": { "type": "string" }, "recipient_engaged": { "type": "boolean" }, "uuid": { "type": "string" }, "custom_attributes": { "type": "object", "nullable": true }, "issuer_id": { "type": "number" }, "recipient_meta_data": { "type": "object", "nullable": true }, "updated_at": { "type": "string" }, "approve": { "type": "boolean" }, "license_id": { "type": "string", "nullable": true }, "grade": { "nullable": true }, "meta_data": { "type": "object", "nullable": true }, "name": { "type": "string" }, "issued_on": { "type": "string" }, "id": { "type": "number" }, "recipient_name": { "type": "string" }, "group": { "type": "object", "properties": { "course_name": { "type": "string" }, "badge_design_id": { "type": "number", "nullable": true }, "certificate_design_id": { "type": "number", "nullable": true }, "name": { "type": "string" }, "phone_number": { "type": "string", "nullable": true }, "id": { "type": "number" } } }, "expired_on": { "type": "string", "nullable": true }, "recipient_id": { "type": "string", "nullable": true } } } }, "meta": { "type": "object", "properties": { "count": { "type": "number" }, "from": { "type": "number" }, "size": { "type": "number" }, "cursor": { "type": "string" } } } } }, "example": { "credentials": [ { "encoded_id": "qwerty123", "private": false, "recipient_opened": false, "seo_image": "https://api.accredible.com/v1/frontend/credential_seo_image/1234", "published_on": "2025-10-31", "recipient_email": "john.doe@mailinator.test", "created_at": "2025-10-31T08:11:16.390Z", "recipient_engaged": false, "uuid": "a8307173-e4e6-4eb4-991c-56ebe80g4623", "custom_attributes": {}, "issuer_id": 1234, "recipient_meta_data": {}, "updated_at": "2025-10-31T08:11:16.390Z", "approve": true, "license_id": null, "grade": null, "meta_data": {}, "name": "Group / Course Name", "issued_on": "2025-10-31", "id": 12345678, "recipient_name": "John Doe", "group": { "course_name": "Group / Course Name", "badge_design_id": null, "certificate_design_id": 1234, "name": "COURSE_NAME", "id": 12345 }, "expired_on": null, "recipient_id": null } ], "meta": { "count": 1000, "from": 0, "size": 50, "cursor": "WzEsMC4wXQ==" } } } } } }, "summary": "Search for Credentials (v2)", "operationId": "Search for Credentials (v2)", "description": "This is a faster alternative to the v1 Search API. It also supports operations on the query fields which can allow you to form more complex queries.\n\nFollowing operations are **supported based on the field**. You can also combine operations on multiple fields:\n\n| Operation | Description | Example |\n|-----------|-------------|----------|\n| `eq` | Exact match (default, if nothing specified). | `{\"group.id[eq]\": 1}` or `{\"group.id\": 1}` - Both yield the same result. |\n| `in` | Allows an array of values. | `{\"group.id[in]\": [1, 2]}` |\n| `lt` | Less than. | `{\"issued_on[lt]\": \"2023-12-31\"}` |\n| `gt` | Greater than. | `{\"issued_on[gt]\": \"2023-01-01\"}` |\n| `lte` | Less than equal to. | `{\"expired_on[lte]\": \"2023-12-31\"}` |\n| `gte` | Greater than equal to. | `{\"expired_on[gte]\": \"2023-01-01\"}` |\n\n**Note:** Offset-based pagination using `page.from` + `page.size` supports a maximum of 10,000 results. To retrieve results beyond this limit, use cursor-based pagination with `page.cursor` and `page.size`.\n\n**Note:** Results from this endpoint do **not** carry the `skills` field that the other credential endpoints return. To read a credential's framework skills, fetch it with [View a Credential](#operation/View%20a%20Credential).", "tags": [ "Credentials" ], "requestBody": { "content": { "application/json": { "examples": { "Offset-based pagination": { "value": { "query": { "group.id[in]": [1, 2], "recipient_name": "John Doe", "approve": true, "recipient_email": "person@example.com", "recipient_id": "example", "recipient_meta_data": {"example": "value"}, "license_id": "example", "meta_data": {"example": "value"}, "custom_attributes": {"example": "value"}, "issued_on[gte]": "2023-01-01", "issued_on[lt]": "2024-01-01", "updated_at[gte]": "2023-01-01", "created_at[gte]": "2023-01-01" }, "sort": { "issued_on": "desc" }, "page": { "from": 0, "size": 50 } } }, "Cursor-based pagination": { "value": { "query": { "group.id[in]": [1, 2], "recipient_name": "John Doe", "approve": true, "recipient_email": "person@example.com", "recipient_id": "example", "recipient_meta_data": {"example": "value"}, "license_id": "example", "meta_data": {"example": "value"}, "custom_attributes": {"example": "value"}, "issued_on[gte]": "2023-01-01", "issued_on[lt]": "2024-01-01", "updated_at[gte]": "2023-01-01", "created_at[gte]": "2023-01-01" }, "sort": { "issued_on": "desc" }, "page": { "cursor": "WzEsMC4wXQ==", "size": 50 } } } }, "schema": { "type": "object", "required": [ "query" ], "properties": { "query": { "type": "object", "properties": { "uuid": { "type": "string", "description": "Limit the returned credentials to a specific UUID.\n\nSupported operations - `eq`, `in`" }, "group.id": { "type": "string", "description": "Limit the returned credentials to a specific group ID.\n\nSupported operations - `eq`, `in`" }, "recipient_name": { "type": "string", "description": "Limit the returned credentials to a recipient's name.\n\nSupported operations - `eq`, `in`" }, "approve": { "type": "boolean", "description": "Return only published or unpublished credentials by specifying the desired value (true/false). If not specified, all credentials will be returned.\n\nSupported operations - `eq`" }, "recipient_email": { "type": "string", "description": "Limit the returned credentials to a specific recipient's email address.\n\nSupported operations - `eq`, `in`" }, "recipient_id": { "type": "string", "description": "Limit the returned credentials to a specific recipient user identifier (ID) you set whilst creating credentials.\n\nSupported operations - `eq`, `in`" }, "recipient_meta_data": { "type": "object", "properties": {}, "description": "String key/values for client's own data on the recipient.\n\nSupported operations - none" }, "license_id": { "type": "string", "description": "Limit the returned credentials to a specific credential id you set whilst creating the credential.\n\nSupported operations - `eq`, `in`" }, "meta_data": { "type": "object", "properties": {}, "description": "String key/values for client's own data on the credential.\n\nSupported operations - none" }, "custom_attributes": { "type": "object", "properties": {}, "description": "String key/values for client's own data on the credential.\n\nSupported operations - none" }, "issued_on": { "type": "string", "description": "Date on which the credentials have been issued. Format: YYYY-MM-DD\n\nSupported operations - `eq`, `in`, `lt`, `lte`, `gt`, `gte`" }, "expired_on": { "type": "string", "description": "Date on which the credentials will expire. Format: YYYY-MM-DD\n\nSupported operations - `eq`, `in`, `lt`, `lte`, `gt`, `gte`" }, "updated_at": { "type": "string", "description": "Date on which the credentials have been updated. Format: YYYY-MM-DD\n\nSupported operations - `eq`, `in`, `lt`, `lte`, `gt`, `gte`" }, "created_at": { "type": "string", "description": "Date on which the credentials have been created. Format: YYYY-MM-DD\n\nSupported operations - `eq`, `in`, `lt`, `lte`, `gt`, `gte`" } } }, "sort": { "type": "object", "properties": { "String key/value pair for sorting based on a field and order.": { "type": "string", "description": "Supported keys - `id`, `recipient_name`, `group.name`, `issued_on` and `expired_on`.\nSupported values - `asc`, `desc`" } } }, "page": { "type": "object", "properties": { "from": { "type": "integer", "description": "Number of records to skip (offset-based pagination). Limited to the first 10,000 results. Cannot be used together with `cursor`." }, "size": { "type": "integer", "description": "The number of records to be returned. Default is 50" }, "cursor": { "type": "string", "description": "An opaque pagination token returned by a previous response. Use this to retrieve the next page of results. Cannot be used together with `from`." } } } } } } } }, "security": [ { "ApiKeyAuth": [] } ], "x-code-samples": [ { "lang": "cURL", "label": "cURL", "source": "curl -X POST \\\n \"https://api.accredible.com/v2/credentials/search\" \\\n -H \"Authorization: Token token=YOUR_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"query\": {\n \"group.id[in]\": [1, 2],\n \"recipient_name\": \"John Doe\",\n \"approve\": true,\n \"recipient_email\": \"person@example.com\",\n \"recipient_id\": \"example\",\n \"recipient_meta_data\": {},\n \"license_id\": \"example\",\n \"meta_data\": { \"example\": \"value\" },\n \"custom_attributes\": { \"example\": \"value\" },\n \"issued_on[gte]\": \"2023-01-01\",\n \"issued_on[lt]\": \"2024-01-01\",\n \"updated_at[gte]\": \"2023-01-01\",\n \"created_at[gte]\": \"2023-01-01\"\n },\n \"sort\": {\n \"issued_on\": \"desc\"\n },\n \"page\": {\n \"from\": 0,\n \"size\": 50\n }\n}'" } ] } }, "/v1/credentials/generate_pdf": { "post": { "responses": { "200": { "description": "OK", "headers": {}, "content": { "application/json": { "schema": { "type": "object", "properties": { "file": { "type": "string" } } }, "example": { "file": "https://s3.amazonaws.com/staging_accredible_api_organizations/zip_pdf/a1VzM3lmSi9hUEpWL083RnNOUmF4eWN1aCtNNG1DVUNvVXBJekQwR2VWQT0.zip" } } } } }, "summary": "Generate PDF for credentials", "operationId": "Generate PDF for credentials", "description": "This endpoint takes credential_ids and generate pdfs. The endpoint returns zip file of folder having all pdfs requested.", "tags": [ "Credentials" ], "requestBody": { "content": { "application/json": { "example": { "credential_ids": [ "10000005", "10272642", "10299775" ] }, "schema": { "type": "object", "properties": { "credential_ids": { "description": "ID's of credentials for which PDF need to be generated." } }, "required": [ "credential_ids" ] } } } }, "security": [ { "ApiKeyAuth": [] } ], "x-code-samples": [ { "lang": "cURL", "label": "cURL", "source": "curl -X POST \\\n \"https://api.accredible.com/v1/credentials/generate_pdf\" \\\n -H \"Authorization: Token token=YOUR_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"credential_ids\": [\n \"10000005\",\n \"10272642\",\n \"10299775\"\n ]\n}'" } ] } }, "/v1/credentials/generate_single_pdf/{id}": { "post": { "responses": { "200": { "description": "OK", "headers": {}, "content": { "application/json": { "schema": { "type": "object", "properties": { "file": { "type": "string" } } }, "example": { "file": "https://s3.amazonaws.com/staging-pdf-certificate/10531400.pdf" } } } } }, "summary": "Generate PDF for a single credential", "operationId": "Generate PDF for a single credential", "description": "This endpoint takes id of published credential and generate pdf. The endpoint returns link to PDF requested.\n\n[Generate a PDF of a Credential - Video Walkthrough](https://www.loom.com/share/6e9364c74c3a4bb3aeff2e3f8d7e2f59?sid=7172149f-4b66-4539-ae97-66b5f083d89b)", "tags": [ "Credentials" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of the Credential in the form of an integer or string for the particular Credential requested.", "required": true, "schema": { "type": "string" } } ], "security": [ { "ApiKeyAuth": [] } ], "x-code-samples": [ { "lang": "cURL", "label": "cURL", "source": "curl -X POST \\\n \"https://api.accredible.com/v1/credentials/generate_single_pdf/12345\" \\\n -H \"Authorization: Token token=YOUR_API_KEY\" \\\n -H \"Content-Type: application/json\"" } ] } }, "/v1/issuer/credential_redirect": { "get": { "responses": {}, "summary": "Redirect to the Credential", "operationId": "Redirect to the Credential", "description": "This endpoint redirects to a particular Credential. You can supply your internal credential id of you'd like to redirect to. To make this work, you need to use your internal unique id while creating credential.", "tags": [ "Credentials" ], "parameters": [ { "name": "id", "in": "query", "description": "ID of the Credential in the form of an integer or string for the particular Credential requested.", "required": true, "schema": { "type": "string" } }, { "name": "issuer_id", "in": "query", "description": "ID of your issuer account. Ask us to get this or use the endpont view-issuer-details.", "required": true, "schema": { "type": "string" } } ], "security": [ { "ApiKeyAuth": [] } ], "x-code-samples": [ { "lang": "cURL", "label": "cURL", "source": "curl -X GET \\\n \"https://api.accredible.com/v1/issuer/credential_redirect?id=12345&issuer_id=12345\" \\\n -H \"Authorization: Token token=YOUR_API_KEY\"" } ] } }, "/v1/credentials/blockchain_data/{id}": { "get": { "responses": { "200": { "description": "OK", "headers": {}, "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "credential_json_data": { "type": "object", "properties": { "certificate": { "type": "object", "properties": { "name": { "type": "string" }, "issuer": { "type": "object", "properties": { "name": { "type": "string" }, "url": { "type": "string" }, "id": { "type": "string" }, "type": { "type": "string" }, "email": { "type": "string" } } }, "type": { "type": "string" }, "id": { "type": "string" }, "description": { "type": "string" } } }, "verify": { "type": "object", "properties": { "signer": { "type": "string" }, "attribute-signed": { "type": "string" }, "type": { "type": "string" } } }, "assertion": { "type": "object", "properties": { "issuedOn": { "type": "string" }, "type": { "type": "string" }, "uid": { "type": "string" }, "id": { "type": "string" } } }, "type": { "type": "string" }, "@context": { "type": "string" }, "recipient": { "type": "object", "properties": { "familyName": { "type": "string" }, "hashed": { "type": "boolean" }, "type": { "type": "string" }, "identity": { "type": "string" } } } } }, "receipt": { "type": "object", "properties": { "@context": { "type": "string" }, "type": { "type": "string" }, "targetHash": { "type": "string" }, "merkleRoot": { "type": "string" }, "proof": { "type": "array", "items": { "type": "object", "properties": { "left": { "type": "string" }, "right": { "type": "string" } }, "required": [ "left" ] } }, "anchors": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string" }, "sourceId": { "type": "string" } } } } } } } } } }, "example": { "data": { "credential_json_data": { "certificate": { "name": "Example Certificate Title", "issuer": { "name": "Example Organization", "url": "http://www.accredible.com", "id": "https://api.accredible.com/v1/obi/issuer_badge_classes/qOeq", "type": "Issuer", "email": "issuer+4897@accredible.com" }, "type": "Certificate", "id": "https://www.credential.net/10000005", "description": "This is an example description - you can write anything you want here. We recommend describing the achievement." }, "verify": { "signer": "abc", "attribute-signed": "uid", "type": "ECDSA(secp256k1)" }, "assertion": { "issuedOn": "2014-08-14", "type": "Assertion", "uid": "10000005-0000-0000-0000-000000000000", "id": "https://api.accredible.com/v1/obi/badge_assertions/akobz1" }, "type": "CertificateDocument", "@context": "https://w3id.org/blockcerts/v1", "recipient": { "familyName": "Jordan Smith", "hashed": true, "type": "email", "identity": "bUt3VFpyekE5Wmxxa0FRdExUZ3k5WkdVanRWU3JPNmxDVjdVZ2xkckJnVW9MVm5rYmtLSDZ6M3IvS2tMWnA5MS0tN0RwVVdIb1RJUzIyTnBjS20wcVpUdz09--d964109d91c7890715008e1749e0ee990c7ce9cb" } }, "receipt": { "@context": "https://w3id.org/chainpoint/v2", "type": "ChainpointSHA256v2", "targetHash": "726245b5a11b7f94b756ee746f3b3ce18efdc492c615c32678dae1ca76a8667a", "merkleRoot": "e9aaf5d6e0021deb260608991fbb45d1c3ccb4553ea710635975834909bd8314", "proof": [ { "left": "ab4f843e61e1261e832e97807f37d51d851f8aaac3f44216914f67b7588634ad" }, { "left": "91ad43d509dabfc0a6d23167a10707a63e8ab7f9fa949d6c0aca763c64fefdb6" }, { "right": "9047877604cecc72d9bc614375b14ff0ce02b231d51a53fe33ce24e39cf3e6c4" } ], "anchors": [ { "type": "BTCOpReturn", "sourceId": "707f86dc790338c5bddb19188c1c3f46f95a346a7693cc8c772b5e9252099c54" } ] } } } } } } }, "summary": "Verify BlockChain Credential (v1)", "operationId": "Verify BlockChain Credential (v1)", "description": "This endpoint gives data for a blockchain recorded credential. It will help you verify authenticity of the credential on blockchain.\n\n[Verify Blockchain record of a Credential - Video Walkthrough](https://www.loom.com/share/23621ac848c44a77ac1eda0eeb975d93?sid=c10228b9-6317-477b-b903-20ed78ce6b76)", "tags": [ "Credentials" ], "parameters": [ { "name": "id", "in": "path", "description": "Encoded id or UUID of the credentials. unique id in the credentials url.", "required": true, "schema": { "type": "string" } }, { "name": "key", "in": "query", "description": "If private credentials provide a key", "required": false, "schema": { "type": "string" } } ], "security": [ { "ApiKeyAuth": [] } ], "x-code-samples": [ { "lang": "cURL", "label": "cURL", "source": "curl -X GET \\\n \"https://api.accredible.com/v1/credentials/blockchain_data/12345?key=12345\" \\\n -H \"Authorization: Token token=YOUR_API_KEY\"" } ] } }, "/v2/credentials/{id}/blockchain_data": { "get": { "responses": { "200": { "description": "OK", "headers": {}, "content": { "application/json": { "schema": { "oneOf": [ { "type": "object", "properties": { "data": { "type": "object", "properties": { "chain": { "type": "string" }, "credential_json_data": { "type": "object", "properties": { "@context": { "type": "array", "items": { "type": "string" } }, "type": { "type": "array", "items": { "type": "string" } }, "id": { "type": "string" }, "issuer": { "type": "string" }, "issuanceDate": { "type": "string" }, "credentialSubject": { "type": "object", "properties": { "name": { "type": "string" }, "claim": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" } } } } }, "display": { "type": "object", "properties": { "contentMediaType": { "type": "string" }, "content": { "type": "string" } } } } }, "receipt": { "type": "object", "properties": { "txn_id": { "type": "string" }, "body": { "type": "object", "properties": { "@context": { "type": "array", "items": { "type": "string" } }, "type": { "type": "array", "items": { "type": "string" } }, "id": { "type": "string" }, "issuer": { "type": "string" }, "issuanceDate": { "type": "string" }, "credentialSubject": { "type": "object", "properties": { "name": { "type": "string" }, "claim": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" } } } } }, "display": { "type": "object", "properties": { "contentMediaType": { "type": "string" }, "content": { "type": "string" } } }, "proof": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string" }, "cryptosuite": { "type": "string" }, "proofPurpose": { "type": "string" }, "created": { "type": "string" }, "proofValue": { "type": "string" }, "verificationMethod": { "type": "string" } } } } } } } } } } }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "chain": { "type": "string" }, "credential_json_data": { "type": "object", "properties": { "certificate": { "type": "object", "properties": { "name": { "type": "string" }, "issuer": { "type": "object", "properties": { "name": { "type": "string" }, "url": { "type": "string" }, "id": { "type": "string" }, "type": { "type": "string" }, "email": { "type": "string" } } }, "type": { "type": "string" }, "id": { "type": "string" }, "description": { "type": "string" } } }, "verify": { "type": "object", "properties": { "signer": { "type": "string" }, "attribute-signed": { "type": "string" }, "type": { "type": "string" } } }, "assertion": { "type": "object", "properties": { "issuedOn": { "type": "string" }, "type": { "type": "string" }, "uid": { "type": "string" }, "id": { "type": "string" } } }, "type": { "type": "string" }, "@context": { "type": "string" }, "recipient": { "type": "object", "properties": { "familyName": { "type": "string" }, "hashed": { "type": "boolean" }, "type": { "type": "string" }, "identity": { "type": "string" } } } } }, "receipt": { "type": "object", "properties": { "@context": { "type": "string" }, "type": { "type": "string" }, "targetHash": { "type": "string" }, "merkleRoot": { "type": "string" }, "proof": { "type": "array", "items": { "type": "object", "properties": { "left": { "type": "string" }, "right": { "type": "string" } }, "required": [ "left" ] } }, "anchors": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string" }, "sourceId": { "type": "string" } } } } } } } } } } ] }, "examples": { "example1": { "value": { "data": { "chain": "Ethereum", "credential_json_data": { "@context": [ "https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/v3" ], "type": [ "VerifiableCredential", "BlockcertsCredential" ], "id": "https://www.credential.net/dbe99696-2cb3-4dc4-aef8-d6e6c2840140", "issuer": "https://api.accredible.com/v1/blockcerts/issuer/f942", "issuanceDate": "2022-10-07T00:00:00+00:00", "credentialSubject": { "name": "Jewell White Esq.", "claim": { "name": "Accounting", "description": "Business-focused responsive interface" } }, "display": { "contentMediaType": "text/html", "content": "
" } }, "receipt": { "txn_id": "0xb534249bc297aa4f8e038c1a6633ab77fef968c54e375ee5a84055f1875305a7", "body": { "@context": [ "https://www.w3.org/2018/credentials/v1", "https://w3id.org/security/data-integrity/v2", "https://w3id.org/blockcerts/v3.1" ], "type": [ "VerifiableCredential", "BlockcertsCredential" ], "id": "https://www.credential.net/dbe99696-2cb3-4dc4-aef8-d6e6c2840140", "issuer": "https://api.accredible.com/v1/blockcerts/issuer/f942", "issuanceDate": "2022-10-07T00:00:00+00:00", "credentialSubject": { "name": "Jewell White Esq.", "claim": { "name": "Accounting", "description": "Business-focused responsive interface" } }, "display": { "contentMediaType": "text/html", "content": "--------------------------------
\nBusiness-focused responsive interface
\n--------------------------------
\nIssued By
\nMuller, Walsh and Lockman
\n--------------------------------
\nIssued On
\nOctober 7th, 2022
\n--------------------------------
\nExpires On
\n-
\n--------------------------------
\n`, `
`, `
`, `
`, `
`, `
`, `
`, `
`, `