Skip to content

Admin API Documentation ​

The Admin API provides programmatic access to manage credentials and templates. Authentication is required via an API key passed in the X-API-Key header.

Getting Started ​

  1. Create an account at autopen.lucerolabs.xyz
  2. Go to Admin section in your dashboard
  3. Use the AutoPen code to activate admin features
  4. Navigate to the API tab to get your API key

Authentication ​

Include your API key in every request:

http
X-API-Key: your_api_key_here

Base URL ​

https://autopen.lucerolabs.xyz/api

Endpoints ​

Get Template ​

Retrieve information about a credential template.

GET /admin/credential-templates/{id}

Parameters ​

NameTypeDescription
idintegerTemplate ID

Example Request ​

bash
curl -X GET "https://autopen.lucerolabs.xyz/api/admin/credential-templates/40" \
  -H "X-API-Key: your_api_key_here"

Response ​

json
{
  "id": 40,
  "adminId": 10,
  "didIssuerId": 17,
  "name": "Colegio Arquitectos",
  "description": "Agrupacion de arquitectos",
  "schema": {
    "types": [],
    "fields": [
      {
        "name": "name",
        "type": "text",
        "label": "Nombre",
        "required": false,
        "description": ""
      },
      {
        "name": "Matricula",
        "type": "text",
        "label": "matricula",
        "required": false,
        "description": ""
      }
    ],
    "oneTimeUse": true,
    "displayOptions": {
      "textColor": "#000000",
      "backgroundColor": "#ffffff"
    },
    "expirationDays": 7
  },
  "publicToken": "dcd88a68f6ea",
  "createdAt": "2025-03-27T19:20:17.482Z",
  "updatedAt": "2025-03-27T19:20:17.482Z"
}

Issue Credential ​

Issue a new credential to a recipient.

POST /admin/issue-credential

Request Body ​

FieldTypeRequiredDescription
templateIdintegerYesTemplate ID to use
recipientEmailstringYesRecipient's email
credentialFieldsobjectYesField values for the credential

Example Request ​

bash
curl -X POST "https://autopen.lucerolabs.xyz/api/admin/issue-credential" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your_api_key_here" \
  -d '{
    "templateId": 75,
    "recipientEmail": "lain@example.com",
    "credentialFields": {
      "name": "Lain Calvo",
      "company": "caba"
    }
  }'

Response ​

json
{
  "credential": {
    "id": 535,
    "templateId": 75,
    "recipientEmail": "lain@example.com",
    "credentialId": "urn:uuid:978f69fe-44a4-4e29-aa4c-b9b1fbacebdd",
    "status": "pending",
    "oobContent": "didcomm://?_oob=eyJ0eXBlIjoiaHR0cHM6Ly9kaWRjb21tLm9yZy9vdXQtb2YtYmFuZC8yLjAvaW52aXRhdGlvbiIsImlkIjoiOTc4ZjY5ZmUtNDRhNC00ZTI5LWFhNGMtYjliMWZiYWNlYmRkIiwiZnJvbSI6ImRpZDpxdWFya2lkOkVpQVpvSHhwR0d4bnZUMUdjWmFIUkNIb1I0LUV5VUpVbUJCTVZDU0ZaZVZUQ2ciLCJib2R5Ijp7ImdvYWxfY29kZSI6InN0cmVhbWxpbmVkLXZjIiwiYWNjZXB0IjpbImRpZGNvbW0vdjIiXX0sImludml0YXRpb25JZCI6Ijk3OGY2OWZlLTQ0YTQtNGUyOS1hYTRjLWI5YjFmYmFjZWJkZCJ9",
    "verificationOobContent": "didcomm://?_oob=eyJ0eXBlIjoiaHR0cHM6Ly9kaWRjb21tLm9yZy9vdXQtb2YtYmFuZC8yLjAvaW52aXRhdGlvbiIsImlkIjoiMTAxODE2NGQtMWNkNS00ZGNjLWI3YjItZTY5MzkxNzU4ODc3IiwiZnJvbSI6ImRpZDpxdWFya2lkOkVpQVpvSHhwR0d4bnZUMUdjWmFIUkNIb1I0LUV5VUpVbUJCTVZDU0ZaZVZUQ2ciLCJib2R5Ijp7ImdvYWxfY29kZSI6InN0cmVhbWxpbmVkLXZwIiwiYWNjZXB0IjpbImRpZGNvbW0vdjIiXX0sImludml0YXRpb25JZCI6IjEwMTgxNjRkLTFjZDUtNGRjYy1iN2IyLWU2OTM5MTc1ODg3NyJ9",
    "holderDID": null,
    "vcData": null,
    "createdAt": "2025-07-11T15:25:16.430Z",
    "updatedAt": "2025-07-11T15:25:16.430Z"
  },
  "issuePageUrl": "https://de096d23-d01d-406f-aaea-5658118c714b-00-myew7c61kh4.worf.replit.dev/minting/credential/978f69fe-44a4-4e29-aa4c-b9b1fbacebdd"
}

Use Cases ​

  • Automated credential issuance - Integrate with your systems
  • Batch processing - Issue multiple credentials programmatically
  • Template management - Retrieve template information
  • Real-time verification - Use verification URLs

Status Codes ​

CodeDescription
200Success
400Bad Request
401Unauthorized
404Not Found
500Server Error