> This page is for Schema Service, version v2.
> For other versions, use one of these documentation indexes:
> - v3 (latest) (default): https://autodesk.ferndocs.com/schema/schema-service/v3/llms.txt
> - v2: https://autodesk.ferndocs.com/schema/schema-service/v2/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://autodesk.ferndocs.com/schema/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://autodesk.ferndocs.com/schema/_mcp/server.

# Schema Types

### Schema Types

## Property Set Schemas

The Forge Schema Service V2 API primarily supports the schema type known as Property Set Schemas. Property Set Schemas were defined as a part of the HFDM project. It is a richly typed schema language that is designed specifically to work with change-based encoding. For more information on Property Set Schema, see the [documentation on HFDM Schema Specification 1.0.](https://pages.git.autodesk.com/forge/adsk-hfdm/docs/specifications/hfdm_schema_specification.html)

## Example - Property Set Schema

```json
{
   "annotation": {
      "description": "Specifies a data type for References to family type definitions."
   },
   "typeid": "autodesk.revit.spec:familyType-1.0.0",
   "inherits": [
      "autodesk.spec:spec.reference-1.0.0"
   ],
   "constants": [
      {
         "id": "name",
         "value": "Family Type"
      },
      {
         "id": "category",
         "typeid": "autodesk.revit.category:category-1.0.0",
         "annotation": {
         "description": "Specifies the category to which the referenced family must belong."
         }
      }
   ]
}
```

## Legacy Schemas

For backward compatibility reasons, the Forge Schema Service V2 API supports the following schema types as well. Avoid using Legacy Schema as much as possible. Information on how to define these schema types is sparse and we recommend that you use the Property Set Schema type where possible.

+--------------------------+---------------------------------------------------------------------+
\| Schema Types             |  Comments                                                           |
+==========================+=====================================================================+
\| Resource Schemas         |  The schemas that define an extension of a base resource type.      |
\|                          |                                                                     |
\| - Hubs                   |                                                                     |
\| - Projects               |                                                                     |
\| - Folders                |                                                                     |
\| - Items                  |                                                                     |
+--------------------------+---------------------------------------------------------------------+\
\| Links Schemas            | Schemas for links that represent an external link to resources      |
\|                          | through a URL.                                                      |
+--------------------------+---------------------------------------------------------------------+\
\| Reference Schemas        | Schemas that define custom relationships between the resources.     |
+--------------------------+---------------------------------------------------------------------+\
\| Custom Types Schemas     | Schemas within a namespace that are independent of other schemas.   |
+--------------------------+---------------------------------------------------------------------+

## Example - Hub Schema

```json
{
   "$schema": "http://json-schema.org/draft-04/schema#",
   "description": "Schema that represents an A360 personal hub",
   "type": "object",
   "properties": {
      "type": {
         "type": "string",
         "enum": [
         "hubs"
         ],
         "description": "SCHEMA-ONLY Base entity type referred to by hubs"
      },
      "attributes": {
         "properties": {
         "extension": {
            "required": [
               "type"
            ],
            "properties": {
               "type": {
               "type": "string",
               "enum": [
                  "hubs:autodesk.a360:PersonalHub"
               ],
               "description": "Extension for hub"
               },
               "version": {
               "type": "string",
               "description": "1.0.1"
               },
               "namespace": {
               "type": "string",
               "enum": [
                  "autodesk.a360"
               ],
               "description": "SCHEMA-ONLY Namespace to which this extensionType belongs"
               },
               "implements": {
               "type": "array",
               "description": "SCHEMA-ONLY the parent types this extension type implements",
               "items": [
                  {
                     "type": "object",
                     "description": "list of parent types",
                     "properties": {
                     "extensionType": {
                        "type": "string",
                        "enum": [
                           "hubs:autodesk.core:Hub"
                        ]
                     },
                     "version": {
                        "type": "string",
                        "enum": [
                           "1.0"
                        ]
                     }
                     }
                  }
               ]
               }
            }
         }
         }
      }
   }
}
```

## Example - Project Schema

```json
{
   "$schema": "http://json-schema.org/draft-04/schema#",
   "description": "Schema of an autodesk.bim360 Project",
   "type": "object",
   "properties": {
      "type": {
         "type": "string",
         "enum": [
         "projects"
         ],
         "description": "SCHEMA-ONLY Base entity type referred to by projects"
      },
      "attributes": {
         "properties": {
         "extension": {
            "required": [
               "type"
            ],
            "properties": {
               "type": {
               "type": "string",
               "enum": [
                  "projects:autodesk.bim360:Project"
               ],
               "description": "Extension for project"
               },
               "version": {
               "type": "string",
               "description": "draft"
               },
               "namespace": {
               "type": "string",
               "enum": [
                  "autodesk.bim360"
               ],
               "description": "SCHEMA-ONLY Namespace to which this extensionType belongs"
               },
               "implements": {
               "type": "array",
               "description": "SCHEMA-ONLY the parent types this extension type implements",
               "items": [
                  {
                     "type": "object",
                     "description": "list of parent types",
                     "properties": {
                     "extensionType": {
                        "type": "string",
                        "enum": [
                           "projects:autodesk.core:Project"
                        ]
                     },
                     "version": {
                        "type": "string",
                        "enum": [
                           "1.0"
                        ]
                     }
                     }
                  }
               ]
               }
            }
         }
         }
      }
   }
}
```

## Example - Folder Schema

```json
{
   "$schema": "http://json-schema.org/draft-04/schema#",
   "description": "Schema of an autodesk.bim360 Project",
   "type": "object",
   "properties": {
      "type": {
         "type": "string",
         "enum": [
         "projects"
         ],
         "description": "SCHEMA-ONLY Base entity type referred to by projects"
      },
      "attributes": {
         "properties": {
         "extension": {
            "required": [
               "type"
            ],
            "properties": {
               "type": {
               "type": "string",
               "enum": [
                  "projects:autodesk.bim360:Project"
               ],
               "description": "Extension for project"
               },
               "version": {
               "type": "string",
               "description": "draft"
               },
               "namespace": {
               "type": "string",
               "enum": [
                  "autodesk.bim360"
               ],
               "description": "SCHEMA-ONLY Namespace to which this extensionType belongs"
               },
               "implements": {
               "type": "array",
               "description": "SCHEMA-ONLY the parent types this extension type implements",
               "items": [
                  {
                     "type": "object",
                     "description": "list of parent types",
                     "properties": {
                     "extensionType": {
                        "type": "string",
                        "enum": [
                           "projects:autodesk.core:Project"
                        ]
                     },
                     "version": {
                        "type": "string",
                        "enum": [
                           "1.0"
                        ]
                     }
                     }
                  }
               ]
               }
            }
         }
         }
      }
   }
}
```

## Example - Item Schema

```json
{
   "$schema": "http://json-schema.org/draft-04/schema#",
   "description": "Generic autodesk.bim360  File.",
   "type": "object",
   "properties": {
      "type": {
         "type": "string",
         "enum": [
         "items"
         ],
         "description": "SCHEMA-ONLY Base entity type referred to by items"
      },
      "attributes": {
         "properties": {
         "extension": {
            "required": [
               "type"
            ],
            "properties": {
               "type": {
               "enum": [
                  "items:autodesk.bim360:File"
               ],
               "description": "Extension for item",
               "type": "string"
               },
               "version": {
               "description": "draft",
               "type": "string"
               },
               "namespace": {
               "enum": [
                  "autodesk.bim360"
               ],
               "description": "SCHEMA-ONLY Namespace to which this extensionType belongs",
               "type": "string"
               },
               "implements": {
               "type": "array",
               "description": "SCHEMA-ONLY the parent types this extension type implements",
               "items": [
                  {
                     "type": "object",
                     "description": "list of parent types",
                     "properties": {
                     "extensionType": {
                        "type": "string",
                        "enum": [
                           "items:autodesk.core:File"
                        ]
                     },
                     "version": {
                        "type": "string",
                        "enum": [
                           "1.0"
                        ]
                     }
                     }
                  }
               ]
               }
            }
         }
         }
      },
      "relationships": {
         "type": "object",
         "description": "override allowed and visible types for specific relationships. This section is not applicable if extensionBaseType is refs(derived/dependencies/xrefs/auxiliary)",
         "properties": {
         "versions": {
            "type": "object",
            "description": "override allowed and visible types for contents relationship",
            "properties": {
               "meta": {
               "type": "object",
               "description": "meta container for relationship customizations",
               "properties": {
                  "allowedTypes": {
                     "type": "array",
                     "description": "allowed extension types",
                     "items": [
                     {
                        "type": "object",
                        "description": "contains 0..n autodesk.bim360 Files",
                        "properties": {
                           "extensionType": {
                           "type": "string",
                           "enum": [
                              "versions:autodesk.bim360:File",
                              "versions:autodesk.core:Deleted"
                           ]
                           },
                           "cardinality": {
                           "enum": [
                              "n"
                           ],
                           "description": "SCHEMA-ONLY how many instances are allowed -default n",
                           "type": "string"
                           }
                        }
                     }
                     ]
                  }
               }
               }
            }
         }
         }
      }
   }
}
```

## Example - Version Schema

```json
{
   "$schema": "http://json-schema.org/draft-04/schema#",
   "description": "Generic autodesk.bim360 File version.",
   "type": "object",
   "properties": {
      "type": {
         "type": "string",
         "enum": [
         "versions"
         ],
         "description": "SCHEMA-ONLY Base entity type referred to by versions"
      },
      "attributes": {
         "properties": {
         "extension": {
            "required": [
               "type"
            ],
            "properties": {
               "type": {
               "type": "string",
               "enum": [
                  "versions:autodesk.bim360:File"
               ],
               "description": "Extension for version"
               },
               "version": {
               "type": "string",
               "description": "draft"
               },
               "namespace": {
               "type": "string",
               "enum": [
                  "autodesk.bim360"
               ],
               "description": "SCHEMA-ONLY Namespace to which this extensionType belongs"
               },
               "implements": {
               "type": "array",
               "description": "SCHEMA-ONLY the parent types this extension type implements",
               "items": [
                  {
                     "type": "object",
                     "description": "list of parent types",
                     "properties": {
                     "extensionType": {
                        "type": "string",
                        "enum": [
                           "versions:autodesk.core:File"
                        ]
                     },
                     "version": {
                        "type": "string",
                        "enum": [
                           "1.0"
                        ]
                     }
                     }
                  }
               ]
               },
               "data": {
               "type": "object",
               "description": "custom metadata type.",
               "properties": {
                  "processState": {
                     "type": "string",
                     "enum": [
                     "NEEDS_PROCESSING",
                     "PROCESSING",
                     "PREVIOUS_SEED_PENDING",
                     "EXTRACTION_PENDING",
                     "SPLITTING",
                     "PREVIOUS_DOC_PENDING",
                     "PROCESSING_ABORTING",
                     "PROCESSING_ABORTED",
                     "PROCESSING_COMPLETE",
                     "PROCESSING_PROMOTION",
                     "PROCESSING_COPY",
                     "PROCESSING_PROMOTING",
                     "PROCESSING_COPYING",
                     "PROCESSING_SUSPEND"
                     ],
                     "description": "Enum for overall processing of documents by DOS."
                  },
                  "extractionState": {
                     "type": "string",
                     "enum": [
                     "FAILED",
                     "SKIPPED",
                     "UNSUPPORTED",
                     "SUCCESS"
                     ],
                     "description": "Enum for extraction of Documents from Seed Files by DOS."
                  },
                  "splittingState": {
                     "type": "string",
                     "enum": [
                     "SPLIT",
                     "NOT_SPLIT"
                     ],
                     "description": "Enum for if splitting of Seed Files into Documents from Seed Files occured by DOS."
                  },
                  "reviewState": {
                     "type": "string",
                     "enum": [
                     "NOT_IN_REVIEW",
                     "PREPARING_REVIEW",
                     "NEEDS_REVIEW",
                     "NEEDS_OCR",
                     "ACCEPTED"
                     ],
                     "description": "Enum for the current Review state of a Seed File before Documents are created by DOS."
                  },
                  "status": {
                     "type": "string",
                     "description": "File attribute for suitability; showing permitted use of the file."
                  },
                  "revision": {
                     "type": "string",
                     "description": "File attribute for recording file versions."
                  },
                  "classification": {
                     "type": "string",
                     "description": "File attribute for classifying the information within the file based on standard classification systems."
                  }
               }
               }
            }
         }
         }
      }
   }
}
```

## Example - Links Schema

```json
{
   "$schema": "http://json-schema.org/draft-04/schema#",
   "description": "Schema description goes here",
   "type": "object",
   "properties": {
      "meta": {
         "type": "object",
         "properties": {
         "link": {
            "type": "object",
            "required": [
               "href"
            ],
            "properties": {
               "href": {
               "type": "string",
               "description": "Specify the pattern to match against for link - ensures that only valid link types are allowed",
               "pattern": "https://developer.autodesk.com/comments/v2/.*"
               }
            }
         },
         "mimeType": {
            "enum": [
               "application/json"
            ],
            "description": "SCHEMA-ONLY : optional IANA media type",
            "type": "string"
         },
         "extension": {
            "required": [
               "type"
            ],
            "properties": {
               "type": {
               "enum": [
                  "links:autodesk.bim360:ViewInfo"
               ],
               "description": "Extension For Comments Link",
               "type": "string"
               },
               "version": {
               "description": "draft",
               "type": "string"
               },
               "namespace": {
               "enum": [
                  "autodesk.bim360"
               ],
               "description": "SCHEMA-ONLY Namespace to which this extensionType belongs",
               "type": "string"
               },
               "data": {
               "type": "object",
               "properties": {
                  "defaultView": {
                     "type": "string",
                     "description": "The name or ID of the default View defined for the version this link is related to."
                  }
               }
               }
            }
         }
         }
      }
   }
}
```

## Example - Reference Schema

```json
{
   "$schema": "http://json-schema.org/draft-04/schema#",
   "title": "FileToDocument",
   "description": "When Documents have been created, a relationship to the Document is made From the Seed File Version.  (One to Many)",
   "type": "object",
   "properties": {
      "type": {
         "type": "string",
         "enum": [
         "versions"
         ],
         "description": "SCHEMA-ONLY Base entity type referred to by versions"
      },
      "meta": {
         "type": "object",
         "properties": {
         "refType": {
            "enum": [
               "derived"
            ],
            "description": "SCHEMA-ONLY Base entity type extended by derived",
            "type": "string"
         },
         "extension": {
            "required": [
               "type"
            ],
            "properties": {
               "type": {
               "enum": [
                  "derived:autodesk.bim360:FileToDocument"
               ],
               "description": "Extension for derived",
               "type": "string"
               },
               "version": {
               "description": "draft",
               "type": "string"
               },
               "namespace": {
               "enum": [
                  "autodesk.bim360"
               ],
               "description": "SCHEMA-ONLY Namespace to which this extensionType belongs",
               "type": "string"
               },
               "fromAllowedTypes": {
               "type": "array",
               "description": "SCHEMA-ONLY && REFS-ONLY: array of 1..n type elements. Types that may be used at the 'from' end of the ref. Same format as Resource Schema Relationships allowed types.",
               "items": [
                  {
                     "type": "object",
                     "description": "From File",
                     "properties": {
                     "extensionType": {
                        "type": "string",
                        "enum": [
                           "versions:autodesk.bim360:File"
                        ]
                     }
                     }
                  }
               ]
               },
               "toAllowedTypes": {
               "type": "array",
               "description": "SCHEMA-ONLY && REFS-ONLY: array of 1..n type elements. Types that may be used at the 'from' end of the ref. Same format as Resource Schema Relationships allowed types.",
               "items": [
                  {
                     "type": "object",
                     "description": "To Document",
                     "properties": {
                     "extensionType": {
                        "type": "string",
                        "enum": [
                           "versions:autodesk.bim360:Document"
                        ]
                     }
                     }
                  }
               ]
               }
            }
         }
         }
      }
   }
}
```

## Example - Custom Type Schema

```json
{
   "$schema": "http://json-schema.org/draft-04/schema#",
   "title": "Double Property",
   "description": "Custom Type to define double numbers with units",
   "type": "object",
   "required": [
      "type",
      "attributes"
   ],
   "properties": {
      "type": {
         "description": "SCHEMA-ONLY Base entity type extended by this type.",
         "type": "string",
         "enum": [
         "customTypes"
         ]
      },
      "attributes": {
         "type": "object",
         "required": [
         "extension"
         ],
         "properties": {
         "extension": {
            "type": "object",
            "required": [
               "type",
               "data"
            ],
            "properties": {
               "type": {
               "description": "Custom type definition for doubles",
               "type": "string",
               "enum": [
                  "customTypes:autodesk.runscope:doubleProperty"
               ]
               },
               "version": {
               "description": "draft",
               "type": "string"
               },
               "namespace": {
               "description": "SCHEMA-ONLY Namespace to which this extentionType belongs",
               "type": "string",
               "enum": [
                  "autodesk.runscope"
               ]
               },
               "data": {
               "description": "Custom properties for this type",
               "type": "object",
               "required": [
                  "value",
                  "units"
               ],
               "properties": {
                  "value": {
                     "description": "Double precision floating point number",
                     "type": "number"
                  },
                  "units": {
                     "description": "Units in the international metric system, i.e. mm",
                     "type": "string"
                  }
               }
               }
            }
         }
         }
      }
   }
}
```