Quick Start Guide
Get up and running with the AllureLMS SCORM API in under 15 minutes.
Table of Contents
- Prerequisites
- Step 1: Sign Up
- Step 2: Get Your API Key
- Step 3: Test Your Connection
- Step 4: Upload Your First Package
- Next Steps
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
- Visit the SCORM API website
- Click "Get Started" or "Sign Up"
- Complete the registration form
- Verify your email address
- 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)
- Sign in to your account
- Navigate to Dashboard → API Keys
- Click "Create API Key"
- Give your key a name (e.g., "Development Key")
- Select scopes:
- read: View packages and sessions
- write: Upload packages and update sessions
- admin: Full access including deletions
- Click "Create"
- 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:
- Launch Your First Session - Create a learning session and launch the SCORM player
- Generate Your First Report - View learner progress and analytics
- API reference and
GET /api/docs/openapi— OpenAPI JSON - 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-KeyorAuthorization: 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_idis correct - Ensure your API key is associated with the correct tenant
- Contact support if you need help finding your tenant ID
Getting Help
- Documentation: Browse the complete documentation
- API Reference: Check the API Guide (API Reference documentation coming soon)
- Support: Email support@allurelms.com
- Community: Join our Discord server
Last Updated: 2025-01-15
Related Documentation: