aps-docs-portal
Navigate the Autodesk Platform Services (APS) documentation portal — find the right API docs, decode glossary terms, index table-of-contents JSON trees, extract content from static HTML pages, and build valid aps.autodesk.com portal links. Covers ACC, BIM 360, Model Derivative, Data Management, Viewer, Design Automation, Authentication, Webhooks, and all related APS APIs.
How do I install this agent skill?
npx skills add https://github.com/autodesk-platform-services/skills --skill aps-docs-portalIs this agent skill safe to install?
- Gen Agent Trust Hubpass
This skill facilitates navigation of the Autodesk Platform Services (APS) documentation. It uses local tools to fetch and index documentation from official Autodesk developer portals. No malicious behavior or high-risk patterns were detected.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
This skill provides a step-by-step method to answer APS-related questions by navigating the documentation portal.
Behavior
- When a user's first question is ambiguous or broad, ask one short clarifying question to identify their intent before diving into a long answer.
- Always provide reference links with your answers.
- Always attempt to answer APS-related questions directly.
- Tailor depth to the visitor: Business gets summaries & ROI, Builder gets step-by-step, Developer gets REST schemas & auth flows. Ask if unsure.
Ground rules
- Never fetch
aps.autodesk.com/en/docs/...(WebFetch, curl, or otherwise). The portal is a JavaScript SPA: every URL under it — valid or not — returns the same ~10 KB HTML shell. It contains no docs content and can't even tell you whether a URL exists. - All content lives in two static places: the TOC JSON (
developer.doc.config.autodesk.com) and the page HTML (developer.doc.autodesk.com). Use only these. - Never show those CDN URLs to the user, and never hand-build portal links from CDN paths. Every portal link comes from column 1 of the TOC index (Step 3).
- Answer from the glossary alone when the question is only about terminology — no fetching needed.
Method: How to Answer an APS Question
Step 1 — Read the Glossary to Decode Jargon
If the question mentions an acronym you don't see here, look for its definition in the docs you fetch later.
APS Glossary
- APS: Autodesk Platform Services (formerly Forge)
- ACC: Autodesk Construction Cloud. Recent docs pages also say Forma for ACC services (e.g. "Forma Issues", "Forma Data Management"); the separate Forma Site Design API is
forma_v1. - BIM 360: Legacy construction management platform (predecessor to ACC)
- MD: Model Derivative API — translates design files into viewable formats (SVF/SVF2)
- DM: Data Management API — manages files, folders, and storage (OSS, BIM 360, ACC hubs)
- URN: Base64-encoded resource identifier used across APS APIs
- SVF/SVF2: Scalable Viewing Format — optimized 3D web viewing format produced by Model Derivative and consumed exclusively by the APS Viewer SDK, similar concept to glTF format with openCTM compression
- OSS: Object Storage Service — APS cloud storage for uploading design files
- Webhook: Server-to-server callback triggered by APS events (e.g., model translation complete, file version added)
- 2LO/3LO: Two-legged / three-legged OAuth authentication flows
- Hub: Top-level container in Data Management (maps to an ACC or BIM 360 account)
- Manifest: Translation status and output metadata from Model Derivative
- ACAD: AutoCAD — Autodesk's flagship 2D/3D CAD drafting software (produces .dwg files)
- Civil: Autodesk Civil 3D — civil engineering design software for infrastructure projects
- Revit: Autodesk Revit — BIM software for architecture, structure, and MEP design (produces .rvt files)
- Build: Autodesk Build — construction management module within ACC (field management, cost, etc.)
- IFC: Industry Foundation Classes — open standard file format for BIM data exchange between tools
- RFI: Request for Information — formal question submitted during construction, tracked in ACC/BIM 360
- SSA: Secure Service Accounts — a server-to-server identity that signs a JWT assertion with its private key and exchanges it for a three-legged (user-context) access token, without any interactive sign-in
- AEC: Architecture, Engineering, and Construction — the industry vertical APS primarily serves
- AECDM: AEC Data Model API — unified API for accessing design and construction data across ACC
- DX: Data Exchange — API for exchanging design data between applications in a neutral format
- Auth: Authentication — APS OAuth flows including 2LO, 3LO, PKCE, PAT (Personal Access Tokens), and SSA
Translation Cost (Model Derivative API): Complex jobs are Revit (.rvt), IFC, and Navisworks (.nwd/.nwc). Everything else is a simple job.
Step 2 — Identify the Relevant APIs
Use the source table below to pick the TOC(s) to open. For example:
- "file changes" → Data Management events, documented in the Webhooks API (
webhooks_v1) - "model translate" → Model Derivative API (
model-derivative_v2) - "digital twin" → Tandem (
tandem_v1) - "events/callbacks" → Webhooks API (
webhooks_v1) — all event families (dm.*,issue.*,extraction.*, cost, reviews, …) live under itsreference/events/section
| Source ID | API Title |
|---|---|
acc_v1 | Autodesk Construction Cloud APIs |
aecdatamodel_v1 | AEC Data Model API |
applications_v1 | Application Management API |
bim360_v1 | BIM 360 API |
buildingconnected_v2 | BuildingConnected & TradeTapp APIs |
data_v2 | Data Management API |
dataviz_v1 | Data Visualization |
design-automation_v3 | Automation API |
dx-sdk-beta_v7.2.0 | Data Exchange .NET SDK v7.2.0 |
fdxgraph_v1 | Data Exchange GraphQL |
flow_graph_engine_v1 | Flow Graph Engine |
forma_v1 | Forma Site Design API (Beta) |
informed-design_v1 | Informed Design API (Beta) |
insights_v1 | Business Success Plan Reporting API |
mfgdataapi_v3 | Manufacturing Data Model API |
model-derivative_v2 | Model Derivative API |
oauth_v2 | Authentication API |
parameters_v1 | Parameters API |
profile_v2 | User Profile API |
ssa_v1 | Secure Service Account API |
sustainability_v3 | Sustainability Data API |
tandem_v1 | Tandem Data |
tokenflex_v1 | Token Flex Usage Data API |
vaultdataapi_v2 | Vault Data API |
viewer_v7 | Viewer |
webhooks_v1 | Webhooks API |
Portal URL ↔ source ID: a portal URL https://aps.autodesk.com/en/docs/{api}/{version}/… always belongs to source ID {api}_{version} (e.g. /en/docs/acc/v1/… → acc_v1).
Step 3 — Download and Index the TOC (once per source)
Download each TOC you need once to a local file, then query the file. TOCs are large (ACC ≈ 140 KB, Data Exchange SDK ≈ 650 KB) — never print one raw, and don't re-download it.
curl -sL --create-dirs -o /tmp/aps-docs/acc_v1.json "https://developer.doc.config.autodesk.com/bPlouYTd/acc_v1.json"
Turn it into a flat index — one line per page: portal URL, title, and CDN source path, tab-separated:
jq -r '.url_path as $api | .doc_version as $v | def w($p): ($p + [.url_path // ""]) as $q | (if .source then "https://aps.autodesk.com/en/docs/\($api)/\($v)/\($q | map(select(. != "")) | join("/"))/\t\(.display_name)\t\(.source)" else empty end), (.children[]? | w($q)); .children[] | w([])' /tmp/aps-docs/acc_v1.json | grep -i 'issues'
Filter with grep -i on topic words; for a quick look at the structure, list the top-level sections with jq -r '.children[] | .url_path' FILE.
Example output:
https://aps.autodesk.com/en/docs/acc/v1/reference/http/issues-issues-GET/ GET issues acs-acs-api-documentation-main-52/acc/v1/reference/http/issues/issues-GET.html
-
Column 1 is the only valid portal link for that page. The portal resolves pages by the TOC's
url_pathvalues, not by the CDN file path, and the two often differ:CDN source path (after the repo slug) Correct portal URL acc/v1/reference/http/issues/issues-GET.html…/en/docs/acc/v1/reference/http/issues-issues-GET/model-derivative/v2/overview.html…/en/docs/model-derivative/v2/developers_guide/overview/dx-sdk-beta/v1/v720/developers_guide/overview.html…/en/docs/dx-sdk-beta/v7.2.0/developers_guide/overview/ -
Column 3 is the page HTML path for Step 4.
-
Given a portal URL (from the user or elsewhere): map it to its source ID (Step 2), index that TOC, and
grep -Ffor the exact URL (with trailing/) to get its CDN source. Given a CDN URL:grep -Fthe path afterbPlouYTd/in column 3; if the repo slug is outdated, grep for the tail of the path instead. -
Section nodes without a page have no
source, so they aren't in the index; link to their first child page instead.
Step 4 — Fetch Each Page Once, Extract Locally
Download the page HTML once, then run every extraction on the local file:
curl -sL -o /tmp/aps-docs/page.html "https://developer.doc.autodesk.com/bPlouYTd/{source}"
# 1. Structure first — tells you whether it's a reference page, guide, tutorial, or event list
htmlq -f /tmp/aps-docs/page.html -r 'script, style' --text 'h1, h2, h3, h4'
# 2. Prose, lists, and code samples
htmlq -f /tmp/aps-docs/page.html -r 'script, style, noscript' --text 'p, li, pre'
# 3. Tables (parameters, response fields, status codes) — one row per line
htmlq -f /tmp/aps-docs/page.html -r 'script, style' --text 'tr' | sed 's/^[[:space:]]*//' | grep -v '^$'
Notes:
- REST reference pages start with a table holding Method and URI, Authentication Context (e.g. "User context required"), and Required OAuth Scopes; then headers, URI/query parameters, request body, and response body tables. Required fields are marked with
*. Grep the table rows for the parameter or field you need (e.g.grep -A2 '^limit') instead of reading the whole page. - Use a different file name per page if you need several at once.
- Select
tr, nottd/table: nested cells otherwise repeat the same text several times.
Step 5 — Compile Into a Coherent Answer
- Define the terms (from the glossary or what you found in the docs)
- Explain the relevant APIs and endpoints (from the TOC and fetched pages)
- List the specific events, parameters, or features (from the reference pages — quote values exactly)
- Provide reference links — portal URLs copied from index column 1 only
- Include a practical example if applicable (curl command, code snippet, etc.)
Gotchas
htmlqis not pre-installed — install it withbrew install htmlq(macOS) orcargo install htmlq. If unavailable, fall back topython3 -cwithhtml.parser.- The TOC JSON URL fails if the source ID is wrong — it is case-sensitive and versioned (
data_v2, notdata). Use the table in Step 2. - Old CDN repo slugs keep resolving but serve stale content — always take the
sourcepath from the current TOC rather than reusing a path from memory or from an older answer. - Webhook events are documented only in
webhooks_v1, underreference/events/{family}/(e.g.data_management_events/dm.version.added/). Data Management events use thedm.prefix; ACC Issues events are versioned (issue.created-1.0).
Worked Example: "What webhooks are available for when a file changes?"
Step 1 — Glossary. A webhook is a server-to-server callback. Data Management handles files in OSS, BIM 360 Docs, and ACC Docs.
Step 2 — Identify APIs. File events are Data Management events, documented in the Webhooks API (webhooks_v1).
Step 3 — Index the TOC.
curl -sL --create-dirs -o /tmp/aps-docs/webhooks_v1.json "https://developer.doc.config.autodesk.com/bPlouYTd/webhooks_v1.json"
jq -r '<index filter from Step 3>' /tmp/aps-docs/webhooks_v1.json | grep 'data_management_events'
This yields one line per event — dm.version.added, dm.version.modified, dm.version.deleted, dm.version.moved, dm.version.copied, dm.lineage.reserved, dm.lineage.unreserved, dm.lineage.updated, dm.folder.added, dm.folder.modified, dm.folder.deleted, dm.folder.purged, dm.folder.moved, dm.folder.copied, dm.operation.started, dm.operation.completed, and more — each with its portal URL and source path.
Step 4 — Fetch the pages you need (e.g. the dm.version.added page from column 3) and extract headings, then the payload table.
Step 5 — Compile.
dm.version.added— "When a new version of an item is added to a Folder" (scope: folder)dm.version.modified/dm.version.deleted/dm.version.moved/dm.version.copied— version changesdm.folder.*— folder changes
Links (copied from column 1):
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/autodesk-platform-services/skills/aps-docs-portal">View aps-docs-portal on skillZs</a>