Asana · Schema
StoryResponse
CollaborationProductivityProject ManagementProjectTask ManagementTaskWorkflows
Properties
| Name | Type | Description |
|---|---|---|
| created_by | object | |
| type | string | |
| is_editable | boolean | *Conditional*. Whether the text of the story can be edited after creation. |
| is_edited | boolean | *Conditional*. Whether the text of the story has been edited after creation. |
| hearted | boolean | *Deprecated - please use likes instead* *Conditional*. True if the story is hearted by the authorized user, false if not. |
| hearts | array | *Deprecated - please use likes instead* *Conditional*. Array of likes for users who have hearted this story. |
| num_hearts | integer | *Deprecated - please use likes instead* *Conditional*. The number of users who have hearted this story. |
| liked | boolean | *Conditional*. True if the story is liked by the authorized user, false if not. |
| likes | array | *Conditional*. Array of likes for users who have liked this story. |
| num_likes | integer | *Conditional*. The number of users who have liked this story. |
| previews | array | *Conditional*. A collection of previews to be displayed in the story. *Note: This property only exists for comment stories.* |
| old_name | string | *Conditional*' |
| new_name | string | *Conditional* |
| old_dates | object | |
| new_dates | object | |
| old_resource_subtype | string | *Conditional* |
| new_resource_subtype | string | *Conditional* |
| story | object | *Conditional* |
| assignee | object | *Conditional* |
| follower | object | *Conditional* |
| old_section | object | *Conditional* |
| new_section | object | *Conditional* |
| task | object | *Conditional* |
| project | object | *Conditional* |
| tag | object | *Conditional* |
| custom_field | object | *Conditional* |
| old_text_value | string | *Conditional* |
| new_text_value | string | *Conditional* |
| old_number_value | integer | *Conditional* |
| new_number_value | integer | *Conditional* |
| old_enum_value | object | *Conditional* |
| new_enum_value | object | *Conditional* |
| old_date_value | object | |
| new_date_value | object | |
| old_people_value | array | *Conditional*. The old value of a people custom field story. |
| new_people_value | array | *Conditional*. The new value of a people custom field story. |
| old_multi_enum_values | array | *Conditional*. The old value of a multi-enum custom field story. |
| new_multi_enum_values | array | *Conditional*. The new value of a multi-enum custom field story. |
| new_approval_status | string | *Conditional*. The new value of approval status. |
| old_approval_status | string | *Conditional*. The old value of approval status. |
| duplicate_of | object | *Conditional* |
| duplicated_from | object | *Conditional* |
| dependency | object | *Conditional* |
| source | string | The component of the Asana product the user used to trigger the story. |
| target | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/StoryResponse",
"title": "StoryResponse",
"allOf": [
{
"$ref": "#/components/schemas/StoryBase"
},
{
"type": "object",
"properties": {
"created_by": {
"$ref": "#/components/schemas/UserCompact"
},
"type": {
"type": "string",
"enum": [
"comment",
"system"
],
"readOnly": true,
"example": "comment"
},
"is_editable": {
"description": "*Conditional*. Whether the text of the story can be edited after creation.",
"type": "boolean",
"readOnly": true,
"example": false
},
"is_edited": {
"description": "*Conditional*. Whether the text of the story has been edited after creation.",
"type": "boolean",
"readOnly": true,
"example": false
},
"hearted": {
"description": "*Deprecated - please use likes instead*\n*Conditional*. True if the story is hearted by the authorized user, false if not.",
"type": "boolean",
"readOnly": true,
"example": false
},
"hearts": {
"description": "*Deprecated - please use likes instead*\n\n*Conditional*. Array of likes for users who have hearted this story.",
"type": "array",
"items": {
"$ref": "#/components/schemas/Like"
},
"readOnly": true
},
"num_hearts": {
"description": "*Deprecated - please use likes instead*\n\n*Conditional*. The number of users who have hearted this story.",
"type": "integer",
"readOnly": true,
"example": 5
},
"liked": {
"description": "*Conditional*. True if the story is liked by the authorized user, false if not.",
"type": "boolean",
"readOnly": true,
"example": false
},
"likes": {
"description": "*Conditional*. Array of likes for users who have liked this story.",
"type": "array",
"items": {
"$ref": "#/components/schemas/Like"
},
"readOnly": true
},
"num_likes": {
"description": "*Conditional*. The number of users who have liked this story.",
"type": "integer",
"readOnly": true,
"example": 5
},
"previews": {
"description": "*Conditional*. A collection of previews to be displayed in the story.\n\n*Note: This property only exists for comment stories.*",
"type": "array",
"items": {
"$ref": "#/components/schemas/Preview"
},
"readOnly": true
},
"old_name": {
"description": "*Conditional*'",
"type": "string",
"example": "This was the Old Name"
},
"new_name": {
"description": "*Conditional*",
"type": "string",
"nullable": true,
"readOnly": true,
"example": "This is the New Name"
},
"old_dates": {
"$ref": "#/components/schemas/StoryResponseDates"
},
"new_dates": {
"$ref": "#/components/schemas/StoryResponseDates"
},
"old_resource_subtype": {
"description": "*Conditional*",
"type": "string",
"readOnly": true,
"example": "default_task"
},
"new_resource_subtype": {
"description": "*Conditional*",
"type": "string",
"readOnly": true,
"example": "milestone"
},
"story": {
"description": "*Conditional*",
"$ref": "#/components/schemas/StoryCompact",
"readOnly": true
},
"assignee": {
"description": "*Conditional*",
"$ref": "#/components/schemas/UserCompact",
"readOnly": true
},
"follower": {
"description": "*Conditional*",
"$ref": "#/components/schemas/UserCompact",
"readOnly": true
},
"old_section": {
"description": "*Conditional*",
"$ref": "#/components/schemas/SectionCompact",
"readOnly": true
},
"new_section": {
"description": "*Conditional*",
"$ref": "#/components/schemas/SectionCompact",
"readOnly": true
},
"task": {
"description": "*Conditional*",
"$ref": "#/components/schemas/TaskCompact",
"readOnly": true
},
"project": {
"description": "*Conditional*",
"$ref": "#/components/schemas/ProjectCompact",
"readOnly": true
},
"tag": {
"description": "*Conditional*",
"$ref": "#/components/schemas/TagCompact",
"readOnly": true
},
"custom_field": {
"description": "*Conditional*",
"$ref": "#/components/schemas/CustomFieldCompact",
"readOnly": true
},
"old_text_value": {
"description": "*Conditional*",
"type": "string",
"readOnly": true,
"example": "This was the Old Text"
},
"new_text_value": {
"description": "*Conditional*",
"type": "string",
"readOnly": true,
"example": "This is the New Text"
},
"old_number_value": {
"description": "*Conditional*",
"type": "integer",
"nullable": true,
"readOnly": true,
"example": 1
},
"new_number_value": {
"description": "*Conditional*",
"type": "integer",
"readOnly": true,
"example": 2
},
"old_enum_value": {
"description": "*Conditional*",
"$ref": "#/components/schemas/EnumOption",
"readOnly": true
},
"new_enum_value": {
"description": "*Conditional*",
"$ref": "#/components/schemas/EnumOption",
"readOnly": true
},
"old_date_value": {
"allOf": [
{
"$ref": "#/components/schemas/StoryResponseDates"
},
{
"description": "*Conditional*. The old value of a date custom field story."
}
],
"readOnly": true
},
"new_date_value": {
"allOf": [
{
"$ref": "#/components/schemas/StoryResponseDates"
},
{
"description": "*Conditional* The new value of a date custom field story."
}
],
"readOnly": true
},
"old_people_value": {
"description": "*Conditional*. The old value of a people custom field story.",
"type": "array",
"items": {
"$ref": "#/components/schemas/UserCompact"
},
"readOnly": true
},
"new_people_value": {
"description": "*Conditional*. The new value of a people custom field story.",
"type": "array",
"items": {
"$ref": "#/components/schemas/UserCompact"
},
"readOnly": true
},
"old_multi_enum_values": {
"description": "*Conditional*. The old value of a multi-enum custom field story.",
"type": "array",
"items": {
"$ref": "#/components/schemas/EnumOption"
},
"readOnly": true
},
"new_multi_enum_values": {
"description": "*Conditional*. The new value of a multi-enum custom field story.",
"type": "array",
"items": {
"$ref": "#/components/schemas/EnumOption"
},
"readOnly": true
},
"new_approval_status": {
"description": "*Conditional*. The new value of approval status.",
"type": "string",
"readOnly": true,
"example": "approved"
},
"old_approval_status": {
"description": "*Conditional*. The old value of approval status.",
"type": "string",
"readOnly": true,
"example": "pending"
},
"duplicate_of": {
"description": "*Conditional*",
"$ref": "#/components/schemas/TaskCompact",
"readOnly": true
},
"duplicated_from": {
"description": "*Conditional*",
"$ref": "#/components/schemas/TaskCompact",
"readOnly": true
},
"dependency": {
"description": "*Conditional*",
"$ref": "#/components/schemas/TaskCompact",
"readOnly": true
},
"source": {
"description": "The component of the Asana product the user used to trigger the story.",
"type": "string",
"enum": [
"web",
"email",
"mobile",
"api",
"unknown"
],
"readOnly": true,
"example": "web"
},
"target": {
"allOf": [
{
"$ref": "#/components/schemas/TaskCompact"
},
{
"type": "object",
"readOnly": true,
"description": "The object this story is associated with. Currently may only be a task."
}
]
}
}
}
]
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/asana-storyresponse"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.