| name | fusion360-cloud-api |
| description | Access Autodesk Fusion 360 through cloud APIs for design automation. Use for parametric updates, file management, and integration with Autodesk Platform Services. Requires Autodesk account and API credentials. |
Fusion 360 Cloud API
Interact with Fusion 360 through Autodesk Platform Services APIs.
Authentication
import requests
# OAuth 2.0 authentication
def get_token(client_id, client_secret):
url = "https://developer.api.autodesk.com/authentication/v2/token"
data = {
"grant_type": "client_credentials",
"client_id": client_id,
"client_secret": client_secret,
"scope": "data:read data:write"
}
response = requests.post(url, data=data)
return response.json()["access_token"]
Data Management API
import requests
headers = {"Authorization": f"Bearer {token}"}
# List hubs
response = requests.get(
"https://developer.api.autodesk.com/project/v1/hubs",
headers=headers
)
# Get project contents
response = requests.get(
f"https://developer.api.autodesk.com/data/v1/projects/{project_id}/folders/{folder_id}/contents",
headers=headers
)
Model Derivative API
import requests
# Start translation job
job_payload = {
"input": {"urn": base64_urn},
"output": {
"formats": [{"type": "svf2", "views": ["2d", "3d"]}]
}
}
response = requests.post(
"https://developer.api.autodesk.com/modelderivative/v2/designdata/job",
headers=headers,
json=job_payload
)
Design Automation API
# Create work item for Fusion operations
work_item = {
"activityId": "YourApp.YourActivity+prod",
"arguments": {
"inputFile": {"url": input_url},
"outputFile": {"url": output_url, "verb": "put"},
"params": {"width": 100, "height": 50}
}
}
response = requests.post(
"https://developer.api.autodesk.com/da/us-east/v3/workitems",
headers=headers,
json=work_item
)
Download/Upload Files
# Download file
response = requests.get(download_url, headers=headers)
with open("model.f3d", "wb") as f:
f.write(response.content)
# Upload file (signed URL)
with open("model.f3d", "rb") as f:
requests.put(upload_url, data=f)
Rate Limits
- Standard: 100 requests/minute
- Burst: 500 requests/minute
- Handle 429 responses with exponential backoff