Learn / APS Cheatsheet

APS Developer Cheat Sheet

APS Developer Cheat Sheet

Single-page reference for Autodesk Platform Services (APS) with RAPS CLI shortcuts


Authentication

OAuth Flow Comparison

2-Legged OAuth3-Legged OAuthRAPS Command
Use Case: Server-to-serverUse Case: User-facing apps
Context: App identity onlyContext: User + app identity
BIM360/ACC: Limited accessBIM360/ACC: Full project access
Grant Type: client_credentialsGrant Type: authorization_code
Endpoint: /authentication/v2/tokenEndpoint: /authentication/v2/authorize + /token
raps auth test (2-legged)
raps auth login (3-legged, opens browser)

OAuth Scopes

ScopePurposeRequired For
data:readRead files/projectsDownload, list contents
data:writeModify metadataUpdate file properties
data:createUpload filesFile uploads, folder creation
bucket:readList bucketsOSS bucket operations
bucket:createCreate bucketsNew storage containers
viewables:readView modelsViewer SDK, derivatives
code:allDesign AutomationAll DA operations
account:readBIM360/ACC infoAccount/project listing

Scopes are selected interactively during raps auth login, or use --default for common scopes or --preset all for every scope.

Token Lifecycle

Manual ProcessRAPS Equivalent
POST to /authentication/v2/tokenraps auth test (2-legged) or raps auth login (3-legged)
Store token + refresh logicAutomatic token management
Check expiry (1 hour default)raps auth status
Refresh when neededAutomatic (built-in refresh)
Inspect token detailsraps auth inspect

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

Common Endpoints

OperationManual API CallRAPS Command
List HubsGET /project/v1/hubsraps hub list
List ProjectsGET /project/v1/hubs/{hub_id}/projectsraps project list
List FoldersGET /data/v1/projects/{project_id}/folders/{folder_id}/contentsraps folder list
Upload FileMulti-step: Create storage → Upload → Create item → Create versionraps object upload <bucket> <file>
Download FileGET /oss/v2/buckets/{bucket}/objects/{object}raps object download <bucket> <object>
Create FolderPOST /data/v1/projects/{project_id}/foldersraps folder create

URN Formats

ContextURN FormatExample
OSS Objecturn:adsk.objects:os.object:{bucket}:{object}urn:adsk.objects:os.object:mybucket:model.rvt
Data Managementurn:adsk.wipprod:dm.lineage:{item_id}urn:adsk.wipprod:dm.lineage:abc123...
Encoded URNBase64 URL-safe encodingdXJuOmFkc2sub2JqZWN0cy...

URN Encoding:

# Manual (error-prone)
echo -n "urn:adsk.objects:os.object:bucket/file.dwg" | base64 | tr '+/' '-_' | tr -d '='

Object Storage Service (OSS)

Bucket Operations

OperationManual API CallRAPS Command
List BucketsGET /oss/v2/bucketsraps bucket list
Create BucketPOST /oss/v2/bucketsraps bucket create --key <name> --policy transient --region US
Bucket DetailsGET /oss/v2/buckets/{bucketKey}/detailsraps bucket info <name>
Delete BucketDELETE /oss/v2/buckets/{bucketKey}raps bucket delete <name>

Object Operations

OperationManual API CallRAPS Command
List ObjectsGET /oss/v2/buckets/{bucketKey}/objectsraps object list <bucket>
Upload ObjectPUT /oss/v2/buckets/{bucketKey}/objects/{objectName}raps object upload <bucket> <file>
Upload BatchMultiple PUTsraps object upload-batch <bucket> <files...> --parallel 4
Download ObjectGET /oss/v2/buckets/{bucketKey}/objects/{objectName}raps object download <bucket> <object>
Delete ObjectDELETE /oss/v2/buckets/{bucketKey}/objects/{objectName}raps object delete <bucket> <object>

Bucket Naming Rules

  • 3-128 characters
  • Lowercase letters, numbers, hyphens
  • Must start/end with letter or number
  • No spaces, underscores, or special chars
  • Cannot look like IP address

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

Translation Operations

OperationManual ProcessRAPS Command
Start TranslationPOST /modelderivative/v2/designdata/jobraps translate start <urn> --format svf2
Start + WaitPOST + manual pollingraps translate start <urn> --format svf2 --wait
Check StatusGET /modelderivative/v2/designdata/{urn}/manifestraps translate status <urn>
Get ManifestGET .../manifestraps translate manifest <urn>
List DerivativesParse manifestraps translate derivatives <urn>
Get PropertiesGET /modelderivative/v2/designdata/{urn}/metadata/{guid}/propertiesraps translate properties <urn> <guid>
Download DerivativesMultiple API calls + file handlingraps translate download <urn>

Output Formats

FormatUse CaseFile ExtensionRAPS Format Code
SVF2Web viewer (modern).svf2svf2
SVFWeb viewer (legacy).svfsvf
OBJ3D meshes.objobj
STL3D printing.stlstl
PDF2D drawings.pdfpdf
DWGAutoCAD format.dwgdwg
IFCIndustry standard.ifcifc
ThumbnailPreview images.pngthumbnail

Translation Status Codes

StatusMeaningRAPS Action
pendingJob queuedContinue polling
inprogressProcessingContinue polling
successCompleted successfullyDownload derivatives
failedProcessing failedCheck manifest for errors
timeoutTook too longRetry with different settings

Design Automation API

Engine Support

EngineFile TypesVersionRAPS Command
AutoCADDWG, DXF2024raps da engines
RevitRVT, RFA2024raps da engines
InventorIPT, IAM2024raps da engines
3ds MaxMAX2024raps da engines

DA Workflow Components

AppBundle (your code) + Activity (defines process) + WorkItem (execution instance)
ComponentPurposeRAPS Management
AppBundleCustom code/pluginsraps da appbundle-create
ActivityProcessing definitionraps da activity-create
WorkItemExecution requestraps da run

Webhooks

Event Types

ServiceEventTriggerRAPS Setup
Data Managementdm.folder.addedNew folder createdraps webhook create --event dm.folder.added --url <callback>
Data Managementdm.version.addedFile uploaded/versionedraps webhook create --event dm.version.added --url <callback>
Model Derivativeextraction.finishedTranslation completeraps webhook create --event extraction.finished --url <callback>
Model Derivativeextraction.updatedTranslation progressraps webhook create --event extraction.updated --url <callback>

Webhook Payload Structure

{
  "version": "1.0",
  "resourceUrn": "urn:adsk.wipprod:dm.lineage:...",
  "eventType": "dm.version.added",
  "timestamp": "2026-01-07T10:30:00.000Z",
  "payload": {
    "userId": "...",
    "projectId": "...",
    "versionId": "..."
  }
}

Common Error Codes

CodeAPICauseManual FixRAPS Prevention
400AllInvalid request formatCheck JSON syntaxBuilt-in validation
401AllAuthentication failedRefresh tokenraps auth login (auto-refresh)
403AllInsufficient permissionsCheck scopesraps auth status
404Model DerivativeURN not foundVerify URN encodingCheck base64 encoding
409OSSBucket name conflictUse different nameraps bucket list first
429AllRate limit exceededImplement backoffBuilt-in rate limiting

Rate Limits

APILimitWindowRAPS Handling
Authentication500 requests/min1 minuteAutomatic token reuse
Data Management100 requests/min1 minuteIntelligent batching
Model Derivative20 concurrent jobs-Queue management
OSS500 requests/min1 minuteParallel optimization
Design Automation50 concurrent WorkItems-WorkItem queuing

Quick Setup Commands

First-Time Setup

# Install RAPS
# Windows: scoop install raps
# macOS: brew install dmytro-yemelianov/tap/raps
# Linux: cargo install raps-cli

# Initial authentication (2-legged test)
raps auth test

# 3-legged login (opens browser)
raps auth login

# Check auth status
raps auth status

Common Workflows

# Upload file to a bucket
raps object upload mybucket model.rvt

# Translate uploaded file
raps translate start <base64-urn> --format svf2 --wait

# List available derivatives
raps translate derivatives <base64-urn>

# Download derivatives
raps translate download <base64-urn>

# Batch upload multiple files
raps object upload-batch mybucket *.dwg --parallel 4

Configuration

# Set profile values
raps config set client_id YOUR_CLIENT_ID
raps config set client_secret YOUR_SECRET
raps config set base_url https://developer.api.autodesk.com

# Get a config value
raps config get client_id

# Manage profiles
raps config profile create myprofile
raps config profile list
raps config profile use myprofile

Regional Endpoints

RegionBase URLUse CaseRAPS Setting
USdeveloper.api.autodesk.comNorth Americaraps config set base_url https://developer.api.autodesk.com
EMEAdeveloper.api.autodesk.comEurope/Middle Eastraps config set base_url https://developer.api.autodesk.com

Help & Documentation

raps --help                          # General help
raps auth --help                     # Command-specific help
raps translate --help                # Translate subcommands
raps --version                       # Check version

Pro Tips:

  • Use --default with raps auth login to skip scope selection
  • Use --device with raps auth login for headless/CI environments
  • Use --format json on most commands for machine-readable output
  • Use raps auth inspect to check token details and expiry

Last verified: February 2026 | RAPS v4.14.0 | APS APIs: Auth v2, DM v1, MD v2, OSS v2, DA v3 Print-friendly format - Save for quick reference - Share with your team