Quick Start Guide

Get up and running with the AllureLMS SCORM API in under 15 minutes.

Table of Contents

Prerequisites

Before you begin, make sure you have:

  • A SCORM 1.2 or SCORM 2004 package (ZIP file)
  • An account on the SCORM API platform
  • A terminal or API client (curl, Postman, or your preferred tool)

Step 1: Sign Up

  1. Visit the SCORM API website
  2. Click "Get Started" or "Sign Up"
  3. Complete the registration form
  4. Verify your email address
  5. Select a subscription plan (Free tier available for testing)

Note: If you're using the self-hosted version, follow the README setup instructions.

Step 2: Get Your API Key

Via Dashboard (Recommended)

  1. Sign in to your account
  2. Navigate to DashboardAPI Keys
  3. Click "Create API Key"
  4. Give your key a name (e.g., "Development Key")
  5. Select scopes:
    • read: View packages and sessions
    • write: Upload packages and update sessions
    • admin: Full access including deletions
  6. Click "Create"
  7. Important: Copy your API key immediately - it won't be shown again!

Via Admin Script (Self-Hosted)

If you're running a self-hosted instance:

cd apps/scorm-api
./scripts/create-api-key.sh <tenant_id> "Key Name" "read,write"

Step 3: Test Your Connection

Test that your API key works:

curl -sS https://app.allureconnect.com/api/health

Expected Response:

{
  "status": "ok",
  "timestamp": "2025-01-15T10:30:00.000Z",
  "version": "1.0.0"
}

If you see this response, you're ready to go! 🎉

Step 4: Upload Your First Package

Large packages use presigned upload (mint → PUT → process). Run from a trusted environment (API keys must not ship to browsers):

set -euo pipefail
command -v jq >/dev/null || { echo "jq is required"; exit 1; }

BASE=https://app.allureconnect.com
KEY=your-api-key-here
TENANT=your-tenant-id
FILE=path/to/your/package.zip
SIZE=$(wc -c < "$FILE" | tr -d ' ')

TICKET_FILE=$(mktemp)
PROC_FILE=$(mktemp)
trap 'rm -f "$TICKET_FILE" "$PROC_FILE"' EXIT
MINT_CODE=$(curl -sS -o "$TICKET_FILE" -w "%{http_code}" -X POST "$BASE/api/v1/packages/upload-url" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d "{\"tenant_id\":\"$TENANT\",\"uploaded_by\":\"quickstart\",\"filename\":\"$(basename "$FILE")\",\"file_size\":$SIZE}")
if [[ "$MINT_CODE" -lt 200 || "$MINT_CODE" -ge 300 ]]; then
  echo "upload-url failed HTTP $MINT_CODE: $(cat "$TICKET_FILE")" >&2
  exit 1
fi
TICKET=$(cat "$TICKET_FILE")
PRESIGNED=$(echo "$TICKET" | jq -e -r .presigned_url)
STORAGE=$(echo "$TICKET" | jq -e -r .storage_path)

PUT_ARGS=(-sS -o /dev/null -w "%{http_code}" -X PUT)
while IFS= read -r hk; do
  hv=$(echo "$TICKET" | jq -r --arg k "$hk" '.required_put_headers[$k]')
  PUT_ARGS+=(-H "$hk: $hv")
done < <(echo "$TICKET" | jq -r '.required_put_headers | keys[]')
PUT_ARGS+=(--data-binary @"$FILE" "$PRESIGNED")
PUT_CODE=$(curl "${PUT_ARGS[@]}")
if [[ "$PUT_CODE" -lt 200 || "$PUT_CODE" -ge 300 ]]; then
  echo "storage PUT failed HTTP $PUT_CODE" >&2
  exit 1
fi

PROC_CODE=$(curl -sS -o "$PROC_FILE" -w "%{http_code}" -X POST "$BASE/api/v1/packages/process" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d "{\"tenant_id\":\"$TENANT\",\"uploaded_by\":\"quickstart\",\"storage_path\":\"$STORAGE\",\"original_filename\":\"$(basename "$FILE")\"}")
cat "$PROC_FILE" | jq .
if [[ "$PROC_CODE" -lt 200 || "$PROC_CODE" -ge 300 ]]; then
  echo "process failed HTTP $PROC_CODE" >&2
  exit 1
fi

Full walkthrough: Package upload API — partner integration.

Next Steps

Now that you've uploaded your first package, continue with:

  1. Launch Your First Session - Create a learning session and launch the SCORM player
  2. Generate Your First Report - View learner progress and analytics
  3. API reference and GET /api/docs/openapi — OpenAPI JSON
  4. Check Integration Examples - See how to integrate with your platform

Common Issues

"Invalid API Key" Error

  • Verify you copied the entire API key (they're long!)
  • Check that you're using the correct header: X-API-Key or Authorization: Bearer
  • Ensure your API key hasn't been revoked

"Package Upload Failed" Error

  • Verify your file is a valid ZIP archive
  • Check that the ZIP contains a SCORM manifest (imsmanifest.xml)
  • Ensure the file size is within your quota limits
  • Check the Package Validation Guide for requirements

"Tenant Not Found" Error

  • Verify your tenant_id is correct
  • Ensure your API key is associated with the correct tenant
  • Contact support if you need help finding your tenant ID

Getting Help


Last Updated: 2025-01-15
Related Documentation: