APS Developer Cheat Sheet
Single-page reference for Autodesk Platform Services (APS) with RAPS CLI shortcuts
Last verified: January 2026
RAPS v4.2.1+
APS APIs: Auth v2, DM v1, MD v2, OSS v2, DA v3
π Authentication
OAuth Flow Comparison
| 2-Legged OAuth | 3-Legged OAuth | RAPS Command |
|---|---|---|
| Use Case: Server-to-server | Use Case: User-facing apps | - |
| Context: App identity only | Context: User + app identity | - |
| BIM360/ACC: Limited access | BIM360/ACC: Full project access | - |
Grant Type: client_credentials | Grant Type: authorization_code | - |
Endpoint: /authentication/v2/token | Endpoint: /authentication/v2/authorize + /token | - |
| raps auth login | raps auth login --3legged | Default: 2-legged |
Essential OAuth Scopes
| Scope | Purpose | Required For | RAPS Usage |
|---|---|---|---|
| data:read | Read files/projects | Download, list contents | --scopes data:read |
| data:write | Modify metadata | Update file properties | --scopes data:read,data:write |
| data:create | Upload files | File uploads, folder creation | --scopes data:read,data:write,data:create |
| viewables:read | View models | Viewer SDK, derivatives | --scopes viewables:read |
| code:all | Design Automation | All DA operations | --scopes code:all |
Token Lifecycle
Manual Process
- β’ POST to
/authentication/v2/token - β’ Store token + refresh logic
- β’ Check expiry (1 hour default)
- β’ Refresh when needed
- β’ Handle auth errors manually
RAPS Equivalent
- β’
raps auth login - β’ Automatic token management
- β’
raps auth status - β’
raps auth refresh - β’ Built-in retry with refresh
π Data Management API
Project Hierarchy
Hub (Company/Account)
βββ Project 1
β βββ Folder A
β β βββ Item 1
β β β βββ Version 1
β β β βββ Version 2 (latest)
β β βββ Item 2
β βββ Folder B
βββ Project 2
βββ Project 1
β βββ Folder A
β β βββ Item 1
β β β βββ Version 1
β β β βββ Version 2 (latest)
β β βββ Item 2
β βββ Folder B
βββ Project 2
Common Endpoints
| Operation | Manual API Call | RAPS Command |
|---|---|---|
| List Hubs | GET /project/v1/hubs | raps dm hubs |
| List Projects | GET /project/v1/hubs/{hub_id}/projects | raps dm projects |
| Upload File | Multi-step: Create storage β Upload β Create item β Create version | raps dm upload <file> --project <id> |
| Download File | GET /data/v1/projects/{project_id}/downloads + download URL | raps dm download <item_id> |
URN Formats
OSS Object:
urn:adsk.objects:os.object:{bucket}:{object} Data Management:
urn:adsk.wipprod:dm.lineage:{item_id} Encoded URN:
Base64 URL-safe encoding Manual (error-prone):
echo -n "urn:adsk.objects..." | base64 | tr '+/' '-_' | tr -d '=' With RAPS:
raps urn encode "urn:adsk.objects:os.object:bucket/file.dwg" ποΈ Object Storage Service (OSS)
Bucket Operations
| Operation | RAPS Command |
|---|---|
| List Buckets | raps bucket list |
| Create Bucket | raps bucket create <name> |
| Bucket Details | raps bucket info <name> |
Object Operations
| Operation | RAPS Command |
|---|---|
| List Objects | raps oss list <bucket> |
| Upload Object | raps oss upload <file> <bucket> |
| Download Object | raps oss download <bucket> <object> |
Bucket Naming Rules
β Allowed
- β’ 3-128 characters
- β’ Lowercase letters, numbers, hyphens
- β’ Must start/end with letter or number
β Not Allowed
- β’ Spaces, underscores, special chars
- β’ Cannot look like IP address
- β’ Uppercase letters
π Model Derivative API
Translation Workflow
1. Upload to OSS or Data Management
2. Start Translation Job β GET Job Status (polling)
3. Translation Complete β Download Manifest
4. Extract Viewables/Properties
2. Start Translation Job β GET Job Status (polling)
3. Translation Complete β Download Manifest
4. Extract Viewables/Properties
Translation Operations
| Operation | RAPS Command |
|---|---|
| Start Translation | raps translate <urn> --formats svf2 |
| Check Status | raps translate status <urn> |
| Wait for Completion | raps translate <urn> --wait |
| Get Properties | raps translate properties <urn> |
Output Formats
svf2 Web viewer (modern)
pdf 2D drawings
obj 3D meshes
stl 3D printing
ifc Industry standard
Status Codes
pending Job queued
inprogress Processing
success Completed
failed Processing failed
β οΈ Common Error Codes
| Code | API | Cause | RAPS Prevention |
|---|---|---|---|
| 400 | All | Invalid request format | Built-in validation |
| 401 | All | Authentication failed | raps auth refresh |
| 403 | All | Insufficient permissions | raps auth status --scopes |
| 404 | Model Derivative | URN not found | raps urn encode |
| 429 | All | Rate limit exceeded | Built-in rate limiting |
π Rate Limits
| API | Limit | Window | RAPS Handling |
|---|---|---|---|
| Authentication | 500 requests/min | 1 minute | Automatic token reuse |
| Data Management | 100 requests/min | 1 minute | Intelligent batching |
| Model Derivative | 20 concurrent jobs | - | Queue management |
| OSS | 500 requests/min | 1 minute | Parallel optimization |
π§ Quick Setup Commands
First-Time Setup
# Install RAPS
# Windows: scoop install raps
# macOS: brew install raps
# Linux: cargo install raps-cli
# Initial authentication
raps auth login
# Test connectivity
raps auth status
raps dm projects --limit 1
Common Workflows
# File Upload β Translation β View
raps oss upload model.rvt mybucket
raps translate $(raps urn encode \
"urn:adsk.objects:os.object:mybucket:model.rvt") --wait
# Batch Operations
raps oss upload-batch *.dwg --bucket mybucket
raps translate-batch --bucket mybucket --formats svf2
π¨ Emergency Commands
Authentication Issues
raps auth refresh
raps auth login --force
raps auth status --verbose
Operation Failures
raps health check --comprehensive
raps logs --level error --last 1h
raps config set retry.max-attempts 5
π‘ Pro Tips
- β’ Use
raps examplesto see common workflow patterns - β’ Set up multiple profiles with
raps auth login --profile <name> - β’ Enable verbose output with
--verboseflag for debugging - β’ Check
raps health checkif anything isn't working