Documentation

​
​

Development

User Acquisition

Monetization

Industry

Annotations API

v1

Supported
​

Annotations API

v1

Supported
​

Unity Services Web APIs
​
​
Annotations Service API (Deprecated)
  • Deprecation Notice: This service will be disabled.
Endpoints
  • Notifications
  • Topic

Annotations Service API (Deprecated)

Deprecation Notice: This service will be disabled.

Last Updated: 2026-01-16 Annotation service will be disabled on April 20th, 2026. The recommended alternative for Annotation and Collaboration features is the Collaboration SDK, which is available as an experimental package.
Download OpenAPI specification:

Retrieves notifications through long polling.


Authorizations
Bearer
HTTP: Bearer
HTTP Authorization Scheme: bearer

Path parameters for "Retrieves notifications through long polling."

projectId

string
required
Project identifier.

assetId

string
required
Asset identifier.

datasetId

string
required
Dataset identifier.

Query parameters for "Retrieves notifications through long polling."

from

integer
default: 0
The latest notification identifier from which to receive newer notifications

HTTP response status codes for "Retrieves notifications through long polling.":

Code samples for "Retrieves notifications through long polling.":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://staging.services.api.unity.com/assets/annotations/v1/projects/{projectId}/assets/{assetId}/datasets/{datasetId}/notifications"

Response example

List all the topics in an asset's dataset.


Authorizations
Bearer
HTTP: Bearer
HTTP Authorization Scheme: bearer

Path parameters for "List all the topics in an asset's dataset."

projectId

string
required
Project identifier.

datasetId

string
required
Dataset identifier.

assetId

string
required
Asset identifier.

HTTP response status codes for "List all the topics in an asset's dataset.":

Code samples for "List all the topics in an asset's dataset.":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://staging.services.api.unity.com/assets/annotations/v1/projects/{projectId}/assets/{assetId}/datasets/{datasetId}/topics"

Response example

{ "Topics": [ { "Id": "string", "SceneId": "string", "InstanceId": "string", "Title": "string", "CreationAuthor": { "Id": "string", "FullName": "string", "ColorIndex": 0 }, "CreationDate": "2024-01-01T00:00:00Z", "ModifiedAuthor": { "Id": "string", "FullName": "string", "ColorIndex": 0 }, "ModifiedDate": "2024-01-01T00:00:00Z", "Description": "string", "State": 0, "Read": true, "LocalTransform": { "Position": { "X": 0, "Y": 0, "Z": 0 }, "Rotation": { "X": 0, "Y": 0, "Z": 0, "W": 0 } }, "WorldTransform": { "Position": { "X": 0, "Y": 0, "Z": 0 }, "Rotation": { "X": 0, "Y": 0, "Z": 0, "W": 0 } }, "WorldCameraTransform": { "Position": { "X": 0, "Y": 0, "Z": 0 }, "Rotation": { "X": 0, "Y": 0, "Z": 0, "W": 0 } }, "IssueType": 0, "IssueManagementKey": "string", "LocalCameraTransform": { "Position": { "X": 0, "Y": 0, "Z": 0 }, "Rotation": { "X": 0, "Y": 0, "Z": 0, "W": 0 } } } ]}

Create a new topic under the specified asset's dataset.


Authorizations
Bearer
HTTP: Bearer
HTTP Authorization Scheme: bearer

Path parameters for "Create a new topic under the specified asset's dataset."

projectId

string
required
Project identifier.

assetId

string
required
Asset identifier.

datasetId

string
required
Dataset identifier.

Request body for "Create a new topic under the specified asset's dataset."

Media Type:
application/json

InstanceId

string
No description

Title

string
No description

Description

string
No description

LocalTransform

object
No description

Position

object
No description

X

number
No description

Y

number
No description

Z

number
No description

Rotation

object
No description

X

number
No description

Y

number
No description

Z

number
No description

W

number
No description

WorldTransform

object
No description

Position

object
No description

X

number
No description

Y

number
No description

Z

number
No description

Rotation

object
No description

X

number
No description

Y

number
No description

Z

number
No description

W

number
No description

WorldCameraTransform

object
No description

Position

object
No description

X

number
No description

Y

number
No description

Z

number
No description

Rotation

object
No description

X

number
No description

Y

number
No description

Z

number
No description

W

number
No description

LocalCameraTransform

object
No description

Position

object
No description

X

number
No description

Y

number
No description

Z

number
No description

Rotation

object
No description

X

number
No description

Y

number
No description

Z

number
No description

W

number
No description

InitialComment

string
No description

IssueType

integer
Types of Issue Management Tickets supported

IssueManagementKey

string
No description

IssueManagementData

string
No description

Attachment

object
No description

Bytes

string
No description

Filename

string
No description

ContentType

string
No description

Url

string
No description

HTTP response status codes for "Create a new topic under the specified asset's dataset.":

Code samples for "Create a new topic under the specified asset's dataset.":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "InstanceId": "string", "Title": "string", "Description": "string", "LocalTransform": { "Position": { "X": 0, "Y": 0, "Z": 0 }, "Rotation": { "X": 0, "Y": 0, "Z": 0, "W": 0 } }, "WorldTransform": { "Position": { "X": 0, "Y": 0, "Z": 0 }, "Rotation": { "X": 0, "Y": 0, "Z": 0, "W": 0 } }, "WorldCameraTransform": { "Position": { "X": 0, "Y": 0, "Z": 0 }, "Rotation": { "X": 0, "Y": 0, "Z": 0, "W": 0 } }, "LocalCameraTransform": { "Position": { "X": 0, "Y": 0, "Z": 0 }, "Rotation": { "X": 0, "Y": 0, "Z": 0, "W": 0 } }, "InitialComment": "string", "IssueType": 0, "IssueManagementKey": "string", "IssueManagementData": "string", "Attachment": { "Bytes": "string", "Filename": "string", "ContentType": "string", "Url": "string" }}' \ "https://staging.services.api.unity.com/assets/annotations/v1/projects/{projectId}/assets/{assetId}/datasets/{datasetId}/topics"

Response example

{ "Topic": { "Id": "string", "SceneId": "string", "InstanceId": "string", "Title": "string", "CreationAuthor": { "Id": "string", "FullName": "string", "ColorIndex": 0 }, "CreationDate": "2024-01-01T00:00:00Z", "ModifiedAuthor": { "Id": "string", "FullName": "string", "ColorIndex": 0 }, "ModifiedDate": "2024-01-01T00:00:00Z", "Description": "string", "State": 0, "Read": true, "LocalTransform": { "Position": { "X": 0, "Y": 0, "Z": 0 }, "Rotation": { "X": 0, "Y": 0, "Z": 0, "W": 0 } }, "WorldTransform": { "Position": { "X": 0, "Y": 0, "Z": 0 }, "Rotation": { "X": 0, "Y": 0, "Z": 0, "W": 0 } }, "WorldCameraTransform": { "Position": { "X": 0, "Y": 0, "Z": 0 }, "Rotation": { "X": 0, "Y": 0, "Z": 0, "W": 0 } }, "IssueType": 0, "IssueManagementKey": "string", "LocalCameraTransform": { "Position": { "X": 0, "Y": 0, "Z": 0 }, "Rotation": { "X": 0, "Y": 0, "Z": 0, "W": 0 } } }, "Comment": { "Id": "string", "TopicId": "string", "Date": "2024-01-01T00:00:00Z", "Author": { "Id": "string", "FullName": "string", "ColorIndex": 0 }, "Text": "string", "ModifiedDate": "2024-01-01T00:00:00Z", "Read": true, "IssueManagementKey": "string" }}

Get a topic under the specified asset.


Authorizations
Bearer
HTTP: Bearer
HTTP Authorization Scheme: bearer

Path parameters for "Get a topic under the specified asset."

projectId

string
required
Project identifier.

assetId

string
required
Asset identifier.

datasetId

string
required
Dataset identifier.

topicId

string
required
Topic identifier.

HTTP response status codes for "Get a topic under the specified asset.":

Code samples for "Get a topic under the specified asset.":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://staging.services.api.unity.com/assets/annotations/v1/projects/{projectId}/assets/{assetId}/datasets/{datasetId}/topics/{topicId}"

Response example

{ "Id": "string", "SceneId": "string", "InstanceId": "string", "Title": "string", "CreationAuthor": { "Id": "string", "FullName": "string", "ColorIndex": 0 }, "CreationDate": "2024-01-01T00:00:00Z", "ModifiedAuthor": { "Id": "string", "FullName": "string", "ColorIndex": 0 }, "ModifiedDate": "2024-01-01T00:00:00Z", "Description": "string", "State": 0, "Read": true, "LocalTransform": { "Position": { "X": 0, "Y": 0, "Z": 0 }, "Rotation": { "X": 0, "Y": 0, "Z": 0, "W": 0 } }, "WorldTransform": { "Position": { "X": 0, "Y": 0, "Z": 0 }, "Rotation": { "X": 0, "Y": 0, "Z": 0, "W": 0 } }, "WorldCameraTransform": { "Position": { "X": 0, "Y": 0, "Z": 0 }, "Rotation": { "X": 0, "Y": 0, "Z": 0, "W": 0 } }, "IssueType": 0, "IssueManagementKey": "string", "LocalCameraTransform": { "Position": { "X": 0, "Y": 0, "Z": 0 }, "Rotation": { "X": 0, "Y": 0, "Z": 0, "W": 0 } }}

Delete a topic.


Authorizations
Bearer
HTTP: Bearer
HTTP Authorization Scheme: bearer

Path parameters for "Delete a topic."

projectId

string
required
Project identifier.

assetId

string
required
Asset identifier.

datasetId

string
required
Dataset identifier.

topicId

string
required
Topic identifier.

HTTP response status codes for "Delete a topic.":

Code samples for "Delete a topic.":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://staging.services.api.unity.com/assets/annotations/v1/projects/{projectId}/assets/{assetId}/datasets/{datasetId}/topics/{topicId}"

Response example

List all the comments in a asset's dataset.


Authorizations
Bearer
HTTP: Bearer
HTTP Authorization Scheme: bearer

Path parameters for "List all the comments in a asset's dataset."

projectId

string
required
Project identifier.

assetId

string
required
Asset identifier.

datasetId

string
required
Dataset identifier.

HTTP response status codes for "List all the comments in a asset's dataset.":

Code samples for "List all the comments in a asset's dataset.":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://staging.services.api.unity.com/assets/annotations/v1/projects/{projectId}/assets/{assetId}/datasets/{datasetId}/comments"

Response example

{ "Comments": [ { "Id": "string", "TopicId": "string", "Date": "2024-01-01T00:00:00Z", "Author": { "Id": "string", "FullName": "string", "ColorIndex": 0 }, "Text": "string", "ModifiedDate": "2024-01-01T00:00:00Z", "Read": true, "IssueManagementKey": "string" } ]}

Get the comments under a specific topic in a asset's dataset.


Authorizations
Bearer
HTTP: Bearer
HTTP Authorization Scheme: bearer

Path parameters for "Get the comments under a specific topic in a asset's dataset."

projectId

string
required
Project identifier.

assetId

string
required
Asset identifier.

datasetId

string
required
Dataset identifier.

topicId

string
required
Topic identifier.

HTTP response status codes for "Get the comments under a specific topic in a asset's dataset.":

Code samples for "Get the comments under a specific topic in a asset's dataset.":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://staging.services.api.unity.com/assets/annotations/v1/projects/{projectId}/assets/{assetId}/datasets/{datasetId}/topics/{topicId}/comments"

Response example

{ "Comments": [ { "Id": "string", "TopicId": "string", "Date": "2024-01-01T00:00:00Z", "Author": { "Id": "string", "FullName": "string", "ColorIndex": 0 }, "Text": "string", "ModifiedDate": "2024-01-01T00:00:00Z", "Read": true, "IssueManagementKey": "string" } ]}

Create a new comment.


Authorizations
Bearer
HTTP: Bearer
HTTP Authorization Scheme: bearer

Path parameters for "Create a new comment."

projectId

string
required
Project identifier.

assetId

string
required
Asset identifier.

datasetId

string
required
Dataset identifier.

topicId

string
required
Topic identifier.

Request body for "Create a new comment."

Media Type:
application/json

Comment

string
No description

HTTP response status codes for "Create a new comment.":

Code samples for "Create a new comment.":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "Comment": "string"}' \ "https://staging.services.api.unity.com/assets/annotations/v1/projects/{projectId}/assets/{assetId}/datasets/{datasetId}/topics/{topicId}/comments"

Response example

{ "Id": "string", "TopicId": "string", "Date": "2024-01-01T00:00:00Z", "Author": { "Id": "string", "FullName": "string", "ColorIndex": 0 }, "Text": "string", "ModifiedDate": "2024-01-01T00:00:00Z", "Read": true, "IssueManagementKey": "string"}

Get the comment under a specific topic in an asset.


Authorizations
Bearer
HTTP: Bearer
HTTP Authorization Scheme: bearer

Path parameters for "Get the comment under a specific topic in an asset."

assetId

string
required
Asset identifier.

projectId

string
required
Project identifier.

datasetId

string
required
Dataset identifier.

topicId

string
required
Topic identifier.

commentId

string
required
Comment identifier.

HTTP response status codes for "Get the comment under a specific topic in an asset.":

Code samples for "Get the comment under a specific topic in an asset.":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://staging.services.api.unity.com/assets/annotations/v1/projects/{projectId}/assets/{assetId}/datasets/{datasetId}/topics/{topicId}/comments/{commentId}"

Response example

{ "Id": "string", "TopicId": "string", "Date": "2024-01-01T00:00:00Z", "Author": { "Id": "string", "FullName": "string", "ColorIndex": 0 }, "Text": "string", "ModifiedDate": "2024-01-01T00:00:00Z", "Read": true, "IssueManagementKey": "string"}

Delete a comment.


Authorizations
Bearer
HTTP: Bearer
HTTP Authorization Scheme: bearer

Path parameters for "Delete a comment."

projectId

string
required
Project identifier.

assetId

string
required
Asset identifier.

datasetId

string
required
Dataset identifier.

topicId

string
required
Topic identifier.

commentId

string
required
Comment identifier.

HTTP response status codes for "Delete a comment.":

Code samples for "Delete a comment.":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://staging.services.api.unity.com/assets/annotations/v1/projects/{projectId}/assets/{assetId}/datasets/{datasetId}/topics/{topicId}/comments/{commentId}"

Response example

Mark all the topics and comments as read by current user.


Authorizations
Bearer
HTTP: Bearer
HTTP Authorization Scheme: bearer

Path parameters for "Mark all the topics and comments as read by current user."

projectId

string
required
Project identifier.

assetId

string
required
Asset identifier.

datasetId

string
required
Dataset identifier.

HTTP response status codes for "Mark all the topics and comments as read by current user.":

Code samples for "Mark all the topics and comments as read by current user.":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://staging.services.api.unity.com/assets/annotations/v1/projects/{projectId}/assets/{assetId}/datasets/{datasetId}/mark-all-as-read"

Response example

Mark all the topics as read by current user.


Authorizations
Bearer
HTTP: Bearer
HTTP Authorization Scheme: bearer

Path parameters for "Mark all the topics as read by current user."

projectId

string
required
Project identifier.

assetId

string
required
Asset identifier.

datasetId

string
required
Dataset identifier.

Request body for "Mark all the topics as read by current user."

Media Type:
application/json
Array Type:
[ "string"]

HTTP response status codes for "Mark all the topics as read by current user.":

Code samples for "Mark all the topics as read by current user.":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '[ "string"]' \ "https://staging.services.api.unity.com/assets/annotations/v1/projects/{projectId}/assets/{assetId}/datasets/{datasetId}/topics/mark-as-read"

Response example

Mark all the comments as read by current user.


Authorizations
Bearer
HTTP: Bearer
HTTP Authorization Scheme: bearer

Path parameters for "Mark all the comments as read by current user."

projectId

string
required
Project identifier.

assetId

string
required
Asset identifier.

datasetId

string
required
Dataset identifier.

Request body for "Mark all the comments as read by current user."

Media Type:
application/json
Array Type:
[ "string"]

HTTP response status codes for "Mark all the comments as read by current user.":

Code samples for "Mark all the comments as read by current user.":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '[ "string"]' \ "https://staging.services.api.unity.com/assets/annotations/v1/projects/{projectId}/assets/{assetId}/datasets/{datasetId}/comments/mark-as-read"

Response example


Copyright © 2026 Unity Technologies
LegalPrivacy PolicyCookiesDocumentation Terms of UseDo Not Sell or Share My Personal InformationYour Privacy Choices (Cookie Settings)

"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S and elsewhere (more info here). Other names or brands are trademarks of their respective owners.

Some pages are machine-translated for convenience, and may contain inaccuracies. In the event of conflicting information, the English version is authoritative.