REST API v5

This section of the Pivotal Tracker API documentation is a reference to all of the endpoints (URL paths) the API supports, the operations (request types) that can be performed with those endpoints, and the schema of the resource data encodings they return. It is applicable to API v5 only. Information about behaviors and request/response information that is common across the API is covered in the documentation Introduction.

Introduction

This section of the documentation is a reference for API version 'v5'. The bulk of the documentation is made up of the references for Endpoints (all of the URL paths the API makes available and the HTTP methods supported by each) and for Resources (the supported attributes for the different data structures maintained by the Tracker server and used to exchange data between client and server). Each resource is listed independently, sorted alphabetically by name. Endpoints are listed in groups with other, related endpoints. Groups are arranged in what is intended to be a logical reading/scanning order.

Pivotal Tracker API v5 behaves exactly as described in the API documentation's Essentials section. Each individual item reference below describes the deviations, if any, that that item has from the standard/default API behavior.

In particular, there are a handful of endpoints that either don't support any of the standard response-formatting parameters (their format is entirely fixed), or that don't support the date_format query parameter, see Selecting the Date/Time Format. These cases are noted in the description of each endpoint. In cases where date_format is not supported, the format is always an integer number of milliseconds since the epoch—the client is never forced to use an ISO 8601-format time value.

Endpoints

Me

ENDPOINT

/me

Provides information about the authenticated user.

GET
/me

In addition to authenticating this request like other API requests, this request can be made with authentication using "basic auth" to pass the user's normal Pivotal Tracker login credentials (their email address or user name plus their password). In this way, client software can use the user's name and password to obtain their API Token, and then use that token to authenticate future API requests made on behalf of that user. Obviously, the user's password should not be stored or otherwise retained.

export TOKEN='your Pivotal Tracker API token'

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/me?fields=%3Adefault"

Hide Response
Headers
Response Body
{"accounts":[{"kind":"account_summary","id":100,"name":"Galactic Empire","status":"active","plan":"Enterprise"}],"api_token":"VadersToken","created_at":"2024-08-20T12:00:05Z","email":"vader@deathstar.mil","has_google_identity":false,"id":101,"initials":"DV","kind":"me","name":"Darth Vader","projects":[{"kind":"membership_summary","id":108,"project_id":98,"project_name":"Learn About the Force","project_color":"8100ea","favorite":false,"role":"owner","last_viewed_at":"2024-08-20T12:00:00Z"},{"kind":"membership_summary","id":101,"project_id":99,"project_name":"Death Star","project_color":"8100ea","favorite":false,"role":"member","last_viewed_at":"2024-08-20T12:00:00Z"}],"receives_in_app_notifications":true,"time_zone":{"kind":"time_zone","olson_name":"America/Los_Angeles","offset":"-08:00"},"twofactor_auth_enabled":false,"updated_at":"2024-08-20T12:00:10Z","username":"vader"}

curl -X GET --user vader:password "https://www.pivotaltracker.com/services/v5/me"

Hide Response
Headers
Response Body
{"accounts":[{"kind":"account_summary","id":100,"name":"Galactic Empire","status":"active","plan":"Enterprise"}],"api_token":"VadersToken","created_at":"2024-08-20T12:00:05Z","email":"vader@deathstar.mil","has_google_identity":false,"id":101,"initials":"DV","kind":"me","name":"Darth Vader","projects":[{"kind":"membership_summary","id":108,"project_id":98,"project_name":"Learn About the Force","project_color":"8100ea","favorite":false,"role":"owner","last_viewed_at":"2024-08-20T12:00:10Z"},{"kind":"membership_summary","id":101,"project_id":99,"project_name":"Death Star","project_color":"8100ea","favorite":false,"role":"member","last_viewed_at":"2024-08-20T12:00:10Z"}],"receives_in_app_notifications":true,"time_zone":{"kind":"time_zone","olson_name":"America/Los_Angeles","offset":"-08:00"},"twofactor_auth_enabled":false,"updated_at":"2024-08-20T12:00:10Z","username":"vader"}
Successful responses to this request return the me resource.

PARAMETERS

Only the information for the user matching the request authentication can be obtained. If a request is made to /me using basic-auth instead of an API Token, and the user does not yet have an API Token generated, Tracker will generate and store one, and return it in the response.
PUT
/me
Successful responses to this request return the me resource.

PARAMETERS

personal_settings
personal_settings in the request body.
 —  Settings for the authenticated user.
 
ENDPOINT

/my/people

Access a list of all the people you know

GET
/my/people

export TOKEN='your Pivotal Tracker API token'

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/my/people?project_id=99"

Hide Response
Headers
Response Body
[{"kind":"known_person","person":{"kind":"person","id":109,"name":"3D-4X administrative droid","email":"threedeefourx@sith.mil","initials":"3D4X","username":"threedeefourx"},"collaboration_factor":0},{"kind":"known_person","person":{"kind":"person","id":107,"name":"Bevel Lemelisk","email":"bevel@sith.mil","initials":"bl","username":"bevel"},"collaboration_factor":0},{"kind":"known_person","person":{"kind":"person","id":104,"name":"Clone TK421","email":"tk421@deathstar.mil","initials":"TK421","username":"tk421"},"collaboration_factor":1},{"kind":"known_person","person":{"kind":"person","id":101,"name":"Darth Vader","email":"vader@deathstar.mil","initials":"DV","username":"vader"},"collaboration_factor":2},{"kind":"known_person","person":{"kind":"person","id":100,"name":"Emperor Palpatine","email":"emperor@galacticrepublic.gov","initials":"EP","username":"palpatine"},"collaboration_factor":1},{"kind":"known_person","person":{"kind":"person","id":106,"name":"Galen Marek","email":"marek@sith.mil","initials":"GM","username":"starkiller"},"collaboration_factor":0},{"kind":"known_person","person":{"kind":"person","id":103,"name":"Moradmin Bast","email":"bast@deathstar.mil","initials":"MB","username":"bast"},"collaboration_factor":2},{"kind":"known_person","person":{"kind":"person","id":105,"name":"Robotic Maintenance Team 4","email":"I662@deathstar.mil","initials":"i662","username":"i662"},"collaboration_factor":1},{"kind":"known_person","person":{"kind":"person","id":114,"name":"Tarfang","email":"tarfang@example.com","initials":"TF","username":"tarfang"},"collaboration_factor":0},{"kind":"known_person","person":{"kind":"person","id":102,"name":"Wilhuff Tarkin","email":"governor@eriadu.gov","initials":"WT","username":"tarkin"},"collaboration_factor":1}]
Successful responses to this request return an array containing zero or more instances of the known_person resource.

PARAMETERS

project_id
int in the request query.
required  —  The project
 
filter_by
string in the request query.
 —  Optional parameter that will filter people by name, email address, initials, or username
 
offset
int[pos] in the request query.
 —  With the first known person in your known_people list as 0, the index of the first known person you want returned.
 
limit
int[pos] in the request query.
 —  The number of known people you want returned.
 
POST
/my/people

export TOKEN='your Pivotal Tracker API token'

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"emails":["threedeefourx@sith.mil","bevel@sith.mil","tk421@deathstar.mil","vader@deathstar.mil","emperor@galacticrepublic.gov","marek@sith.mil","bast@deathstar.mil","I662@deathstar.mil"]}' "https://www.pivotaltracker.com/services/v5/my/people"

View Response
Hide Response
Headers
Response Body
[{"kind":"known_person","person":{"kind":"person","id":109,"name":"3D-4X administrative droid","email":"threedeefourx@sith.mil","initials":"3D4X","username":"threedeefourx"},"collaboration_factor":0},{"kind":"known_person","person":{"kind":"person","id":107,"name":"Bevel Lemelisk","email":"bevel@sith.mil","initials":"bl","username":"bevel"},"collaboration_factor":0},{"kind":"known_person","person":{"kind":"person","id":104,"name":"Clone TK421","email":"tk421@deathstar.mil","initials":"TK421","username":"tk421"},"collaboration_factor":1},{"kind":"known_person","person":{"kind":"person","id":101,"name":"Darth Vader","email":"vader@deathstar.mil","initials":"DV","username":"vader"},"collaboration_factor":2},{"kind":"known_person","person":{"kind":"person","id":100,"name":"Emperor Palpatine","email":"emperor@galacticrepublic.gov","initials":"EP","username":"palpatine"},"collaboration_factor":1},{"kind":"known_person","person":{"kind":"person","id":106,"name":"Galen Marek","email":"marek@sith.mil","initials":"GM","username":"starkiller"},"collaboration_factor":0},{"kind":"known_person","person":{"kind":"person","id":103,"name":"Moradmin Bast","email":"bast@deathstar.mil","initials":"MB","username":"bast"},"collaboration_factor":2},{"kind":"known_person","person":{"kind":"person","id":105,"name":"Robotic Maintenance Team 4","email":"I662@deathstar.mil","initials":"i662","username":"i662"},"collaboration_factor":1}]
Successful responses to this request return an array containing zero or more instances of the known_person resource.

PARAMETERS

project_id
int in the request query.
required  —  The project
 
offset
int in the request query.
 —  With the first known person in your known_people list as 0, the index of the first known person you want returned.
 
limit
int in the request query.
 —  The number of known people you want returned.
 
emails
List[string] in the request body.
 —  Return the known people who match email addresses in this list
 

Notifications

ENDPOINT

/my/notifications

Provides a list of all notifications.

GET
/my/notifications

export TOKEN='your Pivotal Tracker API token'

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/my/notifications?envelope=true"

Hide Response
Headers
Response Body
{"data":[{"kind":"notification","id":22,"project":{"kind":"project","id":99,"name":"Death Star"},"performer":{"kind":"person","id":102,"name":"Wilhuff Tarkin"},"message":"Wilhuff Tarkin has made you an owner of this story:","notification_type":"story","new_attachment_count":0,"action":"ownership","story":{"kind":"story","id":559,"name":"All exhaust ports should be shielded"},"created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:20Z"},{"kind":"notification","id":18,"project":{"kind":"project","id":99,"name":"Death Star"},"performer":{"kind":"person","id":101,"name":"Darth Vader"},"message":"Darth Vader rejected your story","notification_type":"story","action":"rejection","story":{"kind":"story","id":559,"name":"All exhaust ports should be shielded"},"created_at":"2024-08-20T12:00:20Z","updated_at":"2024-08-20T12:00:20Z"},{"kind":"notification","id":8,"project":{"kind":"project","id":99,"name":"Death Star"},"performer":{"kind":"person","id":102,"name":"Wilhuff Tarkin"},"message":"Wilhuff Tarkin has made you an owner of this story","notification_type":"story","action":"ownership","story":{"kind":"story","id":559,"name":"All exhaust ports should be shielded"},"created_at":"2024-08-20T12:00:20Z","updated_at":"2024-08-20T12:00:20Z"},{"kind":"notification","id":5,"project":{"kind":"project","id":99,"name":"Death Star"},"performer":{"kind":"person","id":100,"name":"Emperor Palpatine"},"message":"Emperor Palpatine has made you an owner of this story","notification_type":"story","action":"ownership","story":{"kind":"story","id":551,"name":"Hire bounty hunters to bring in Solo"},"created_at":"2024-08-20T12:00:20Z","updated_at":"2024-08-20T12:00:20Z"},{"kind":"notification","id":21,"project":{"kind":"project","id":99,"name":"Death Star"},"performer":{"kind":"person","id":101,"name":"Darth Vader"},"message":"Darth Vader added the comment: \"Should we send a probe to Dantooine?\"","notification_type":"comment","new_attachment_count":0,"action":"create","epic":{"kind":"epic","id":5,"name":"Rebel Home Worlds"},"comment_id":110,"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:20Z","read_at":"2024-08-20T12:00:10Z"}],"http_status":"200","last_notification_timestamp":1724155220000}
Successful responses to this request return an array containing zero or more instances of the notification resource.

PARAMETERS

created_after
datetime in the request query.
 —  Show notifications created after this date/time. If this parameter or updated_after is not provided, the default is 10 days prior to the request time.
 
updated_after
datetime in the request query.
 —  Show notifications updated after this date/time.
 
notification_types
enumerated string in the request query.
 —  Filter which notifications are included in the response. Specifying :default or omitting a notification type will include "story", "epic", "comment", and "comment_with_mention" notification types. Specifying :all will include all types provided by default as well as new or experimental notification types.
Valid enumeration values: :all, :default
 
limit
int in the request query.
 —  Max number of notifications to retrieve. Defaults to 1000.
 
ENDPOINT

/my/notifications/mark_read

Marks all notifications read before a notification id.

PUT
/my/notifications/mark_read

export TOKEN='your Pivotal Tracker API token'

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/my/notifications/mark_read"

Hide Response
Headers

PARAMETERS

before
int in the request query.
required  —  Mark all notifications before this id as read (inclusive)
 
ENDPOINT

/my/notifications/read_list

Marks a list of notifications read.

PUT
/my/notifications/read_list

PARAMETERS

ids
List[int] in the request query.
required  —  List of notification ids to mark as read.
 
ENDPOINT

/people/{person_id}/notifications/since/{timestamp}

Provides a list of notifications. Unlike most endpoints that allow you to control the response format with url parameters, this endpoint will always return responses with an envelope and a date_format in milliseconds.

GET
/people/{person_id}/notifications/since/{timestamp}

export TOKEN='your Pivotal Tracker API token'

export PERSON_ID=104

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/people/$PERSON_ID/notifications/since/1723377600000"

Hide Response
Headers
Response Body
{"data":[{"kind":"notification","id":22,"project":{"kind":"project","id":99,"name":"Death Star"},"performer":{"kind":"person","id":102,"name":"Wilhuff Tarkin"},"message":"Wilhuff Tarkin has made you an owner of this story:","notification_type":"story","new_attachment_count":0,"action":"ownership","story":{"kind":"story","id":559,"name":"All exhaust ports should be shielded"},"created_at":1724155205000,"updated_at":1724155205000},{"kind":"notification","id":18,"project":{"kind":"project","id":99,"name":"Death Star"},"performer":{"kind":"person","id":101,"name":"Darth Vader"},"message":"Darth Vader rejected your story","notification_type":"story","action":"rejection","story":{"kind":"story","id":559,"name":"All exhaust ports should be shielded"},"created_at":1724155205000,"updated_at":1724155205000},{"kind":"notification","id":8,"project":{"kind":"project","id":99,"name":"Death Star"},"performer":{"kind":"person","id":102,"name":"Wilhuff Tarkin"},"message":"Wilhuff Tarkin has made you an owner of this story","notification_type":"story","action":"ownership","story":{"kind":"story","id":559,"name":"All exhaust ports should be shielded"},"created_at":1724155205000,"updated_at":1724155205000},{"kind":"notification","id":5,"project":{"kind":"project","id":99,"name":"Death Star"},"performer":{"kind":"person","id":100,"name":"Emperor Palpatine"},"message":"Emperor Palpatine has made you an owner of this story","notification_type":"story","action":"ownership","story":{"kind":"story","id":551,"name":"Hire bounty hunters to bring in Solo"},"created_at":1724155205000,"updated_at":1724155205000}],"http_status":"200"}
Successful responses to this request return an array containing zero or more instances of the notification resource.

PARAMETERS

person_id
int in the request path.
required  —  The ID of the person.
 
timestamp
datetime in the request path.
required  —  Show notifications created after this timestamp. The timestamp provided must match that of an existing notification. Note that this datetime must be specified in number of milliseconds since the epoch; it does not support ISO 8601 like other datetimes.
 
notification_types
enumerated string in the request query.
 —  Filter which notifications are included in the response. Specifying :default or omitting a notification type will include "story", "epic", "comment", and "comment_with_mention" notification types. Specifying :all will include all types provided by default as well as new or experimental notification types.
Valid enumeration values: :all, :default
 
limit
int in the request query.
 —  Max number of notifications to retrieve. Defaults to 500.
 
The standard formatting parameters cannot be included in requests for this operation. In particular, envelope= is prohibited and Tracker behaves as if envelope=true had been provided.
ENDPOINT

/my/notifications/{notification_id}

Access the notification specified by the notification_id value in the URL.

PUT
/my/notifications/{notification_id}

export TOKEN='your Pivotal Tracker API token'

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"read_at":"2024-08-20T12:00:00Z"}' "https://www.pivotaltracker.com/services/v5/my/notifications/22"

Hide Response
Headers
Response Body
{"action":"ownership","created_at":"2024-08-20T12:00:00Z","id":22,"kind":"notification","message":"Wilhuff Tarkin has made you an owner of this story:","new_attachment_count":0,"notification_type":"story","performer":{"kind":"person","id":102,"name":"Wilhuff Tarkin"},"project":{"kind":"project","id":99,"name":"Death Star"},"read_at":"2024-08-20T12:00:05Z","story":{"kind":"story","id":559,"name":"All exhaust ports should be shielded"},"updated_at":"2024-08-20T12:00:05Z"}
Successful responses to this request return the notification resource.

PARAMETERS

notification_id
int in the request path.
required  —  The ID of the notification.
 
read_at
datetime in the request body.
required  —  Time notification was read.
 

Projects

ENDPOINT

/projects

Access a user's projects

GET
/projects

export TOKEN='your Pivotal Tracker API token'

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects"

Hide Response
Headers
Response Body
[{"id":98,"kind":"project","name":"Learn About the Force","version":2,"iteration_length":1,"week_start_day":"Monday","point_scale":"0,1,2,3","point_scale_is_custom":false,"bugs_and_chores_are_estimatable":false,"automatic_planning":true,"enable_tasks":true,"time_zone":{"kind":"time_zone","olson_name":"America/Los_Angeles","offset":"-07:00"},"velocity_averaged_over":3,"number_of_done_iterations_to_show":4,"has_google_domain":false,"enable_incoming_emails":true,"initial_velocity":10,"public":false,"atom_enabled":true,"project_type":"private","start_time":"2024-08-20T12:00:05Z","created_at":"2024-08-20T12:00:10Z","updated_at":"2024-08-20T12:00:15Z","show_story_priority":true,"show_priority_icon":false,"show_priority_icon_in_all_panels":true,"account_id":100,"current_iteration_number":1,"enable_following":true},{"id":99,"kind":"project","name":"Death Star","version":66,"iteration_length":1,"week_start_day":"Monday","point_scale":"0,1,2,3","point_scale_is_custom":false,"bugs_and_chores_are_estimatable":false,"automatic_planning":true,"enable_tasks":true,"time_zone":{"kind":"time_zone","olson_name":"America/Los_Angeles","offset":"-07:00"},"velocity_averaged_over":3,"number_of_done_iterations_to_show":4,"has_google_domain":false,"description":"Expeditionary Battle Planetoid","profile_content":"This is a machine of war such as the universe has never known. It's colossal, the size of a class-four moon. And it possesses firepower unequaled in the history of warfare.","enable_incoming_emails":true,"initial_velocity":10,"public":false,"atom_enabled":true,"project_type":"private","start_date":"2024-05-06","start_time":"2024-08-20T12:00:15Z","created_at":"2024-08-20T12:00:10Z","updated_at":"2024-08-20T12:00:15Z","show_story_priority":true,"show_priority_icon":false,"show_priority_icon_in_all_panels":true,"account_id":100,"current_iteration_number":15,"enable_following":true}]

export TOKEN='your Pivotal Tracker API token'

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects?account_ids=100"

Hide Response
Headers
Response Body
[{"id":98,"kind":"project","name":"Learn About the Force","version":2,"iteration_length":1,"week_start_day":"Monday","point_scale":"0,1,2,3","point_scale_is_custom":false,"bugs_and_chores_are_estimatable":false,"automatic_planning":true,"enable_tasks":true,"time_zone":{"kind":"time_zone","olson_name":"America/Los_Angeles","offset":"-07:00"},"velocity_averaged_over":3,"number_of_done_iterations_to_show":4,"has_google_domain":false,"enable_incoming_emails":true,"initial_velocity":10,"public":false,"atom_enabled":true,"project_type":"private","start_time":"2024-08-20T12:00:05Z","created_at":"2024-08-20T12:00:10Z","updated_at":"2024-08-20T12:00:15Z","show_story_priority":true,"show_priority_icon":false,"show_priority_icon_in_all_panels":true,"account_id":100,"current_iteration_number":1,"enable_following":true},{"id":99,"kind":"project","name":"Death Star","version":66,"iteration_length":1,"week_start_day":"Monday","point_scale":"0,1,2,3","point_scale_is_custom":false,"bugs_and_chores_are_estimatable":false,"automatic_planning":true,"enable_tasks":true,"time_zone":{"kind":"time_zone","olson_name":"America/Los_Angeles","offset":"-07:00"},"velocity_averaged_over":3,"number_of_done_iterations_to_show":4,"has_google_domain":false,"description":"Expeditionary Battle Planetoid","profile_content":"This is a machine of war such as the universe has never known. It's colossal, the size of a class-four moon. And it possesses firepower unequaled in the history of warfare.","enable_incoming_emails":true,"initial_velocity":10,"public":false,"atom_enabled":true,"project_type":"private","start_date":"2024-05-06","start_time":"2024-08-20T12:00:15Z","created_at":"2024-08-20T12:00:10Z","updated_at":"2024-08-20T12:00:15Z","show_story_priority":true,"show_priority_icon":false,"show_priority_icon_in_all_panels":true,"account_id":100,"current_iteration_number":15,"enable_following":true}]
Successful responses to this request return an array containing zero or more instances of the project resource.

PARAMETERS

account_ids
string in the request query.
 —  A comma separated list of account ids whose projects should be returned
 
POST
/projects

export TOKEN='your Pivotal Tracker API token'

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"name":"Executioner"}' "https://www.pivotaltracker.com/services/v5/projects"

View Response
Hide Response
Headers
Response Body
{"account_id":100,"atom_enabled":false,"automatic_planning":true,"bugs_and_chores_are_estimatable":false,"created_at":"2024-08-20T12:00:05Z","current_iteration_number":1,"enable_following":true,"enable_incoming_emails":true,"enable_tasks":true,"has_google_domain":false,"id":1900,"initial_velocity":10,"iteration_length":1,"kind":"project","name":"Executioner","number_of_done_iterations_to_show":4,"point_scale":"0,1,2,3","point_scale_is_custom":false,"project_type":"private","public":false,"show_priority_icon":false,"show_priority_icon_in_all_panels":true,"show_story_priority":false,"start_time":"2024-08-20T12:00:00Z","time_zone":{"kind":"time_zone","olson_name":"America/Los_Angeles","offset":"-07:00"},"updated_at":"2024-08-20T12:00:05Z","velocity_averaged_over":3,"version":1,"week_start_day":"Monday"}
Successful responses to this request return the project resource.

PARAMETERS

no_owner
boolean in the request body.
 —  By default, the user whose credentials are supplied will be added as a project owner. To leave the project without this owner, supply the no_owner key.
 
new_account_name
string[100] in the request body.
 —  If specified, creates a new account with the specified name, and adds the new project to that account.
 
name
extended string[50] in the request body.
 —  The name of the project.
 
status
string in the request body.
 —  The status of the project.
 
iteration_length
int in the request body.
 —  The number of weeks in an iteration.
 
week_start_day
enumerated string in the request body.
 —  The day in the week the project's iterations are to start on.
Valid enumeration values: Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
 
point_scale
string[255] in the request body.
 —  The specification for the "point scale" available for entering story estimates within the project. It is specified as a comma-delimited series of values--any value that would be acceptable on the Project Settings page of the Tracker web application may be used here. If an exact match to one of the built-in point scales, the project will use that point scale. If another comma-separated point-scale string is passed, it will be treated as a "custom" point scale. The built-in scales are "0,1,2,3", "0,1,2,4,8", and "0,1,2,3,5,8".
 
bugs_and_chores_are_estimatable
boolean in the request body.
 —  When true, Tracker will allow estimates to be set on Bug- and Chore-type stories. This is strongly not recommended. Please see the FAQ for more information.
 
automatic_planning
boolean in the request body.
 —  When false, Tracker suspends the emergent planning of iterations based on the project's velocity, and allows users to manually control the set of unstarted stories included in the Current iteration. See the FAQ for more information.
 
enable_tasks
boolean in the request body.
 —  When true, Tracker allows individual tasks to be created and managed within each story in the project.
 
show_story_priority
boolean in the request body.
 —  When true, Tracker allows Priority field to be hidden within each story in the project.
 
show_priority_icon
boolean in the request body.
 —  When true, Tracker allows Priority field to be hidden within each story in the project.
 
show_priority_icon_in_all_panels
boolean in the request body.
 —  When true, Tracker allows Priority field to be hidden within each story in the project.
 
start_date
date in the request body.
 —  The first day that should be in an iteration of the project. If both this and "week_start_day" are supplied, they must be consistent. It is specified as a string in the format "YYYY-MM-DD" with "01" for January. If this is not supplied, it will remain blank (null), but "start_time" will have a default value based on the stories in the project. If a value is supplied for start_date, but that date is later than the accepted_at date of the earliest accepted story in your project, start_time will be based on the accepted_at date of the earliest accepted story.
 
time_zone
time_zone in the request body.
 —  The "native" time zone for the project, independent of the time zone(s) from which members of the project view or modify it.
 
velocity_averaged_over
int in the request body.
 —  The number of iterations that should be used when averaging the number of points of Done stories in order to compute the project's velocity.
 
number_of_done_iterations_to_show
int in the request body.
 —  There are areas within the Tracker UI and the API in which sets of stories automatically exclude the Done stories contained in older iterations. For example, in the web UI, the DONE panel doesn't necessarily show all Done stories by default, and provides a link to click to cause the full story set to be loaded/displayed. The value of this attribute is the maximum number of Done iterations that will be loaded/shown/included in these areas.
 
description
extended string[140] in the request body.
 —  A description of the project's content. Entered through the web UI on the Project Settings page.
 
profile_content
extended string[65535] in the request body.
 —  A long description of the project. This is displayed on the Project Overview page in the Tracker web UI.
 
enable_incoming_emails
boolean in the request body.
 —  When true, the project will accept incoming email responses to Tracker notification emails and convert them to comments on the appropriate stories.
 
initial_velocity
int in the request body.
 —  The number which should be used as the project's velocity when there are not enough recent iterations with Done stories for an actual velocity to be computed.
 
project_type
enumerated string in the request body.
 —  The project's type which determines visibility and permissions [demo is deprecated].
Valid enumeration values: demo, private, public, shared
 
public
boolean in the request body.
 —  When true, Tracker will allow any user on the web to view the content of the project. The project will not count toward the limits of a paid subscription, and may be included on Tracker's Public Projects listing page.
 
atom_enabled
boolean in the request body.
 —  When true, Tracker allows people to subscribe to the Atom (RSS, XML) feed of project changes.
 
account_id
int in the request body.
 —  The ID number for the account which contains the project.
 
join_as
enumerated string in the request body.
 —  The default join_as value for the project [viewer, member].
Valid enumeration values: owner, member, viewer
 
The new project is created with the currently-authenticated user as its original Owner. The server will supply a default value for any optional parameter that the request doesn't include. The default values are not defined as part of the API--they may change from time to time without an increase in the current API version number. Additionally, new project attributes may be added at any time without advance notice. The client will know what values the server has supplied from the response to the request. If the value set for a project attribute is important to an application, it should be included explicitly in the request without relying on the server to supply the default.

Project

ENDPOINT

/projects/{project_id}

Access the project specified by the project_id value in the URL.

GET
/projects/{project_id}

export TOKEN='your Pivotal Tracker API token'

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/99"

Hide Response
Headers
Response Body
{"account_id":100,"atom_enabled":true,"automatic_planning":true,"bugs_and_chores_are_estimatable":false,"created_at":"2024-08-20T12:00:05Z","current_iteration_number":15,"description":"Expeditionary Battle Planetoid","enable_following":true,"enable_incoming_emails":true,"enable_tasks":true,"has_google_domain":false,"id":99,"initial_velocity":10,"iteration_length":1,"kind":"project","name":"Death Star","number_of_done_iterations_to_show":4,"point_scale":"0,1,2,3","point_scale_is_custom":false,"profile_content":"This is a machine of war such as the universe has never known. It's colossal, the size of a class-four moon. And it possesses firepower unequaled in the history of warfare.","project_type":"private","public":false,"show_priority_icon":false,"show_priority_icon_in_all_panels":true,"show_story_priority":true,"start_date":"2024-05-06","start_time":"2024-08-20T12:00:10Z","time_zone":{"kind":"time_zone","olson_name":"America/Los_Angeles","offset":"-07:00"},"updated_at":"2024-08-20T12:00:10Z","velocity_averaged_over":3,"version":66,"week_start_day":"Monday"}
Successful responses to this request return the project resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
PUT
/projects/{project_id}

export TOKEN='your Pivotal Tracker API token'

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"name":"totally a new project name"}' "https://www.pivotaltracker.com/services/v5/projects/99"

Hide Response
Headers
Response Body
{"account_id":100,"atom_enabled":true,"automatic_planning":true,"bugs_and_chores_are_estimatable":false,"created_at":"2024-08-20T12:00:05Z","current_iteration_number":15,"description":"Expeditionary Battle Planetoid","enable_following":true,"enable_incoming_emails":true,"enable_tasks":true,"has_google_domain":false,"id":99,"initial_velocity":10,"iteration_length":1,"kind":"project","name":"totally a new project name","number_of_done_iterations_to_show":4,"point_scale":"0,1,2,3","point_scale_is_custom":false,"profile_content":"This is a machine of war such as the universe has never known. It's colossal, the size of a class-four moon. And it possesses firepower unequaled in the history of warfare.","project_type":"private","public":false,"show_priority_icon":false,"show_priority_icon_in_all_panels":true,"show_story_priority":true,"start_date":"2024-05-06","start_time":"2024-08-20T12:00:00Z","time_zone":{"kind":"time_zone","olson_name":"America/Los_Angeles","offset":"-07:00"},"updated_at":"2024-08-20T12:00:10Z","velocity_averaged_over":3,"version":67,"week_start_day":"Monday"}
Successful responses to this request return the project resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
name
extended string[50] in the request body.
 —  The name of the project.
 
status
string in the request body.
 —  The status of the project.
 
iteration_length
int in the request body.
 —  The number of weeks in an iteration.
 
week_start_day
enumerated string in the request body.
 —  The day in the week the project's iterations are to start on.
Valid enumeration values: Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
 
point_scale
string[255] in the request body.
 —  The specification for the "point scale" available for entering story estimates within the project. It is specified as a comma-delimited series of values--any value that would be acceptable on the Project Settings page of the Tracker web application may be used here. If an exact match to one of the built-in point scales, the project will use that point scale. If another comma-separated point-scale string is passed, it will be treated as a "custom" point scale. The built-in scales are "0,1,2,3", "0,1,2,4,8", and "0,1,2,3,5,8".
 
bugs_and_chores_are_estimatable
boolean in the request body.
 —  When true, Tracker will allow estimates to be set on Bug- and Chore-type stories. This is strongly not recommended. Please see the FAQ for more information.
 
automatic_planning
boolean in the request body.
 —  When false, Tracker suspends the emergent planning of iterations based on the project's velocity, and allows users to manually control the set of unstarted stories included in the Current iteration. See the FAQ for more information.
 
enable_tasks
boolean in the request body.
 —  When true, Tracker allows individual tasks to be created and managed within each story in the project.
 
show_story_priority
boolean in the request body.
 —  When true, Tracker allows Priority field to be hidden within each story in the project.
 
show_priority_icon
boolean in the request body.
 —  When true, Tracker allows Priority field to be hidden within each story in the project.
 
show_priority_icon_in_all_panels
boolean in the request body.
 —  When true, Tracker allows Priority field to be hidden within each story in the project.
 
start_date
date in the request body.
 —  The first day that should be in an iteration of the project. If both this and "week_start_day" are supplied, they must be consistent. It is specified as a string in the format "YYYY-MM-DD" with "01" for January. If this is not supplied, it will remain blank (null), but "start_time" will have a default value based on the stories in the project. If a value is supplied for start_date, but that date is later than the accepted_at date of the earliest accepted story in your project, start_time will be based on the accepted_at date of the earliest accepted story.
 
time_zone
time_zone in the request body.
 —  The "native" time zone for the project, independent of the time zone(s) from which members of the project view or modify it.
 
velocity_averaged_over
int in the request body.
 —  The number of iterations that should be used when averaging the number of points of Done stories in order to compute the project's velocity.
 
number_of_done_iterations_to_show
int in the request body.
 —  There are areas within the Tracker UI and the API in which sets of stories automatically exclude the Done stories contained in older iterations. For example, in the web UI, the DONE panel doesn't necessarily show all Done stories by default, and provides a link to click to cause the full story set to be loaded/displayed. The value of this attribute is the maximum number of Done iterations that will be loaded/shown/included in these areas.
 
description
extended string[140] in the request body.
 —  A description of the project's content. Entered through the web UI on the Project Settings page.
 
profile_content
extended string[65535] in the request body.
 —  A long description of the project. This is displayed on the Project Overview page in the Tracker web UI.
 
enable_incoming_emails
boolean in the request body.
 —  When true, the project will accept incoming email responses to Tracker notification emails and convert them to comments on the appropriate stories.
 
initial_velocity
int in the request body.
 —  The number which should be used as the project's velocity when there are not enough recent iterations with Done stories for an actual velocity to be computed.
 
project_type
enumerated string in the request body.
 —  The project's type which determines visibility and permissions [demo is deprecated].
Valid enumeration values: demo, private, public, shared
 
public
boolean in the request body.
 —  When true, Tracker will allow any user on the web to view the content of the project. The project will not count toward the limits of a paid subscription, and may be included on Tracker's Public Projects listing page.
 
atom_enabled
boolean in the request body.
 —  When true, Tracker allows people to subscribe to the Atom (RSS, XML) feed of project changes.
 
account_id
int in the request body.
 —  The ID number for the account which contains the project.
 
join_as
enumerated string in the request body.
 —  The default join_as value for the project [viewer, member].
Valid enumeration values: owner, member, viewer
 
DELETE
/projects/{project_id}

export TOKEN='your Pivotal Tracker API token'

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/99"

Hide Response
Headers

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 

Iterations

ENDPOINT

/projects/{project_id}/iterations

Allows iterations to be retrieved, with optional scope, limit and offset. For the 'Done' scope, a negative offset can be passed, which specifies the number of iterations preceding the 'Current' iteration. Note that iterations are ordered with the oldest (lowest iteration number) first.

GET
/projects/{project_id}/iterations

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/iterations?limit=10&offset=1"

Hide Response
Headers
Response Body
[{"number":2,"project_id":99,"length":1,"team_strength":1,"stories":[{"kind":"story","id":563,"created_at":"2024-08-20T12:01:00Z","updated_at":"2024-08-20T12:01:00Z","accepted_at":"2024-08-20T12:00:05Z","estimate":3,"story_type":"feature","story_priority":"p3","name":"Complete construction of the Expeditionary Battle Planetoid","description":"Palpatine was impressed with the PoC, make this one bigger","current_state":"accepted","requested_by_id":102,"external_id":"abc123","integration_id":30,"url":"http://localhost/story/show/563","project_id":99,"owner_ids":[102,101],"labels":[{"id":2009,"project_id":99,"kind":"label","name":"plans","created_at":"2024-08-20T12:01:00Z","updated_at":"2024-08-20T12:01:00Z"}],"owned_by_id":102}],"start":"2024-08-20T12:01:00Z","finish":"2024-08-20T12:00:10Z","kind":"iteration"},{"number":3,"project_id":99,"length":1,"team_strength":1,"stories":[],"start":"2024-08-20T12:00:10Z","finish":"2024-08-20T12:00:15Z","kind":"iteration"},{"number":4,"project_id":99,"length":1,"team_strength":1,"stories":[],"start":"2024-08-20T12:00:15Z","finish":"2024-08-20T12:00:20Z","kind":"iteration"},{"number":5,"project_id":99,"length":1,"team_strength":1,"stories":[],"start":"2024-08-20T12:00:20Z","finish":"2024-08-20T12:00:25Z","kind":"iteration"},{"number":6,"project_id":99,"length":1,"team_strength":1,"stories":[],"start":"2024-08-20T12:00:25Z","finish":"2024-08-20T12:00:30Z","kind":"iteration"},{"number":7,"project_id":99,"length":1,"team_strength":1,"stories":[],"start":"2024-08-20T12:00:30Z","finish":"2024-08-20T12:00:35Z","kind":"iteration"},{"number":8,"project_id":99,"length":1,"team_strength":1,"stories":[],"start":"2024-08-20T12:00:35Z","finish":"2024-08-20T12:00:40Z","kind":"iteration"},{"number":9,"project_id":99,"length":1,"team_strength":1,"stories":[],"start":"2024-08-20T12:00:40Z","finish":"2024-08-20T12:00:45Z","kind":"iteration"},{"number":10,"project_id":99,"length":1,"team_strength":1,"stories":[],"start":"2024-08-20T12:00:45Z","finish":"2024-08-20T12:00:50Z","kind":"iteration"},{"number":11,"project_id":99,"length":1,"team_strength":1,"stories":[],"start":"2024-08-20T12:00:50Z","finish":"2024-08-20T12:00:55Z","kind":"iteration"}]
Successful responses to this request return an array containing zero or more instances of the iteration resource. The response from this request is paginated, see Paginating List Responses.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
offset
int in the request query.
 —  The offset of first iteration to return, relative to the set of iterations specified by 'scope', with zero being the first iteration in the scope. Defaults to zero. For the 'Done' scope, negative numbers can be passed, which specifies the number of iterations preceding the 'Current' iteration.
 
label
extended string in the request query.
 —  The label to filter on
 
limit
int in the request query.
 —  The number of iterations to return relative to the offset.
 
scope
enumerated string in the request query.
 —  Restricts the state of iterations to return. If not specified, it defaults to all iterations including done.
Valid enumeration values: done, current, backlog, current_backlog, done_current
 
ENDPOINT

/projects/{project_id}/iterations/{iteration_number}

Allows an iteration to be retrieved.

GET
/projects/{project_id}/iterations/{iteration_number}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/iterations/15"

Hide Response
Headers
Response Body
{"finish":"2024-08-20T12:00:10Z","kind":"iteration","length":1,"number":15,"project_id":99,"start":"2024-08-20T12:00:05Z","stories":[{"kind":"story","id":558,"project_id":99,"name":"Contact Lando","story_type":"feature","current_state":"accepted","estimate":1,"accepted_at":"2024-08-20T12:00:05Z","requested_by_id":101,"owner_ids":[],"labels":[],"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/558","story_priority":"p3"},{"kind":"story","id":560,"project_id":99,"name":"Destroy Alderaan","description":"Dantooine is too remote to make an effective demonstration.","story_type":"feature","current_state":"accepted","estimate":1,"accepted_at":"2024-08-20T12:00:05Z","requested_by_id":102,"owned_by_id":101,"owner_ids":[101,105],"labels":[{"kind":"label","id":2008,"project_id":99,"name":"rebel bases","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"}],"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/560","story_priority":"p3"},{"kind":"story","id":556,"project_id":99,"name":"Interrogate Leia Organa","description":"She is proving to be resistant to our mind probes","story_type":"feature","current_state":"started","estimate":2,"requested_by_id":101,"owned_by_id":101,"owner_ids":[101,105],"labels":[{"kind":"label","id":2009,"project_id":99,"name":"plans","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"},{"kind":"label","id":2008,"project_id":99,"name":"rebel bases","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"}],"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/556","story_priority":"p3"},{"kind":"story","id":559,"project_id":99,"name":"All exhaust ports should be shielded","description":"ray shielded, that is.","story_type":"feature","current_state":"rejected","estimate":3,"requested_by_id":102,"owned_by_id":104,"owner_ids":[104],"labels":[{"kind":"label","id":2009,"project_id":99,"name":"plans","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"}],"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/559","story_priority":"p3"}],"team_strength":1}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/iterations/15?fields=number%2Cproject_id%2Clength%2Cteam_strength%2Cstories%2Cstart%2Cfinish%2Ckind%2Cvelocity"

Hide Response
Headers
Response Body
{"finish":"2024-08-20T12:00:10Z","kind":"iteration","length":1,"number":15,"project_id":99,"start":"2024-08-20T12:00:05Z","stories":[{"kind":"story","id":558,"project_id":99,"name":"Contact Lando","story_type":"feature","current_state":"accepted","estimate":1,"accepted_at":"2024-08-20T12:00:05Z","requested_by_id":101,"owner_ids":[],"labels":[],"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/558","story_priority":"p3"},{"kind":"story","id":560,"project_id":99,"name":"Destroy Alderaan","description":"Dantooine is too remote to make an effective demonstration.","story_type":"feature","current_state":"accepted","estimate":1,"accepted_at":"2024-08-20T12:00:05Z","requested_by_id":102,"owned_by_id":101,"owner_ids":[101,105],"labels":[{"kind":"label","id":2008,"project_id":99,"name":"rebel bases","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"}],"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/560","story_priority":"p3"},{"kind":"story","id":556,"project_id":99,"name":"Interrogate Leia Organa","description":"She is proving to be resistant to our mind probes","story_type":"feature","current_state":"started","estimate":2,"requested_by_id":101,"owned_by_id":101,"owner_ids":[101,105],"labels":[{"kind":"label","id":2009,"project_id":99,"name":"plans","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"},{"kind":"label","id":2008,"project_id":99,"name":"rebel bases","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"}],"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/556","story_priority":"p3"},{"kind":"story","id":559,"project_id":99,"name":"All exhaust ports should be shielded","description":"ray shielded, that is.","story_type":"feature","current_state":"rejected","estimate":3,"requested_by_id":102,"owned_by_id":104,"owner_ids":[104],"labels":[{"kind":"label","id":2009,"project_id":99,"name":"plans","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"}],"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/559","story_priority":"p3"}],"team_strength":1,"velocity":1}
Successful responses to this request return the iteration resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
iteration_number
int in the request path.
required  —  The iteration number.
 
label
extended string in the request query.
 —  The label to filter on
 
ENDPOINT

/projects/{project_id}/iteration_overrides/{iteration_number}

Operations on an individual iteration's overrides.

PUT
/projects/{project_id}/iteration_overrides/{iteration_number}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"length":5,"team_strength":0.7}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/iteration_overrides/3"

Hide Response
Headers
Response Body
{"kind":"iteration_override","length":5,"number":3,"project_id":99,"team_strength":0.7}
Successful responses to this request return the iteration_override resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
iteration_number
int in the request path.
required  —  The iteration number.
 
length
int in the request body.
 —  Iteration length in weeks.
 
team_strength
float in the request body.
 —  Iteration team strength, 1.0 is full-strength.
 
ENDPOINT

/projects/{project_id}/iterations/{iteration_number}/analytics

Gets analytics for the specified iteration. The iteration must fall entirely within the last six months.

GET
/projects/{project_id}/iterations/{iteration_number}/analytics

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export ITERATION_ID=15

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/iterations/$ITERATION_ID/analytics"

Hide Response
Headers
Response Body
{"bugs_created":2,"cycle_time":0,"kind":"analytics","rejection_rate":25.0,"stories_accepted":2}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export ITERATION_ID=15

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/iterations/$ITERATION_ID/analytics.csv"

Hide Response
Headers
Response Body
stories_accepted,bugs_created,cycle_time,rejection_rate
2,2,0,25.0
Successful responses to this request return the analytics resource. The response from this request can be encoded in CSV, see CSV Response Format.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
iteration_number
int in the request path.
required  —  The iteration number.
 
ENDPOINT

/projects/{project_id}/iterations/{iteration_number}/analytics/cycle_time_details

Gets cycle time details for the stories in the specified iteration. The iteration must fall entirely within the last six months.

GET
/projects/{project_id}/iterations/{iteration_number}/analytics/cycle_time_details

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=101

export ITERATION_ID=3

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/iterations/$ITERATION_ID/analytics/cycle_time_details"

Hide Response
Headers
Response Body
[{"kind":"cycle_time_details","total_cycle_time":309600000,"started_time":91880000,"started_count":1,"finished_time":217720000,"finished_count":1,"delivered_time":0,"delivered_count":1,"rejected_time":0,"rejected_count":0,"story_id":2141},{"kind":"cycle_time_details","total_cycle_time":550800000,"started_time":432000000,"started_count":1,"finished_time":0,"finished_count":1,"delivered_time":118800000,"delivered_count":1,"rejected_time":0,"rejected_count":0,"story_id":2117},{"kind":"cycle_time_details","total_cycle_time":646068000,"started_time":214068000,"started_count":1,"finished_time":473000,"finished_count":2,"delivered_time":222727000,"delivered_count":2,"rejected_time":208800000,"rejected_count":1,"story_id":2144},{"kind":"cycle_time_details","total_cycle_time":649693000,"started_time":217693000,"started_count":1,"finished_time":209418000,"finished_count":1,"delivered_time":222582000,"delivered_count":1,"rejected_time":0,"rejected_count":0,"story_id":2142},{"kind":"cycle_time_details","total_cycle_time":1328400000,"started_time":1328400000,"started_count":1,"finished_time":0,"finished_count":0,"delivered_time":0,"delivered_count":0,"rejected_time":0,"rejected_count":0,"story_id":2115},{"kind":"cycle_time_details","total_cycle_time":881149000,"started_time":525367000,"started_count":1,"finished_time":21745000,"finished_count":1,"delivered_time":334037000,"delivered_count":1,"rejected_time":0,"rejected_count":0,"story_id":2119}]

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export ITERATION_ID=15

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/iterations/$ITERATION_ID/analytics/cycle_time_details.csv"

Hide Response
Headers
Response Body
State,Type,Estimate,Title,ID,Labels,Total Cycle Time (Seconds),Started Time (Seconds),Started Count,Finished Time (Seconds),Finished Count,Delivered Time (Seconds),Delivered Count,Rejected Time (Seconds),Rejected Count,Owned By,Owned By
accepted,feature,1,Contact Lando,558,"r&d,rebel bases",,0,0,0,0,0,0,0,0,,
accepted,feature,1,Destroy Alderaan,560,rebel bases,,0,1,0,1,0,1,0,0,Darth Vader,Robotic Maintenance Team 4
started,feature,2,Interrogate Leia Organa,556,"plans,rebel bases",86400,86400,1,0,0,0,0,0,0,Darth Vader,Robotic Maintenance Team 4
rejected,bug,,All exhaust ports should be shielded,559,plans,86400,0,1,0,1,0,1,86400,1,Darth Vader,Moradmin Bast
Successful responses to this request return an array containing zero or more instances of the cycle_time_details resource. The response from this request can be encoded in CSV, see CSV Response Format.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
iteration_number
int in the request path.
required  —  The iteration number.
 

Project Memberships

ENDPOINT

/projects/{project_id}/memberships

Membership operations.

POST
/projects/{project_id}/memberships

Note that currently none of our endpoints will return memberships marked as inactive for a person. This is likely to change with future additions to the V5 API, but as of right now, no responses should contain references to users who do not have active access to your project.

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"email":"marek@sith.mil","role":"member"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/memberships"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","favorite":false,"id":16200,"kind":"project_membership","person":{"kind":"person","id":106,"name":"Galen Marek","email":"marek@sith.mil","initials":"GM","username":"starkiller"},"project_color":"b800bb","project_id":99,"role":"member","updated_at":"2024-08-20T12:00:00Z","wants_comment_notification_emails":true,"will_receive_mention_notifications_or_emails":true}
Successful responses to this request return the project_membership resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
role
enumerated string in the request query.
 —  The role the user will assume on the project.
Valid enumeration values: owner, member, viewer
 
email
string in the request query.
 —  The email address of a new/existing Tracker user to be added to this project.
 
name
string in the request query.
 —  The name to be given to a new Tracker user, should a user with the given email address not already exist.
 
initials
string in the request query.
 —  The initials to be given to a new Tracker user, should a user with the given email address not already exist.
 
project_color
string in the request query.
 —  The hex-value color to give the project in multi-project views
 
favorite
boolean in the request query.
 —  The boolean to determine is a one of a user's favorites
 
GET
/projects/{project_id}/memberships

Note that currently none of our endpoints will return memberships marked as inactive for a person. This is likely to change with future additions to the V5 API, but as of right now, no responses should contain references to users who do not have active access to your project.

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/memberships"

Hide Response
Headers
Response Body
[{"kind":"project_membership","project_id":99,"id":100,"last_viewed_at":"2024-08-20T12:00:10Z","created_at":"2024-08-20T12:00:10Z","updated_at":"2024-08-20T12:00:10Z","role":"owner","project_color":"8100ea","favorite":false,"wants_comment_notification_emails":false,"will_receive_mention_notifications_or_emails":true,"person":{"kind":"person","id":100,"name":"Emperor Palpatine","email":"emperor@galacticrepublic.gov","initials":"EP","username":"palpatine"}},{"kind":"project_membership","project_id":99,"id":101,"last_viewed_at":"2024-08-20T12:00:10Z","created_at":"2024-08-20T12:00:10Z","updated_at":"2024-08-20T12:00:10Z","role":"member","project_color":"8100ea","favorite":false,"wants_comment_notification_emails":true,"will_receive_mention_notifications_or_emails":true,"person":{"kind":"person","id":101,"name":"Darth Vader","email":"vader@deathstar.mil","initials":"DV","username":"vader"}},{"kind":"project_membership","project_id":99,"id":102,"last_viewed_at":"2024-08-20T12:00:10Z","created_at":"2024-08-20T12:00:10Z","updated_at":"2024-08-20T12:00:10Z","role":"owner","project_color":"8100ea","favorite":false,"wants_comment_notification_emails":false,"will_receive_mention_notifications_or_emails":true,"person":{"kind":"person","id":102,"name":"Wilhuff Tarkin","email":"governor@eriadu.gov","initials":"WT","username":"tarkin"}},{"kind":"project_membership","project_id":99,"id":103,"last_viewed_at":"2024-08-20T12:00:10Z","created_at":"2024-08-20T12:00:10Z","updated_at":"2024-08-20T12:00:10Z","role":"member","project_color":"8100ea","favorite":false,"wants_comment_notification_emails":true,"will_receive_mention_notifications_or_emails":true,"person":{"kind":"person","id":104,"name":"Clone TK421","email":"tk421@deathstar.mil","initials":"TK421","username":"tk421"}},{"kind":"project_membership","project_id":99,"id":104,"last_viewed_at":"2024-08-20T12:00:10Z","created_at":"2024-08-20T12:00:10Z","updated_at":"2024-08-20T12:00:10Z","role":"member","project_color":"8100ea","favorite":false,"wants_comment_notification_emails":true,"will_receive_mention_notifications_or_emails":true,"person":{"kind":"person","id":103,"name":"Moradmin Bast","email":"bast@deathstar.mil","initials":"MB","username":"bast"}},{"kind":"project_membership","project_id":99,"id":105,"last_viewed_at":"2024-08-20T12:00:10Z","created_at":"2024-08-20T12:00:10Z","updated_at":"2024-08-20T12:00:10Z","role":"member","project_color":"8100ea","favorite":false,"wants_comment_notification_emails":true,"will_receive_mention_notifications_or_emails":true,"person":{"kind":"person","id":105,"name":"Robotic Maintenance Team 4","email":"I662@deathstar.mil","initials":"i662","username":"i662"}},{"kind":"project_membership","project_id":99,"id":107,"last_viewed_at":"2024-08-20T12:00:05Z","created_at":"2024-08-20T12:00:10Z","updated_at":"2024-08-20T12:00:10Z","role":"viewer","project_color":"8100ea","favorite":false,"wants_comment_notification_emails":false,"will_receive_mention_notifications_or_emails":true,"person":{"kind":"person","id":107,"name":"Bevel Lemelisk","email":"bevel@sith.mil","initials":"bl","username":"bevel"}}]
Successful responses to this request return the project_membership resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
sort_by
enumerated string in the request query.
 —  The field to sort by. Default is id
Valid enumeration values: name
 
ENDPOINT

/projects/{project_id}/memberships/{membership_id}

Membership operations.

GET
/projects/{project_id}/memberships/{membership_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/memberships/102"

Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:05Z","favorite":false,"id":102,"kind":"project_membership","last_viewed_at":"2024-08-20T12:00:05Z","person":{"kind":"person","id":102,"name":"Wilhuff Tarkin","email":"governor@eriadu.gov","initials":"WT","username":"tarkin"},"project_color":"8100ea","project_id":99,"role":"owner","updated_at":"2024-08-20T12:00:05Z","wants_comment_notification_emails":false,"will_receive_mention_notifications_or_emails":true}
Successful responses to this request return the project_membership resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
membership_id
int in the request path.
required  —  The ID of the membership.
 
DELETE
/projects/{project_id}/memberships/{membership_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/memberships/104"

Hide Response
Headers

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
membership_id
int in the request path.
required  —  The ID of the membership.
 
PUT
/projects/{project_id}/memberships/{membership_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"role":"viewer"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/memberships/104"

Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:05Z","favorite":false,"id":104,"kind":"project_membership","last_viewed_at":"2024-08-20T12:00:05Z","person":{"kind":"person","id":103,"name":"Moradmin Bast","email":"bast@deathstar.mil","initials":"MB","username":"bast"},"project_color":"8100ea","project_id":99,"role":"viewer","updated_at":"2024-08-20T12:00:10Z","wants_comment_notification_emails":true,"will_receive_mention_notifications_or_emails":true}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"favorite":true,"project_color":"ffffff"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/memberships/104"

Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:05Z","favorite":true,"id":104,"kind":"project_membership","last_viewed_at":"2024-08-20T12:00:05Z","person":{"kind":"person","id":103,"name":"Moradmin Bast","email":"bast@deathstar.mil","initials":"MB","username":"bast"},"project_color":"ffffff","project_id":99,"role":"member","updated_at":"2024-08-20T12:00:10Z","wants_comment_notification_emails":true,"will_receive_mention_notifications_or_emails":true}
Successful responses to this request return the project_membership resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
membership_id
int in the request path.
required  —  The ID of the membership.
 
role
enumerated string in the request body.
 —  The role the user will assume on the project
Valid enumeration values: owner, member, viewer
 
project_color
string in the request body.
 —  The hex-value color to give the project in multi-project views
 
favorite
boolean in the request query.
 —  The boolean to determine is a one of a user's favorites
 

Account Memberships

ENDPOINT

/accounts/{account_id}/memberships

Membership operations.

GET
/accounts/{account_id}/memberships

export TOKEN='your Pivotal Tracker API token'

export ACCOUNT_ID=100

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/accounts/$ACCOUNT_ID/memberships"

Hide Response
Headers
Response Body
[{"kind":"account_membership","id":100,"person":{"kind":"person","id":100,"name":"Emperor Palpatine","email":"emperor@galacticrepublic.gov","initials":"EP","username":"palpatine"},"account_id":100,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","owner":true,"admin":false,"project_creator":false},{"kind":"account_membership","id":101,"person":{"kind":"person","id":101,"name":"Darth Vader","email":"vader@deathstar.mil","initials":"DV","username":"vader"},"account_id":100,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","owner":false,"admin":true,"project_creator":false},{"kind":"account_membership","id":102,"person":{"kind":"person","id":102,"name":"Wilhuff Tarkin","email":"governor@eriadu.gov","initials":"WT","username":"tarkin"},"account_id":100,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","owner":false,"admin":false,"project_creator":false},{"kind":"account_membership","id":103,"person":{"kind":"person","id":103,"name":"Moradmin Bast","email":"bast@deathstar.mil","initials":"MB","username":"bast"},"account_id":100,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","owner":false,"admin":false,"project_creator":false},{"kind":"account_membership","id":104,"person":{"kind":"person","id":104,"name":"Clone TK421","email":"tk421@deathstar.mil","initials":"TK421","username":"tk421"},"account_id":100,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","owner":false,"admin":false,"project_creator":false},{"kind":"account_membership","id":106,"person":{"kind":"person","id":106,"name":"Galen Marek","email":"marek@sith.mil","initials":"GM","username":"starkiller"},"account_id":100,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","owner":false,"admin":false,"project_creator":false},{"kind":"account_membership","id":109,"person":{"kind":"person","id":109,"name":"3D-4X administrative droid","email":"threedeefourx@sith.mil","initials":"3D4X","username":"threedeefourx"},"account_id":100,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","owner":false,"admin":true,"project_creator":false}]
Successful responses to this request return the account_membership resource.

PARAMETERS

account_id
int in the request path.
required  —  The ID of the account.
 
POST
/accounts/{account_id}/memberships

export TOKEN='your Pivotal Tracker API token'

export ACCOUNT_ID=100

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"email":"dooku@example.com","initials":"CD","name":"Count Dooku"}' "https://www.pivotaltracker.com/services/v5/accounts/$ACCOUNT_ID/memberships"

View Response
Hide Response
Headers
Response Body
{"account_id":100,"admin":false,"created_at":"2024-08-20T12:00:00Z","id":19200,"kind":"account_membership","owner":false,"person":{"kind":"person","id":1900,"name":"Count Dooku","email":"dooku@example.com","initials":"CD","username":"countd"},"project_creator":false,"updated_at":"2024-08-20T12:00:00Z"}

export TOKEN='your Pivotal Tracker API token'

export ACCOUNT_ID=100

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"email":"monmothma@example.com","initials":"MM","name":"Mon Mothma"}' "https://www.pivotaltracker.com/services/v5/accounts/$ACCOUNT_ID/memberships"

View Response
Hide Response
Headers
Response Body
{"account_id":100,"admin":false,"created_at":"2024-08-20T12:00:00Z","id":19200,"kind":"account_membership","owner":false,"person":{"kind":"person","id":108,"name":"Mon Mothma","email":"monmothma@example.com","initials":"MM","username":"monmothma"},"project_creator":false,"updated_at":"2024-08-20T12:00:00Z"}
Successful responses to this request return the account_membership resource.

PARAMETERS

account_id
int in the request path.
required  —  The ID of the account.
 
email
string in the request body.
 —  The email address of a new/existing Tracker user to be added to this account.
 
name
string in the request body.
 —  The name to be given to a new Tracker user, should a user with the given email address not already exist.
 
initials
string in the request body.
 —  The initials to be given to a new Tracker user, should a user with the given email address not already exist.
 
admin
boolean in the request body.
 —  True if the person has administrative rights on the account.
 
project_creator
boolean in the request body.
 —  True if the person is allowed to create new projects within the account.
 
ENDPOINT

/accounts/{account_id}/memberships/{person_id}

Get an individual account membership, requested by the person_id.

GET
/accounts/{account_id}/memberships/{person_id}

export TOKEN='your Pivotal Tracker API token'

export ACCOUNT_ID=100

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/accounts/$ACCOUNT_ID/memberships/101"

Hide Response
Headers
Response Body
{"account_id":100,"admin":true,"created_at":"2024-08-20T12:00:00Z","id":101,"kind":"account_membership","owner":false,"person":{"kind":"person","id":101,"name":"Darth Vader","email":"vader@deathstar.mil","initials":"DV","username":"vader"},"project_creator":false,"updated_at":"2024-08-20T12:00:00Z"}
Successful responses to this request return the account_membership resource.

PARAMETERS

account_id
int in the request path.
required  —  The ID of the account.
 
person_id
int in the request path.
required  —  The ID of the person.
 
PUT
/accounts/{account_id}/memberships/{person_id}

export TOKEN='your Pivotal Tracker API token'

export ACCOUNT_ID=100

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"project_creator":true}' "https://www.pivotaltracker.com/services/v5/accounts/$ACCOUNT_ID/memberships/103"

Hide Response
Headers
Response Body
{"account_id":100,"admin":false,"created_at":"2024-08-20T12:00:00Z","id":103,"kind":"account_membership","owner":false,"person":{"kind":"person","id":103,"name":"Moradmin Bast","email":"bast@deathstar.mil","initials":"MB","username":"bast"},"project_creator":true,"updated_at":"2024-08-20T12:00:05Z"}
Successful responses to this request return the account_membership resource.

PARAMETERS

account_id
int in the request path.
required  —  The ID of the account.
 
person_id
int in the request path.
required  —  The ID of the person.
 
admin
boolean in the request body.
 —  True if the person has administrative rights on the account.
 
project_creator
boolean in the request body.
 —  True if the person is allowed to create new projects within the account.
 
DELETE
/accounts/{account_id}/memberships/{person_id}

export TOKEN='your Pivotal Tracker API token'

export ACCOUNT_ID=100

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/accounts/$ACCOUNT_ID/memberships/104"

Hide Response
Headers

PARAMETERS

account_id
int in the request path.
required  —  The ID of the account.
 
person_id
int in the request path.
required  —  The ID of the person.
 

Accounts

ENDPOINT

/accounts

Access a user's accounts

GET
/accounts

export TOKEN='your Pivotal Tracker API token'

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/accounts"

Hide Response
Headers
Response Body
[{"kind":"account","id":100,"name":"Galactic Empire","plan":"Enterprise","status":"active","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}]
Successful responses to this request return an array containing zero or more instances of the account resource.
ENDPOINT

/account_summaries

Access the account summaries that you are a member of.

GET
/account_summaries

export TOKEN='your Pivotal Tracker API token'

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/account_summaries?with_permission=project_creation"

Hide Response
Headers
Response Body
[{"kind":"account_summary","id":100,"name":"Galactic Empire","status":"active","plan":"Enterprise"},{"kind":"account_summary","id":1901,"name":"Tarkin Project","status":"active","plan":"Free"},{"kind":"account_summary","id":1902,"name":"Empire Operations","status":"active","plan":"Free"}]
Successful responses to this request return an array containing zero or more instances of the account_summary resource.

PARAMETERS

with_permission
enumerated string in the request query.
 —  Find accounts where you have the specified permission.
Valid enumeration values: none, project_creation, administration
 
When the owner_id and/or admin_ids associations are requested as hashes, the nested person resource(s) will not contain the 'email' field.

Account

ENDPOINT

/accounts/{account_id}

Access the account specified by the account_id value in the URL.

GET
/accounts/{account_id}

Retrieving account resources via this endpoint is restricted to Owners and Administrators for the Account specified. Non authorized users will receive an error.

export TOKEN='your Pivotal Tracker API token'

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/accounts/100"

Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","id":100,"kind":"account","name":"Galactic Empire","plan":"Enterprise","status":"active","updated_at":"2024-08-20T12:00:00Z"}
Successful responses to this request return the account resource.

PARAMETERS

account_id
int in the request path.
required  —  The ID of the account.
 

Labels

ENDPOINT

/projects/{project_id}/labels

Access the project's labels.

GET
/projects/{project_id}/labels

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/labels?date_format=millis"

Hide Response
Headers
Response Body
[{"kind":"label","id":2015,"project_id":99,"name":"diplomatic relations","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2013,"project_id":99,"name":"fleet ops","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2011,"project_id":99,"name":"mnt","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2012,"project_id":99,"name":"personnel","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2009,"project_id":99,"name":"plans","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2014,"project_id":99,"name":"r&d","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2008,"project_id":99,"name":"rebel bases","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2017,"project_id":99,"name":"sanitation","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2016,"project_id":99,"name":"security protocol","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2010,"project_id":99,"name":"turning luke","created_at":1724155200000,"updated_at":1724155200000}]

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/labels?date_format=millis&with_type=epic"

Hide Response
Headers
Response Body
[{"kind":"label","id":2011,"project_id":99,"name":"mnt","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2009,"project_id":99,"name":"plans","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2008,"project_id":99,"name":"rebel bases","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2017,"project_id":99,"name":"sanitation","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2010,"project_id":99,"name":"turning luke","created_at":1724155200000,"updated_at":1724155200000}]

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/labels?date_format=millis&with_status=active"

Hide Response
Headers
Response Body
[{"kind":"label","id":2015,"project_id":99,"name":"diplomatic relations","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2011,"project_id":99,"name":"mnt","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2012,"project_id":99,"name":"personnel","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2009,"project_id":99,"name":"plans","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2014,"project_id":99,"name":"r&d","created_at":1724155200000,"updated_at":1724155200000},{"kind":"label","id":2008,"project_id":99,"name":"rebel bases","created_at":1724155200000,"updated_at":1724155200000}]
Successful responses to this request return an array containing zero or more instances of the label resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
with_type
enumerated string in the request query.
 —  Filters the returned labels by the given type.
Valid enumeration values: epic, standard
 
with_status
enumerated string in the request query.
 —  Filters the returned labels by the given status.
Valid enumeration values: active, inactive
 
POST
/projects/{project_id}/labels

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"name":"a new hope"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/labels"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","id":5100,"kind":"label","name":"a new hope","project_id":99,"updated_at":"2024-08-20T12:00:00Z"}
Successful responses to this request return the label resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
name
extended string[255] in the request body.
required  —  The label's name.
 
ENDPOINT

/projects/{project_id}/labels/{label_id}

Access the project's labels.

GET
/projects/{project_id}/labels/{label_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/labels/2015"

Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","id":2015,"kind":"label","name":"diplomatic relations","project_id":99,"updated_at":"2024-08-20T12:00:00Z"}
Successful responses to this request return the label resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
label_id
int in the request path.
required  —  The ID of the label.
 
PUT
/projects/{project_id}/labels/{label_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"name":"detention"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/labels/2015"

Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","id":2015,"kind":"label","name":"detention","project_id":99,"updated_at":"2024-08-20T12:00:05Z"}
Successful responses to this request return the label resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
label_id
int in the request path.
required  —  The ID of the label.
 
name
extended string[255] in the request body.
required  —  The label's name.
 
DELETE
/projects/{project_id}/labels/{label_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/labels/2015"

Hide Response
Headers

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
label_id
int in the request path.
required  —  The ID of the label.
 
ENDPOINT

/projects/{project_id}/stories/{story_id}/labels

Operations on a story's labels

GET
/projects/{project_id}/stories/{story_id}/labels

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=556

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/labels"

View Response
Hide Response
Headers
Response Body
[{"kind":"label","id":2009,"project_id":99,"name":"plans","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"},{"kind":"label","id":2008,"project_id":99,"name":"rebel bases","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}]
Successful responses to this request return an array containing zero or more instances of the label resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
POST
/projects/{project_id}/stories/{story_id}/labels

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=556

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"name":"my new label"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/labels"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","id":5100,"kind":"label","name":"my new label","project_id":99,"updated_at":"2024-08-20T12:00:00Z"}
Successful responses to this request return the label resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
id
int in the request body.
 —  The id of a label that already exists within the project, which should be added to the selected story.
 
name
extended string[255] in the request body.
 —  The label's name.
 
ENDPOINT

/projects/{project_id}/stories/{story_id}/labels/{label_id}

Operations on a story label

DELETE
/projects/{project_id}/stories/{story_id}/labels/{label_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=556

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/labels/2009"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","id":2009,"kind":"label","name":"plans","project_id":99,"updated_at":"2024-08-20T12:00:00Z"}

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
label_id
int in the request path.
required  —  The ID of the label.
 

Releases

ENDPOINT

/projects/{project_id}/releases

GETs a paginated list of releases for a given project.

GET
/projects/{project_id}/releases

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/releases"

Hide Response
Headers
Response Body
[{"kind":"release","id":552,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","deadline":"2024-08-20T12:00:05Z","name":"Battlestation fully operational","description":"Everything is proceeding as I have foreseen.","current_state":"unstarted","url":"http://localhost/story/show/552","project_id":99,"labels":[]}]

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/releases?with_state=accepted"

Hide Response
Headers
Response Body
[{"kind":"release","id":2300,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","accepted_at":"2024-08-20T12:00:00Z","deadline":"2024-08-20T12:00:00Z","name":"Foo","current_state":"accepted","url":"http://localhost/story/show/2300","project_id":99,"labels":[]}]
Successful responses to this request return an array containing zero or more instances of the release resource. The response from this request is paginated, see Paginating List Responses.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
with_state
enumerated string in the request query.
 —  A release's current_state which all returned releases must match.
Valid enumeration values: accepted, unstarted, unscheduled, planned
 
accepted_before
datetime in the request query.
 —  A date and time (ISO 8601 format or milliseconds) which all returned releases are accepted before.
 
accepted_after
datetime in the request query.
 —  A date and time (ISO 8601 format or milliseconds) which all returned releases are accepted after.
 
deadline_before
datetime in the request query.
 —  A date and time (ISO 8601 format or milliseconds) that release dates fall before.
 
deadline_after
datetime in the request query.
 —  A date and time (ISO 8601 format or milliseconds) that release dates fall after.
 
limit
int in the request query.
 —  The number of releases you want returned.
 
offset
int in the request query.
 —  With the first release in your priority list as 0, the index of the first release you want returned.
 
ENDPOINT

/projects/{project_id}/releases/{id}

GETs a release for a given project.

GET
/projects/{project_id}/releases/{id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/releases/552"

Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","current_state":"unstarted","deadline":"2024-08-20T12:00:05Z","description":"Everything is proceeding as I have foreseen.","id":552,"kind":"release","labels":[],"name":"Battlestation fully operational","project_id":99,"updated_at":"2024-08-20T12:00:00Z","url":"http://localhost/story/show/552"}
Successful responses to this request return the release resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
id
int in the request path.
required  —  The ID of the id.
 
ENDPOINT

/projects/{project_id}/releases/{id}/stories

GETs the stories in a given release.

GET
/projects/{project_id}/releases/{id}/stories

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export RELEASE_ID=552

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/releases/$RELEASE_ID/stories"

Hide Response
Headers
Response Body
[{"kind":"story","id":553,"created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:15Z","accepted_at":"2024-08-20T12:00:15Z","estimate":3,"story_type":"feature","story_priority":"p3","name":"Build protocol droid","description":"I want a friend","current_state":"accepted","requested_by_id":101,"url":"http://localhost/story/show/553","project_id":99,"owner_ids":[101],"labels":[{"id":2014,"project_id":99,"kind":"label","name":"r&d","created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:15Z"},{"id":2008,"project_id":99,"kind":"label","name":"rebel bases","created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:15Z"}],"owned_by_id":101},{"kind":"story","id":563,"created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:15Z","accepted_at":"2024-08-20T12:00:05Z","estimate":3,"story_type":"feature","story_priority":"p3","name":"Complete construction of the Expeditionary Battle Planetoid","description":"Palpatine was impressed with the PoC, make this one bigger","current_state":"accepted","requested_by_id":102,"external_id":"abc123","integration_id":30,"url":"http://localhost/story/show/563","project_id":99,"owner_ids":[102,101],"labels":[{"id":2009,"project_id":99,"kind":"label","name":"plans","created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:15Z"}],"owned_by_id":102},{"kind":"story","id":554,"created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:15Z","accepted_at":"2024-08-20T12:00:10Z","estimate":3,"story_type":"feature","story_priority":"p3","name":"Identify Bothan spies","description":"Infiltrate their spy network.","current_state":"accepted","requested_by_id":101,"url":"http://localhost/story/show/554","project_id":99,"owner_ids":[106],"labels":[],"owned_by_id":106},{"kind":"story","id":558,"created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:15Z","accepted_at":"2024-08-20T12:00:15Z","estimate":1,"story_type":"feature","story_priority":"p3","name":"Contact Lando","current_state":"accepted","requested_by_id":101,"url":"http://localhost/story/show/558","project_id":99,"owner_ids":[],"labels":[]},{"kind":"story","id":560,"created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:15Z","accepted_at":"2024-08-20T12:00:15Z","estimate":1,"story_type":"feature","story_priority":"p3","name":"Destroy Alderaan","description":"Dantooine is too remote to make an effective demonstration.","current_state":"accepted","requested_by_id":102,"url":"http://localhost/story/show/560","project_id":99,"owner_ids":[101,105],"labels":[{"id":2008,"project_id":99,"kind":"label","name":"rebel bases","created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:15Z"}],"owned_by_id":101},{"kind":"story","id":556,"created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:15Z","estimate":2,"story_type":"feature","story_priority":"p3","name":"Interrogate Leia Organa","description":"She is proving to be resistant to our mind probes","current_state":"started","requested_by_id":101,"url":"http://localhost/story/show/556","project_id":99,"owner_ids":[101,105],"labels":[{"id":2009,"project_id":99,"kind":"label","name":"plans","created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:15Z"},{"id":2008,"project_id":99,"kind":"label","name":"rebel bases","created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:15Z"}],"owned_by_id":101},{"kind":"story","id":559,"created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:15Z","estimate":3,"story_type":"feature","story_priority":"p3","name":"All exhaust ports should be shielded","description":"ray shielded, that is.","current_state":"rejected","requested_by_id":102,"url":"http://localhost/story/show/559","project_id":99,"owner_ids":[104],"labels":[{"id":2009,"project_id":99,"kind":"label","name":"plans","created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:15Z"}],"owned_by_id":104},{"kind":"story","id":561,"created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:15Z","story_type":"bug","story_priority":"p3","name":"Tractor beam loses power intermittently","current_state":"unstarted","requested_by_id":102,"url":"http://localhost/story/show/561","project_id":99,"owner_ids":[],"labels":[]},{"kind":"story","id":566,"created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:15Z","story_type":"chore","story_priority":"p3","name":"Repair CommLink","description":"It's malfunctioning.","current_state":"unstarted","requested_by_id":104,"url":"http://localhost/story/show/566","project_id":99,"owner_ids":[],"labels":[{"id":2011,"project_id":99,"kind":"label","name":"mnt","created_at":"2024-08-20T12:00:15Z","updated_at":"2024-08-20T12:00:15Z"}]}]

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export RELEASE_ID=552

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/releases/$RELEASE_ID/stories.csv"

Hide Response
Headers
Response Body
State,Accepted at (PDT),Type,Estimate,Title,ID,Labels,Owned By,Owned By
accepted,5/14/2024 05:00:00,feature,3,Build protocol droid,553,"r&d,rebel bases",Darth Vader,
accepted,5/21/2024 05:00:00,feature,3,Complete construction of the Expeditionary Battle Planetoid,563,plans,Wilhuff Tarkin,Darth Vader
accepted,8/13/2024 05:00:00,feature,3,Identify Bothan spies,554,"",Galen Marek,
accepted,8/20/2024 05:00:00,feature,1,Contact Lando,558,"",,
accepted,8/20/2024 05:00:00,feature,1,Destroy Alderaan,560,rebel bases,Darth Vader,Robotic Maintenance Team 4
started,,feature,2,Interrogate Leia Organa,556,"plans,rebel bases",Darth Vader,Robotic Maintenance Team 4
rejected,,feature,3,All exhaust ports should be shielded,559,plans,Clone TK421,
unstarted,,bug,,Tractor beam loses power intermittently,561,"",,
unstarted,,chore,,Repair CommLink,566,mnt,,
Successful responses to this request return an array containing zero or more instances of the story resource. The response from this request can be encoded in CSV, see CSV Response Format.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
id
int in the request path.
required  —  The ID of the release.
 

Stories

ENDPOINT

/projects/{project_id}/stories

Fetch some or all stories for the specified project.

GET
/projects/{project_id}/stories

Note that labels or strings with a space must be quoted, and multiple filters must be separated with a space, and everything must be URL-escaped. You can also search on multiple values within the same search term, for example, 'filter=id:1,2,3' will return resources with the id 1, 2 or 3.

Searches can be refined with all of the modifications listed here: How can a search be refined?

On endpoints that support filters, 'filter' can only be combined with project_id, date_format, limit and offset. All other parameters will result in an error.

state:started requester:OWK label:"jedi stuff" keyword

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories?date_format=millis&with_state=unstarted"

Hide Response
Headers
Response Body
[{"kind":"story","id":561,"created_at":1724155200000,"updated_at":1724155200000,"story_type":"bug","story_priority":"p3","name":"Tractor beam loses power intermittently","current_state":"unstarted","requested_by_id":102,"url":"http://localhost/story/show/561","project_id":99,"owner_ids":[],"labels":[]},{"kind":"story","id":566,"created_at":1724155200000,"updated_at":1724155200000,"story_type":"chore","story_priority":"p3","name":"Repair CommLink","description":"It's malfunctioning.","current_state":"unstarted","requested_by_id":104,"url":"http://localhost/story/show/566","project_id":99,"owner_ids":[],"labels":[{"id":2011,"project_id":99,"kind":"label","name":"mnt","created_at":1724155200000,"updated_at":1724155200000}]},{"kind":"story","id":552,"created_at":1724155200000,"updated_at":1724155200000,"deadline":1724155205000,"story_type":"release","story_priority":"p3","name":"Battlestation fully operational","description":"Everything is proceeding as I have foreseen.","current_state":"unstarted","requested_by_id":100,"url":"http://localhost/story/show/552","project_id":99,"owner_ids":[],"labels":[]},{"kind":"story","id":555,"created_at":1724155200000,"updated_at":1724155200000,"estimate":2,"story_type":"feature","story_priority":"p3","name":"Bring me the passengers","description":"ignore the droids","current_state":"unstarted","requested_by_id":101,"url":"http://localhost/story/show/555","project_id":99,"owner_ids":[],"labels":[]}]

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories?fields=current_state%2Clabels%2Ccomments%2Ctasks&with_state=unstarted"

Hide Response
Headers
Response Body
[{"id":561,"current_state":"unstarted","labels":[],"tasks":[],"comments":[]},{"id":566,"current_state":"unstarted","labels":[{"id":2011,"project_id":99,"kind":"label","name":"mnt","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}],"tasks":[],"comments":[]},{"id":552,"current_state":"unstarted","labels":[],"tasks":[],"comments":[]},{"id":555,"current_state":"unstarted","labels":[],"tasks":[],"comments":[{"kind":"comment","id":112,"text":"I want them alive!","person_id":101,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","story_id":555}]}]

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories?fields=comments%28%3Adefault%2Cfile_attachments%28%3Adefault%2Cuploader%29%29&with_state=unstarted"

Hide Response
Headers
Response Body
[{"id":561,"comments":[]},{"id":566,"comments":[]},{"id":552,"comments":[]},{"id":555,"comments":[{"kind":"comment","id":112,"text":"I want them alive!","person_id":101,"created_at":"2024-08-20T12:00:10Z","updated_at":"2024-08-20T12:00:10Z","story_id":555,"file_attachments":[{"kind":"file_attachment","uploader":{"kind":"person","id":100,"name":"Emperor Palpatine","email":"emperor@galacticrepublic.gov","initials":"EP","username":"palpatine"},"id":20,"filename":"empire.png","created_at":"2024-08-20T12:00:10Z","uploader_id":100,"thumbnailable":true,"height":804,"width":1000,"size":82382,"download_url":"/attachments/0000/0020/empire_big.png","thumbnail_url":"/attachments/0000/0020/empire_thumb.png"},{"kind":"file_attachment","uploader":{"kind":"person","id":101,"name":"Darth Vader","email":"vader@deathstar.mil","initials":"DV","username":"vader"},"id":21,"filename":"Corellian corvette deck plan.tiff","created_at":"2024-08-20T12:00:05Z","uploader_id":101,"thumbnailable":false,"height":216,"width":650,"size":561878,"download_url":"/attachments/0000/0021/Corellian corvette deck plan_big.tiff","thumbnail_url":"/attachments/0000/0021/Corellian corvette deck plan_thumb.tiff"}]}]}]

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories?after_story_id=553&before_story_id=551&with_label=mnt"

Hide Response
Headers
Response Body
[{"kind":"story","id":566,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","story_type":"chore","story_priority":"p3","name":"Repair CommLink","description":"It's malfunctioning.","current_state":"unstarted","requested_by_id":104,"url":"http://localhost/story/show/566","project_id":99,"owner_ids":[],"labels":[{"id":2011,"project_id":99,"kind":"label","name":"mnt","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}]},{"kind":"story","id":567,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","story_type":"feature","story_priority":"p3","name":"Clean Cell Block 1138","description":"The large, hairy _Thing_ is being transferred away","current_state":"unscheduled","requested_by_id":104,"url":"http://localhost/story/show/567","project_id":99,"owner_ids":[],"labels":[{"id":2011,"project_id":99,"kind":"label","name":"mnt","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}]},{"kind":"story","id":565,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","story_type":"feature","story_priority":"p3","name":"Reactor leak reported in Detention Block AA-23","description":"large leak, very dangerous","current_state":"unscheduled","requested_by_id":103,"url":"http://localhost/story/show/565","project_id":99,"owner_ids":[],"labels":[{"id":2011,"project_id":99,"kind":"label","name":"mnt","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}]},{"kind":"story","id":562,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","story_type":"bug","story_priority":"p3","name":"Garbage smashers on the detention level have malfunctioned","current_state":"unscheduled","requested_by_id":102,"url":"http://localhost/story/show/562","project_id":99,"owner_ids":[],"labels":[{"id":2011,"project_id":99,"kind":"label","name":"mnt","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}]}]
Successful responses to this request return an array containing zero or more instances of the story resource. The response from this request is paginated, see Paginating List Responses.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
with_label
extended string in the request query.
 —  A label name which all returned stories must match.
 
with_story_type
enumerated string in the request query.
 —  A story's type which all returned stories must match.
Valid enumeration values: feature, bug, chore, release
 
with_story_priority
enumerated string in the request query.
 —  A story's priority which all returned stories must match.
Valid enumeration values: p0, p1, p2, p3, none
 
with_state
enumerated string in the request query.
 —  A story's current_state which all returned stories must match.
Valid enumeration values: accepted, delivered, finished, started, rejected, planned, unstarted, unscheduled
 
after_story_id
int in the request query.
 —  Filters results to stories that are after the given story id
 
before_story_id
int in the request query.
 —  Filters results to stories that are before the given story id
 
accepted_before
datetime in the request query.
 —  A date and time (ISO 8601 format or milliseconds) which all returned stories are accepted before.
 
accepted_after
datetime in the request query.
 —  A date and time (ISO 8601 format or milliseconds) which all returned stories are accepted after.
 
created_before
datetime in the request query.
 —  A date and time (ISO 8601 format or milliseconds) which all returned stories are created before.
 
created_after
datetime in the request query.
 —  A date and time (ISO 8601 format or milliseconds) which all returned stories are created after.
 
updated_before
datetime in the request query.
 —  A date and time (ISO 8601 format or milliseconds) which all returned stories are updated before.
 
updated_after
datetime in the request query.
 —  A date and time (ISO 8601 format or milliseconds) which all returned stories are updated after.
 
deadline_before
datetime in the request query.
 —  A date and time (ISO 8601 format or milliseconds) that release dates fall before.
 
deadline_after
datetime in the request query.
 —  A date and time (ISO 8601 format or milliseconds) that release dates fall after.
 
limit
int in the request query.
 —  The number of stories you want returned.
 
offset
int in the request query.
 —  With the first story in your priority list as 0, the index of the first story you want returned.
 
filter
extended string in the request query.
 —  This parameter supplies a search string; only stories that match the search criteria are returned. Cannot be used together with any other parameters. How can a search be refined?
 
POST
/projects/{project_id}/stories

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"name":"Exhaust ports are ray shielded 👹"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","current_state":"unscheduled","id":2300,"kind":"story","labels":[],"name":"Exhaust ports are ray shielded 👹","owner_ids":[],"project_id":99,"requested_by_id":101,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:00Z","url":"http://localhost/story/show/2300"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"after_id":555,"before_id":567,"name":"Replace the lining in Darth Vader's helmet"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","current_state":"unscheduled","id":2300,"kind":"story","labels":[],"name":"Replace the lining in Darth Vader's helmet","owner_ids":[],"project_id":99,"requested_by_id":101,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:00Z","url":"http://localhost/story/show/2300"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"current_state":"accepted","estimate":1,"name":"Exhaust ports are ray shielded 👹"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories"

View Response
Hide Response
Headers
Response Body
{"accepted_at":"2024-08-20T12:00:00Z","created_at":"2024-08-20T12:00:00Z","current_state":"accepted","estimate":1,"id":2300,"kind":"story","labels":[],"name":"Exhaust ports are ray shielded 👹","owner_ids":[],"project_id":99,"requested_by_id":101,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:00Z","url":"http://localhost/story/show/2300"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"description":null,"name":"Exhaust ports are ray shielded 👹"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","current_state":"unscheduled","id":2300,"kind":"story","labels":[],"name":"Exhaust ports are ray shielded 👹","owner_ids":[],"project_id":99,"requested_by_id":101,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:00Z","url":"http://localhost/story/show/2300"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"comments":[{"text":"Just ray shielding? What about proton weapons?"}],"name":"Exhaust ports are ray shielded 👹"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories?fields=%3Adefault%2Ccomments"

View Response
Hide Response
Headers
Response Body
{"comments":[{"kind":"comment","id":300,"story_id":2300,"text":"Just ray shielding? What about proton weapons?","person_id":101,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}],"created_at":"2024-08-20T12:00:00Z","current_state":"unscheduled","id":2300,"kind":"story","labels":[],"name":"Exhaust ports are ray shielded 👹","owner_ids":[],"project_id":99,"requested_by_id":101,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:00Z","url":"http://localhost/story/show/2300"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"comments":[{"text":"Make sure the stamp on the latest shipment of seals matches the new Imperial logo (attached).","file_attachments":[{"type":"file_attachment","id":20,"filename":"empire.png","created_at":1724155200000,"uploader_id":100,"thumbnailable":true,"height":804,"width":1000,"size":82382,"download_url":"/attachments/0000/0020/empire_big.png","thumbnail_url":"/attachments/0000/0020/empire_thumb.png"}]}],"name":"replace seals on trash compactors","story_type":"chore"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","current_state":"unscheduled","id":2300,"kind":"story","labels":[],"name":"replace seals on trash compactors","owner_ids":[],"project_id":99,"requested_by_id":101,"story_priority":"p3","story_type":"chore","updated_at":"2024-08-20T12:00:00Z","url":"http://localhost/story/show/2300"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"label_ids":[2008],"name":"Exhaust ports are ray shielded 👹"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:05Z","current_state":"unscheduled","id":2300,"kind":"story","labels":[{"kind":"label","id":2008,"project_id":99,"name":"rebel bases","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}],"name":"Exhaust ports are ray shielded 👹","owner_ids":[],"project_id":99,"requested_by_id":101,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/2300"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"labels":["plans","Inspected by TK-421"],"name":"Exhaust ports are ray shielded 👹"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:05Z","current_state":"unscheduled","id":2300,"kind":"story","labels":[{"kind":"label","id":5100,"project_id":99,"name":"inspected by tk-421","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"},{"kind":"label","id":2009,"project_id":99,"name":"plans","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}],"name":"Exhaust ports are ray shielded 👹","owner_ids":[],"project_id":99,"requested_by_id":101,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/2300"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"labels":["Inspected by TK-421",{"id":2009,"name":"plans"},{"name":"mnt"}],"name":"Exhaust ports are ray shielded 👹"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:05Z","current_state":"unscheduled","id":2300,"kind":"story","labels":[{"kind":"label","id":5100,"project_id":99,"name":"inspected by tk-421","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"},{"kind":"label","id":2011,"project_id":99,"name":"mnt","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"},{"kind":"label","id":2009,"project_id":99,"name":"plans","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}],"name":"Exhaust ports are ray shielded 👹","owner_ids":[],"project_id":99,"requested_by_id":101,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/2300"}
Successful responses to this request return the story resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
name
extended string[5000] in the request body.
required  —  Name of the story.
 
description
extended string[20000] in the request body.
 —  In-depth explanation of the story requirements.
 
story_type
enumerated string in the request body.
 —  Type of story.
Valid enumeration values: feature, bug, chore, release
 
current_state
enumerated string in the request body.
 —  Story's state of completion.
Valid enumeration values: accepted, delivered, finished, started, rejected, planned, unstarted, unscheduled
 
estimate
float in the request body.
 —  Point value of the story.
 
accepted_at
datetime in the request body.
 —  Acceptance time.
 
deadline
datetime in the request body.
 —  Due date/time (for a release-type story).
 
requested_by_id
int in the request body.
 —  The id of the person who requested the story.
 
owned_by_id
int in the request body.
 —  The id of the person who owns the story.
 
owner_ids
List[int] in the request body.
 —  IDs of the current story owners.
 
labels
List[label] in the request body.
 —  This parameter allows labels to be selected by content or to be created implicitly as part of the basic request. See the 'label_ids' attribute of the story resource. The labels' ids must not be included if creating a new one.
 
label_ids
List[int] in the request body.
 —  IDs of labels currently applied to story.
 
tasks
List[task] in the request body.
 —  This parameter allows creation of new tasks implicitly as part of the basic request. See the 'task_ids' attribute of the story resource for how the resources relate. See the parameters of the POST to /projects/{project_id}/stories/{story_id}/tasks operation for keys that can be included in the nested hash in the parameters. The nested tasks must not contain an id.
 
pull_requests
List[pull_request] in the request body.
 —  This parameter allows creation of new pull_requests implicitly as part of the basic request. See the 'pull_request_ids' attribute of the story resource. The nested pull_requests must not contain an id.
 
branches
List[branch] in the request body.
 —  This parameter allows creation of new branches implicitly as part of the basic request. See the 'branch_ids' attribute of the story resource. The nested branches must not contain an id.
 
blockers
List[blocker] in the request body.
 —  This parameter allows creation of new blockers implicitly as part of the basic request. See the 'blocker_ids' attribute of the story resource for how the resources relate. See the parameters of the POST to /projects/{project_id}/stories/{story_id}/blockers operation for keys that can be included in the nested hash in the parameters. The nested blockers must not contain an id.
 
follower_ids
List[int] in the request body.
 —  IDs of people currently following the story.
 
comments
List[comment] in the request body.
 —  This parameter allows creation of new comments implicitly as part of the basic request. See the 'comment_ids' attribute of the story resource for how the resources relate. See the parameters of the POST to /projects/{project_id}/stories/{story_id}/comments operation for keys that can be included in the nested hash in the parameters. The nested comments must not contain an id.
 
created_at
datetime in the request body.
 —  Creation time.
 
before_id
int in the request body.
 —  ID of the story that the current story is located before. Null if story is last one in the project.
 
after_id
int in the request body.
 —  ID of the story that the current story is located after. Null if story is the first one in the project.
 
integration_id
int in the request body.
 —  ID of the integration API that is linked to this story.
 
external_id
string[255] in the request body.
 —  The integration's specific ID for the story.
 
reviews
List[review] in the request body.
 —  This parameter allows creation of new reviews implicitly as part of the basic request. See the 'review_ids' attribute of the story resource for how the resources relate. See the parameters of the POST to /projects/{project_id}/stories/{story_id}/reviews operation for keys that can be included in the nested hash in the parameters. The nested reviews must not contain an id.
 
story_priority
enumerated string in the request body.
 —  Story Priority of the specified story.
Valid enumeration values: p0, p1, p2, p3, none
 
ENDPOINT

/projects/{project_id}/stories/bulk

Fetch more than one story in a project with one request.

GET
/projects/{project_id}/stories/bulk

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/bulk?ids=552%2C553%2C2%2C0"

Hide Response
Headers
Response Body
[{"kind":"story","id":553,"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","accepted_at":"2024-08-20T12:00:05Z","estimate":3,"story_type":"feature","story_priority":"p3","name":"Build protocol droid","description":"I want a friend","current_state":"accepted","requested_by_id":101,"url":"http://localhost/story/show/553","project_id":99,"owner_ids":[101],"labels":[{"id":2014,"project_id":99,"kind":"label","name":"r&d","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"},{"id":2008,"project_id":99,"kind":"label","name":"rebel bases","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"}],"owned_by_id":101},{"kind":"story","id":552,"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","deadline":"2024-08-20T12:00:10Z","story_type":"release","story_priority":"p3","name":"Battlestation fully operational","description":"Everything is proceeding as I have foreseen.","current_state":"unstarted","requested_by_id":100,"url":"http://localhost/story/show/552","project_id":99,"owner_ids":[],"labels":[]}]
Successful responses to this request return an array containing zero or more instances of the story resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
ids
string in the request query.
required  —  The comma separated list of ids of the stories in the project to be returned. Not found ids (deleted or moved to other projects) will be ignored. There is a limit of 500 ids.
 

Story

ENDPOINT

/projects/{project_id}/stories/{story_id}

Operations on an individual story.

GET
/projects/{project_id}/stories/{story_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/555"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","current_state":"unstarted","description":"ignore the droids","estimate":2,"id":555,"kind":"story","labels":[],"name":"Bring me the passengers","owner_ids":[],"project_id":99,"requested_by_id":101,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:00Z","url":"http://localhost/story/show/555"}
Successful responses to this request return the story resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
PUT
/projects/{project_id}/stories/{story_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"labels":[{"name":"newnew"},{"name":"labellabel"},{"id":2011}]}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/555"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","current_state":"unstarted","description":"ignore the droids","estimate":2,"id":555,"kind":"story","labels":[{"kind":"label","id":5101,"project_id":99,"name":"labellabel","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"},{"kind":"label","id":2011,"project_id":99,"name":"mnt","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"},{"kind":"label","id":5100,"project_id":99,"name":"newnew","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"}],"name":"Bring me the passengers","owner_ids":[],"project_id":99,"requested_by_id":101,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/555"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"labels":["no life signs","look sir metal"]}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/555"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","current_state":"unstarted","description":"ignore the droids","estimate":2,"id":555,"kind":"story","labels":[{"kind":"label","id":5101,"project_id":99,"name":"look sir metal","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"},{"kind":"label","id":5100,"project_id":99,"name":"no life signs","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"}],"name":"Bring me the passengers","owner_ids":[],"project_id":99,"requested_by_id":101,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/555"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"labels":[]}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/555"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","current_state":"unstarted","description":"ignore the droids","estimate":2,"id":555,"kind":"story","labels":[],"name":"Bring me the passengers","owner_ids":[],"project_id":99,"requested_by_id":101,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/555"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"before_id":556,"current_state":"started","estimate":1}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/567"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","current_state":"started","description":"The large, hairy _Thing_ is being transferred away","estimate":1,"id":567,"kind":"story","labels":[{"kind":"label","id":2011,"project_id":99,"name":"mnt","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}],"name":"Clean Cell Block 1138","owner_ids":[],"project_id":99,"requested_by_id":104,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/567"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"current_state":"accepted","estimate":1,"name":"Exhaust ports have ray shielding 👹"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/555"

View Response
Hide Response
Headers
Response Body
{"accepted_at":"2024-08-20T12:00:05Z","created_at":"2024-08-20T12:00:00Z","current_state":"accepted","description":"ignore the droids","estimate":1,"id":555,"kind":"story","labels":[],"name":"Exhaust ports have ray shielding 👹","owner_ids":[],"project_id":99,"requested_by_id":101,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/555"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"after_id":568,"before_id":null,"group":"scheduled","project_id":98}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/555"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","current_state":"unstarted","description":"ignore the droids","estimate":2,"id":555,"kind":"story","labels":[],"name":"Bring me the passengers","owner_ids":[],"project_id":98,"requested_by_id":101,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/555"}
Successful responses to this request return the story resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
comment
object in the request body.
 —  The content for a comment when rejecting a story (current state = rejected). For all other comment actions see the Comments endpoint.
 
follower_ids
List[int] in the request body.
 —  The ids of the users you would like to follow the story.
 
group
enumerated string in the request body.
 —  Should be supplied when specifying the story's before_id and/or after_id.
Valid enumeration values: scheduled, unscheduled, current
 
project_id
int in the request body.
 —  The value that the story's project_id should be updated to. Has the effect of moving the story being updated into that project from its current one.
 
name
extended string[5000] in the request body.
 —  Name of the story.
 
description
extended string[20000] in the request body.
 —  In-depth explanation of the story requirements.
 
story_type
enumerated string in the request body.
 —  Type of story.
Valid enumeration values: feature, bug, chore, release
 
current_state
enumerated string in the request body.
 —  Story's state of completion.
Valid enumeration values: accepted, delivered, finished, started, rejected, planned, unstarted, unscheduled
 
estimate
float in the request body.
 —  Point value of the story.
 
accepted_at
datetime in the request body.
 —  Acceptance time.
 
deadline
datetime in the request body.
 —  Due date/time (for a release-type story).
 
requested_by_id
int in the request body.
 —  The id of the person who requested the story.
 
owned_by_id
int in the request body.
 —  The id of the person who owns the story.
 
owner_ids
List[int] in the request body.
 —  IDs of the current story owners.
 
labels
List[label] in the request body.
 —  This parameter allows labels to be selected by content or to be created implicitly as part of the basic request. See the 'label_ids' attribute of the story resource. The labels' ids must not be included if creating a new one.
 
label_ids
List[int] in the request body.
 —  IDs of labels currently applied to story.
 
before_id
int in the request body.
 —  ID of the story that the current story is located before. Null if story is last one in the project.
 
after_id
int in the request body.
 —  ID of the story that the current story is located after. Null if story is the first one in the project.
 
integration_id
int in the request body.
 —  ID of the integration API that is linked to this story.
 
external_id
string[255] in the request body.
 —  The integration's specific ID for the story.
 
story_priority
enumerated string in the request body.
 —  Story Priority of the specified story.
Valid enumeration values: p0, p1, p2, p3, none
 
DELETE
/projects/{project_id}/stories/{story_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/555"

View Response
Hide Response
Headers

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
ENDPOINT

/projects/{project_id}/stories/{story_id}/owners

Operations on a story's owners

GET
/projects/{project_id}/stories/{story_id}/owners

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=555

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/owners"

View Response
Hide Response
Headers
Response Body
[{"kind":"person","id":100,"name":"Emperor Palpatine","email":"emperor@galacticrepublic.gov","initials":"EP","username":"palpatine"},{"kind":"person","id":103,"name":"Moradmin Bast","email":"bast@deathstar.mil","initials":"MB","username":"bast"}]
Successful responses to this request return an array containing zero or more instances of the person resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
POST
/projects/{project_id}/stories/{story_id}/owners

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=555

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"id":100}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/owners"

View Response
Hide Response
Headers
Response Body
{"email":"emperor@galacticrepublic.gov","id":100,"initials":"EP","kind":"person","name":"Emperor Palpatine","username":"palpatine"}
Successful responses to this request return an array containing zero or more instances of the person resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
id
int in the request body.
 —  ID of the person to be added
 
ENDPOINT

/projects/{project_id}/stories/{story_id}/owners/{person_id}

Operations on a story's owners

DELETE
/projects/{project_id}/stories/{story_id}/owners/{person_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=555

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/owners/100"

View Response
Hide Response
Headers

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
person_id
int in the request path.
required  —  The ID of the person.
 
ENDPOINT

/stories/{story_id}

Operations on an individual story.

GET
/stories/{story_id}

export TOKEN='your Pivotal Tracker API token'

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/stories/559"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","current_state":"rejected","description":"ray shielded, that is.","estimate":3,"id":559,"kind":"story","labels":[{"id":2009,"project_id":99,"kind":"label","name":"plans","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}],"name":"All exhaust ports should be shielded","owned_by_id":104,"owner_ids":[104],"project_id":99,"requested_by_id":102,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:00Z","url":"http://localhost/story/show/559"}
Successful responses to this request return the story resource.

PARAMETERS

story_id
int in the request path.
required  —  The ID of the story.
 
PUT
/stories/{story_id}

export TOKEN='your Pivotal Tracker API token'

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"labels":[{"name":"newnew"},{"name":"labellabel"},{"id":2011}]}' "https://www.pivotaltracker.com/services/v5/stories/555"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","current_state":"unstarted","description":"ignore the droids","estimate":2,"id":555,"kind":"story","labels":[{"kind":"label","id":5101,"project_id":99,"name":"labellabel","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"},{"kind":"label","id":2011,"project_id":99,"name":"mnt","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"},{"kind":"label","id":5100,"project_id":99,"name":"newnew","created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z"}],"name":"Bring me the passengers","owner_ids":[],"project_id":99,"requested_by_id":101,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/555"}

export TOKEN='your Pivotal Tracker API token'

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"before_id":556,"current_state":"started","estimate":1}' "https://www.pivotaltracker.com/services/v5/stories/567"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","current_state":"started","description":"The large, hairy _Thing_ is being transferred away","estimate":1,"id":567,"kind":"story","labels":[{"kind":"label","id":2011,"project_id":99,"name":"mnt","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}],"name":"Clean Cell Block 1138","owner_ids":[],"project_id":99,"requested_by_id":104,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/567"}

export TOKEN='your Pivotal Tracker API token'

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"comment":{"text":"Here are the new plans.","file_attachments":[{"type":"file_attachment","id":21,"filename":"Corellian corvette deck plan.tiff","created_at":1724155200000,"uploader_id":101,"thumbnailable":false,"height":216,"width":650,"size":561878,"download_url":"/attachments/0000/0021/Corellian corvette deck plan_big.tiff","thumbnail_url":"/attachments/0000/0021/Corellian corvette deck plan_thumb.tiff"}]},"current_state":"rejected"}' "https://www.pivotaltracker.com/services/v5/stories/555?fields=requested_by%2Cowned_by%2Clabels%2Ccomments%28text%2Cfile_attachments%29%2Ctasks"

View Response
Hide Response
Headers
Response Body
{"comments":[{"text":"I want them alive!","file_attachments":[{"kind":"file_attachment","id":20,"filename":"empire.png","created_at":"2024-08-20T12:00:00Z","uploader_id":100,"thumbnailable":true,"height":804,"width":1000,"size":82382,"download_url":"/attachments/0000/0020/empire_big.png","thumbnail_url":"/attachments/0000/0020/empire_thumb.png"},{"kind":"file_attachment","id":21,"filename":"Corellian corvette deck plan.tiff","created_at":"2024-08-20T12:00:05Z","uploader_id":101,"thumbnailable":false,"height":216,"width":650,"size":561878,"download_url":"/attachments/0000/0021/Corellian corvette deck plan_big.tiff","thumbnail_url":"/attachments/0000/0021/Corellian corvette deck plan_thumb.tiff"}],"id":112},{"text":"Here are the new plans.","file_attachments":[{"kind":"file_attachment","id":21,"filename":"Corellian corvette deck plan.tiff","created_at":"2024-08-20T12:00:05Z","uploader_id":101,"thumbnailable":false,"height":216,"width":650,"size":561878,"download_url":"/attachments/0000/0021/Corellian corvette deck plan_big.tiff","thumbnail_url":"/attachments/0000/0021/Corellian corvette deck plan_thumb.tiff"}],"id":300}],"id":555,"labels":[],"requested_by":{"kind":"person","id":101,"name":"Darth Vader","email":"vader@deathstar.mil","initials":"DV","username":"vader"},"tasks":[]}

export TOKEN='your Pivotal Tracker API token'

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"current_state":"accepted","estimate":1,"name":"Exhaust ports have ray shielding 👹"}' "https://www.pivotaltracker.com/services/v5/stories/555"

View Response
Hide Response
Headers
Response Body
{"accepted_at":"2024-08-20T12:00:05Z","created_at":"2024-08-20T12:00:00Z","current_state":"accepted","description":"ignore the droids","estimate":1,"id":555,"kind":"story","labels":[],"name":"Exhaust ports have ray shielding 👹","owner_ids":[],"project_id":99,"requested_by_id":101,"story_priority":"p3","story_type":"feature","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/555"}
Successful responses to this request return the story resource.

PARAMETERS

story_id
int in the request path.
required  —  The ID of the story.
 
comment
object in the request body.
 —  The content for a comment when rejecting a story (current state = rejected). For all other comment actions see the Comments endpoint.
 
follower_ids
List[int] in the request body.
 —  The ids of the users you would like to follow the story.
 
group
enumerated string in the request body.
 —  Should be supplied when specifying the story's before_id and/or after_id.
Valid enumeration values: scheduled, unscheduled, current
 
project_id
int in the request body.
 —  id of the project.
 
name
extended string[5000] in the request body.
 —  Name of the story.
 
description
extended string[20000] in the request body.
 —  In-depth explanation of the story requirements.
 
story_type
enumerated string in the request body.
 —  Type of story.
Valid enumeration values: feature, bug, chore, release
 
current_state
enumerated string in the request body.
 —  Story's state of completion.
Valid enumeration values: accepted, delivered, finished, started, rejected, planned, unstarted, unscheduled
 
estimate
float in the request body.
 —  Point value of the story.
 
accepted_at
datetime in the request body.
 —  Acceptance time.
 
deadline
datetime in the request body.
 —  Due date/time (for a release-type story).
 
requested_by_id
int in the request body.
 —  The id of the person who requested the story.
 
owned_by_id
int in the request body.
 —  The id of the person who owns the story.
 
owner_ids
List[int] in the request body.
 —  IDs of the current story owners.
 
labels
List[label] in the request body.
 —  This parameter allows labels to be selected by content or to be created implicitly as part of the basic request. See the 'label_ids' attribute of the story resource. The labels' ids must not be included if creating a new one.
 
label_ids
List[int] in the request body.
 —  IDs of labels currently applied to story.
 
before_id
int in the request body.
 —  ID of the story that the current story is located before. Null if story is last one in the project.
 
after_id
int in the request body.
 —  ID of the story that the current story is located after. Null if story is the first one in the project.
 
integration_id
int in the request body.
 —  ID of the integration API that is linked to this story.
 
external_id
string[255] in the request body.
 —  The integration's specific ID for the story.
 
story_priority
enumerated string in the request body.
 —  Story Priority of the specified story.
Valid enumeration values: p0, p1, p2, p3, none
 
DELETE
/stories/{story_id}

export TOKEN='your Pivotal Tracker API token'

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/stories/555"

View Response
Hide Response
Headers

PARAMETERS

story_id
int in the request path.
required  —  The ID of the story.
 

Story Tasks

ENDPOINT

/projects/{project_id}/stories/{story_id}/tasks

Operations on a story's tasks

GET
/projects/{project_id}/stories/{story_id}/tasks

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=559

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/tasks"

View Response
Hide Response
Headers
Response Body
[{"kind":"task","id":5,"story_id":559,"description":"Port 0","complete":false,"position":1,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"},{"kind":"task","id":6,"story_id":559,"description":"Port 90","complete":false,"position":2,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}]
Successful responses to this request return an array containing zero or more instances of the task resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
POST
/projects/{project_id}/stories/{story_id}/tasks

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=559

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"description":"port 270"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/tasks"

View Response
Hide Response
Headers
Response Body
{"complete":false,"created_at":"2024-08-20T12:00:00Z","description":"port 270","id":5100,"kind":"task","position":3,"story_id":559,"updated_at":"2024-08-20T12:00:00Z"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=559

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"complete":true,"description":"port 270","position":1}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/tasks"

View Response
Hide Response
Headers
Response Body
{"complete":true,"created_at":"2024-08-20T12:00:00Z","description":"port 270","id":5100,"kind":"task","position":1,"story_id":559,"updated_at":"2024-08-20T12:00:00Z"}
Successful responses to this request return the task resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
description
extended string[1000] in the request body.
required  —  Content of the task.
 
complete
boolean in the request body.
 —  Flag showing the completion of the task.
 
position
int in the request body.
 —  Offset from the top of the task list. Positions start counting from 1 for the first task on a story.
 
ENDPOINT

/projects/{project_id}/stories/{story_id}/tasks/{task_id}

Operations on a task

GET
/projects/{project_id}/stories/{story_id}/tasks/{task_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=559

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/tasks/5"

View Response
Hide Response
Headers
Response Body
{"complete":false,"created_at":"2024-08-20T12:00:00Z","description":"Port 0","id":5,"kind":"task","position":1,"story_id":559,"updated_at":"2024-08-20T12:00:00Z"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=559

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/tasks/5?fields=description%2Ccomplete"

View Response
Hide Response
Headers
Response Body
{"complete":false,"description":"Port 0","id":5}
Successful responses to this request return the task resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
task_id
int in the request path.
required  —  The ID of the task.
 
DELETE
/projects/{project_id}/stories/{story_id}/tasks/{task_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=559

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/tasks/5"

View Response
Hide Response
Headers

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
task_id
int in the request path.
required  —  The ID of the task.
 
PUT
/projects/{project_id}/stories/{story_id}/tasks/{task_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=559

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"description":"port 360"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/tasks/5"

View Response
Hide Response
Headers
Response Body
{"complete":false,"created_at":"2024-08-20T12:00:00Z","description":"port 360","id":5,"kind":"task","position":1,"story_id":559,"updated_at":"2024-08-20T12:00:05Z"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=559

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"complete":true,"position":2}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/tasks/5"

View Response
Hide Response
Headers
Response Body
{"complete":true,"created_at":"2024-08-20T12:00:00Z","description":"Port 0","id":5,"kind":"task","position":2,"story_id":559,"updated_at":"2024-08-20T12:00:05Z"}
Successful responses to this request return the task resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
task_id
int in the request path.
required  —  The ID of the task.
 
description
extended string[1000] in the request body.
 —  Content of the task.
 
complete
boolean in the request body.
 —  Flag showing the completion of the task.
 
position
int in the request body.
 —  Offset from the top of the task list. Positions start counting from 1 for the first task on a story.
 

Epics

ENDPOINT

/projects/{project_id}/epics

Epic operations.

GET
/projects/{project_id}/epics

Note that labels or strings with a space must be quoted, and multiple filters must be separated with a space, and everything must be URL-escaped. You can also search on multiple values within the same search term, for example, 'filter=id:1,2,3' will return resources with the id 1, 2 or 3.

Searches can be refined with all of the modifications listed here: How can a search be refined?

On endpoints that support filters, 'filter' can only be combined with project_id, date_format, limit and offset. All other parameters will result in an error.

label:"jedi stuff" keyword
keyword created_since:11/16/2009 has_attachment:

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics"

Hide Response
Headers
Response Body
[{"id":555,"kind":"epic","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","project_id":99,"name":"Sanitation","url":"http://localhost/epic/show/555","label":{"id":2017,"project_id":99,"kind":"label","name":"sanitation","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}},{"id":8,"kind":"epic","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","project_id":99,"name":"Maintenance","url":"http://localhost/epic/show/8","label":{"id":2011,"project_id":99,"kind":"label","name":"mnt","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}},{"id":7,"kind":"epic","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","project_id":99,"name":"Turn Luke Skywalker","url":"http://localhost/epic/show/7","label":{"id":2010,"project_id":99,"kind":"label","name":"turning luke","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}},{"id":6,"kind":"epic","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","project_id":99,"name":"Death Star Plans","url":"http://localhost/epic/show/6","label":{"id":2009,"project_id":99,"kind":"label","name":"plans","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}},{"id":5,"kind":"epic","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","project_id":99,"name":"Rebel Home Worlds","description":"Identify the systems and eliminate the rebel scum.","url":"http://localhost/epic/show/5","label":{"id":2008,"project_id":99,"kind":"label","name":"rebel bases","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}}]

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics?fields=id%2Ccomments"

Hide Response
Headers
Response Body
[{"id":555,"comments":[{"kind":"comment","id":113,"text":"Audit security of oscillator sanitation components","person_id":102,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","epic_id":555}]},{"id":8,"comments":[]},{"id":7,"comments":[]},{"id":6,"comments":[{"kind":"comment","id":111,"text":"Check out these Uffel mouse droids","person_id":103,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","epic_id":6}]},{"id":5,"comments":[{"kind":"comment","id":110,"text":"Should we send a probe to Dantooine?","person_id":103,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","epic_id":5}]}]
Successful responses to this request return an array containing zero or more instances of the epic resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
filter
extended string in the request query.
 —  This parameter supplies a search string; only epics that match the search criteria are returned. How can a search be refined?
 
POST
/projects/{project_id}/epics

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"name":"Tractor Beams"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","id":2100,"kind":"epic","label":{"kind":"label","id":5100,"project_id":99,"name":"tractor beams","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"},"name":"Tractor Beams","project_id":99,"updated_at":"2024-08-20T12:00:00Z","url":"http://localhost/epic/show/2100"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"description":"Install tractor beam systems in all landing bays. Beam systems should report to central monitoring.","label":{"name":"tractor-beams"},"name":"Tractor Beams"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","description":"Install tractor beam systems in all landing bays. Beam systems should report to central monitoring.","id":2100,"kind":"epic","label":{"kind":"label","id":5100,"project_id":99,"name":"tractor-beams","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"},"name":"Tractor Beams","project_id":99,"updated_at":"2024-08-20T12:00:00Z","url":"http://localhost/epic/show/2100"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"comments":[{"text":"Use this image on all external comms","file_attachments":[{"id":20,"uploader_id":101,"size":82382,"uploaded":false,"thumbnail_url":"#","download_url":"#","filename":"empire.png","big_url":"#","thumbnailable":true,"content_type":"image/png","created_at":"2024-08-20T12:00:00Z","width":1000,"height":804}]}],"name":"PR"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","id":2100,"kind":"epic","label":{"kind":"label","id":5100,"project_id":99,"name":"pr","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"},"name":"PR","project_id":99,"updated_at":"2024-08-20T12:00:00Z","url":"http://localhost/epic/show/2100"}
Successful responses to this request return the epic resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
name
extended string[5000] in the request body.
required  —  Name of the epic.
 
label
label in the request body.
 —  This parameter allows a label to be selected by content or to be created implicitly as part of the basic request. See the 'label_id' attribute of the epic resource. The label's id must not be included if creating a new one.
 
label_id
int in the request body.
 —  id of the epic's label.
 
description
extended string[20000] in the request body.
 —  In-depth explanation of the epic's goals, scope, etc.
 
comments
List[comment] in the request body.
 —  This parameter allows creation of new comments implicitly as part of the basic request. See the 'comment_ids' attribute of the epic resource for how the resources relate. See the parameters of the POST to /projects/{project_id}/epics/{epic_id}/comments operation for keys that can be included in the nested hash in the parameters. The nested comments must not contain an id.
 
pull_requests
List[pull_request] in the request body.
 —  This parameter allows creation of new pull_requests implicitly as part of the basic request. See the 'pull_request_ids' attribute of the epic resource. The nested pull_requests must not contain an id.
 
branches
List[branch] in the request body.
 —  This parameter allows creation of new branches implicitly as part of the basic request. See the 'branch_ids' attribute of the epic resource. The nested branches must not contain an id.
 
followers
List[follower] in the request body.
 —  This parameter allows followers to be selected by content or to be created implicitly as part of the basic request. See the 'follower_ids' attribute of the epic resource. The followers' ids must not be included if creating a new one.
 
follower_ids
List[int] in the request body.
 —  IDs of people currently following the story.
 
after_id
int in the request body.
 —  id of the epic preceding the epic.
 
before_id
int in the request body.
 —  id of the epic following the epic.
 

Epic

ENDPOINT

/projects/{project_id}/epics/{epic_id}

Operations on an individual epic.

GET
/projects/{project_id}/epics/{epic_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/5"

Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","description":"Identify the systems and eliminate the rebel scum.","id":5,"kind":"epic","label":{"id":2008,"project_id":99,"kind":"label","name":"rebel bases","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"},"name":"Rebel Home Worlds","project_id":99,"updated_at":"2024-08-20T12:00:00Z","url":"http://localhost/epic/show/5"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/5?fields=name%2Cproject%28enable_following%2Ctime_zone%2Cweek_start_day%2Cname%29"

Hide Response
Headers
Response Body
{"id":5,"name":"Rebel Home Worlds","project":{"id":99,"name":"Death Star","week_start_day":"Monday","time_zone":{"kind":"time_zone","olson_name":"America/Los_Angeles","offset":"-07:00"},"enable_following":true}}
Successful responses to this request return the epic resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
epic_id
int in the request path.
required  —  The ID of the epic.
 
PUT
/projects/{project_id}/epics/{epic_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"description":"new desc"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/5"

Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","description":"new desc","id":5,"kind":"epic","label":{"kind":"label","id":2008,"project_id":99,"name":"rebel bases","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"},"name":"Rebel Home Worlds","project_id":99,"updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/epic/show/5"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"label":{"name":"find-rebels"}}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/5?fields=name%2Clabel_id"

Hide Response
Headers
Response Body
{"id":5,"label_id":5100,"name":"Rebel Home Worlds"}
Successful responses to this request return the epic resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
epic_id
int in the request path.
required  —  The ID of the epic.
 
follower_ids
List[int] in the request body.
 —  The ids of the project members to follow the epic.
 
name
extended string[5000] in the request body.
 —  Name of the epic.
 
label
label in the request body.
 —  This parameter allows a label to be selected by content or to be created implicitly as part of the basic request. See the 'label_id' attribute of the epic resource. The label's id must not be included if creating a new one.
 
label_id
int in the request body.
 —  id of the epic's label.
 
description
extended string[20000] in the request body.
 —  In-depth explanation of the epic's goals, scope, etc.
 
after_id
int in the request body.
 —  id of the epic preceding the epic.
 
before_id
int in the request body.
 —  id of the epic following the epic.
 
DELETE
/projects/{project_id}/epics/{epic_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/5"

Hide Response
Headers

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
epic_id
int in the request path.
required  —  The ID of the epic.
 
ENDPOINT

/epics/{epic_id}

Get an individual epic.

GET
/epics/{epic_id}

export TOKEN='your Pivotal Tracker API token'

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/epics/5"

Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","description":"Identify the systems and eliminate the rebel scum.","id":5,"kind":"epic","label":{"id":2008,"project_id":99,"kind":"label","name":"rebel bases","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"},"name":"Rebel Home Worlds","project_id":99,"updated_at":"2024-08-20T12:00:00Z","url":"http://localhost/epic/show/5"}
Successful responses to this request return the epic resource.

PARAMETERS

epic_id
int in the request path.
required  —  The ID of the epic.
 

Comments

ENDPOINT

/projects/{project_id}/stories/{story_id}/comments

Index of comments on an individual story.

GET
/projects/{project_id}/stories/{story_id}/comments

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=555

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/comments"

View Response
Hide Response
Headers
Response Body
[{"kind":"comment","id":112,"story_id":555,"text":"I want them alive!","person_id":101,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}]
Successful responses to this request return the comment resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
POST
/projects/{project_id}/stories/{story_id}/comments

Note that to include file_attachments or google_attachments in a new comment, they must be identified using complete nested resources (JSON hashes, like the one in the response from performing an upload to /projects/{project_id}/uploads) rather than solely by ID. When attaching an uploaded file, the client should include the entire file_attachment resource hash that was received from the server in response to uploading the file—this includes the file_attachment resource's id attribute.

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=555

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"text":"If this is a consular ship, then where is the ambassador 👅?"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/comments"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","id":300,"kind":"comment","person_id":101,"story_id":555,"text":"If this is a consular ship, then where is the ambassador 👅?","updated_at":"2024-08-20T12:00:00Z"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=555

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"commit_identifier":"abc123","commit_type":"github"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/comments?fields=commit_identifier"

View Response
Hide Response
Headers
Response Body
{"commit_identifier":"abc123","id":300}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=555

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"person_id":104,"text":"Blame the clone for saying this."}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/comments"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","id":300,"kind":"comment","person_id":104,"story_id":555,"text":"Blame the clone for saying this.","updated_at":"2024-08-20T12:00:00Z"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=555

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"file_attachments":[{"id":24,"kind":"file_attachment","filename":"empire.png","size":82382,"width":1000,"height":804,"uploader_id":100,"thumbnail_url":"/attachments/0000/0024/empire_thumb.png","thumbnailable":true,"uploaded":true,"download_url":"/attachments/0000/0024/empire_big.png","created_at":"2024-08-20T12:00:00Z","content_type":"image/png"}],"text":"What if this were our new sigil?"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/comments?fields=%3Adefault%2Cfile_attachment_ids"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","file_attachment_ids":[24],"id":300,"kind":"comment","person_id":101,"story_id":555,"text":"What if this were our new sigil?","updated_at":"2024-08-20T12:00:00Z"}
Successful responses to this request return the comment resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
text
extended string[20000] in the request body.
 —  Content of the comment.
 
person_id
int in the request body.
 —  The id of the comment creator.
 
file_attachments
List[file_attachment] in the request body.
 —  This parameter allows file_attachments to be selected by content as part of the basic request. See the 'file_attachment_ids' attribute of the comment resource. The file_attachments' ids must be included.
 
google_attachments
List[google_attachment] in the request body.
 —  This parameter allows creation of new google_attachments implicitly as part of the basic request. See the 'google_attachment_ids' attribute of the comment resource. The nested google_attachments must not contain an id.
 
attachments
List[attachment] in the request body.
 —  This parameter allows attachments to be selected by content as part of the basic request. See the 'attachment_ids' attribute of the comment resource. The attachments' ids must be included.
 
commit_identifier
string[255] in the request body.
 —  Commit Id on the remote source control system for the comment. Present only on comments that were created by a POST to the source commits API endpoint.
 
commit_type
string[255] in the request body.
 —  String identifying the type of remote source control system if Pivotal Tracker can determine it. Present only on comments that were created by a POST to the source commits API endpoint.
 
external_source
string[255] in the request body.
 —  String identifying, in case these comment has been cloned from another platform(eg. jira).
 
external_author
string[255] in the request body.
 —  Original author name at the source platform.
 
external_link
string[255] in the request body.
 —  Link of the actual comment at source platform.
 
ENDPOINT

/projects/{project_id}/stories/{story_id}/comments/{comment_id}

Operations on an individual comment.

DELETE
/projects/{project_id}/stories/{story_id}/comments/{comment_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=564

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/comments/109"

View Response
Hide Response
Headers

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
comment_id
int in the request path.
required  —  The ID of the comment.
 
GET
/projects/{project_id}/stories/{story_id}/comments/{comment_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=564

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/comments/109"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","id":109,"kind":"comment","person_id":102,"story_id":564,"text":"I think you overestimate their chances!","updated_at":"2024-08-20T12:00:00Z"}
Successful responses to this request return the comment resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
comment_id
int in the request path.
required  —  The ID of the comment.
 
PUT
/projects/{project_id}/stories/{story_id}/comments/{comment_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=564

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"text":"updated comment text"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/comments/109"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","id":109,"kind":"comment","person_id":102,"story_id":564,"text":"updated comment text","updated_at":"2024-08-20T12:00:05Z"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=564

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"file_attachment_ids_to_add":[21]}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/comments/109?fields=%3Adefault%2Cfile_attachments"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:05Z","file_attachments":[{"kind":"file_attachment","id":21,"filename":"Corellian corvette deck plan.tiff","created_at":"2024-08-20T12:00:05Z","uploader_id":101,"thumbnailable":false,"height":216,"width":650,"size":561878,"download_url":"/attachments/0000/0021/Corellian corvette deck plan_big.tiff","thumbnail_url":"/attachments/0000/0021/Corellian corvette deck plan_thumb.tiff"}],"id":109,"kind":"comment","person_id":102,"story_id":564,"text":"I think you overestimate their chances!","updated_at":"2024-08-20T12:00:10Z"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=555

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"file_attachment_ids_to_remove":[21]}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/comments/112?fields=%3Adefault%2Cfile_attachments"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:05Z","file_attachments":[{"kind":"file_attachment","id":20,"filename":"empire.png","created_at":"2024-08-20T12:00:05Z","uploader_id":100,"thumbnailable":true,"height":804,"width":1000,"size":82382,"download_url":"/attachments/0000/0020/empire_big.png","thumbnail_url":"/attachments/0000/0020/empire_thumb.png"}],"id":112,"kind":"comment","person_id":101,"story_id":555,"text":"I want them alive!","updated_at":"2024-08-20T12:00:10Z"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=555

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"google_attachment_ids_to_remove":[50]}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/comments/112?fields=%3Adefault%2Cgoogle_attachments"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","google_attachments":[],"id":112,"kind":"comment","person_id":101,"story_id":555,"text":"I want them alive!","updated_at":"2024-08-20T12:00:05Z"}
Successful responses to this request return the comment resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
comment_id
int in the request path.
required  —  The ID of the comment.
 
text
extended string in the request body.
 —  The updated text for the comment
 
file_attachment_ids_to_add
List[int] in the request body.
 —  list of ids for existing file attachments to attach to the comment
 
file_attachment_ids_to_remove
List[int] in the request body.
 —  list of ids for file attachments to detach from the comment
 
google_attachment_ids_to_remove
List[int] in the request body.
 —  list of ids for google attachments to remove from the comment
 
attachments_to_add
List[attachment] in the request body.
 —  list of objects for existing attachments to attach to the comment
 
attachment_ids_to_remove
List[identity_object] in the request body.
 —  list of identity objects for attachments to detach from the comment
 
ENDPOINT

/projects/{project_id}/epics/{epic_id}/comments

Index of comments on an individual epic.

GET
/projects/{project_id}/epics/{epic_id}/comments

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export EPIC_ID=5

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/$EPIC_ID/comments"

Hide Response
Headers
Response Body
[{"kind":"comment","id":110,"epic_id":5,"text":"Should we send a probe to Dantooine?","person_id":103,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}]

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export EPIC_ID=5

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/$EPIC_ID/comments/110?fields=file_attachments%2Cgoogle_attachments"

Hide Response
Headers
Response Body
{"file_attachments":[],"google_attachments":[],"id":110}
Successful responses to this request return the comment resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
epic_id
int in the request path.
required  —  The ID of the epic.
 
POST
/projects/{project_id}/epics/{epic_id}/comments

Note that to include file_attachments or google_attachments in a new comment, they must be identified using complete nested resources (JSON hashes, like the one in the response from performing an upload to /projects/{project_id}/uploads) rather than solely by ID. When attaching an uploaded file, the client should include the entire file_attachment resource hash that was received from the server in response to uploading the file—this includes the file_attachment resource's id attribute.

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export EPIC_ID=5

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"text":"This is my comment"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/$EPIC_ID/comments"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","epic_id":5,"id":300,"kind":"comment","person_id":103,"text":"This is my comment","updated_at":"2024-08-20T12:00:00Z"}
Successful responses to this request return the comment resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
epic_id
int in the request path.
required  —  The ID of the epic.
 
text
extended string[20000] in the request body.
 —  Content of the comment.
 
person_id
int in the request body.
 —  The id of the comment creator.
 
file_attachments
List[file_attachment] in the request body.
 —  This parameter allows file_attachments to be selected by content as part of the basic request. See the 'file_attachment_ids' attribute of the comment resource. The file_attachments' ids must be included.
 
google_attachments
List[google_attachment] in the request body.
 —  This parameter allows creation of new google_attachments implicitly as part of the basic request. See the 'google_attachment_ids' attribute of the comment resource. The nested google_attachments must not contain an id.
 
attachments
List[attachment] in the request body.
 —  This parameter allows attachments to be selected by content as part of the basic request. See the 'attachment_ids' attribute of the comment resource. The attachments' ids must be included.
 
commit_identifier
string[255] in the request body.
 —  Commit Id on the remote source control system for the comment. Present only on comments that were created by a POST to the source commits API endpoint.
 
commit_type
string[255] in the request body.
 —  String identifying the type of remote source control system if Pivotal Tracker can determine it. Present only on comments that were created by a POST to the source commits API endpoint.
 
external_source
string[255] in the request body.
 —  String identifying, in case these comment has been cloned from another platform(eg. jira).
 
external_author
string[255] in the request body.
 —  Original author name at the source platform.
 
external_link
string[255] in the request body.
 —  Link of the actual comment at source platform.
 
ENDPOINT

/projects/{project_id}/epics/{epic_id}/comments/{comment_id}

Operations on an individual comment.

DELETE
/projects/{project_id}/epics/{epic_id}/comments/{comment_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export EPIC_ID=5

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/$EPIC_ID/comments/110"

Hide Response
Headers

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
epic_id
int in the request path.
required  —  The ID of the epic.
 
comment_id
int in the request path.
required  —  The ID of the comment.
 
GET
/projects/{project_id}/epics/{epic_id}/comments/{comment_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export EPIC_ID=5

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/$EPIC_ID/comments/110"

Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","epic_id":5,"id":110,"kind":"comment","person_id":103,"text":"Should we send a probe to Dantooine?","updated_at":"2024-08-20T12:00:00Z"}
Successful responses to this request return the comment resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
epic_id
int in the request path.
required  —  The ID of the epic.
 
comment_id
int in the request path.
required  —  The ID of the comment.
 
PUT
/projects/{project_id}/epics/{epic_id}/comments/{comment_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export EPIC_ID=5

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"text":"updated comment text"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/$EPIC_ID/comments/110"

Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","epic_id":5,"id":110,"kind":"comment","person_id":103,"text":"updated comment text","updated_at":"2024-08-20T12:00:05Z"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export EPIC_ID=5

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"file_attachment_ids_to_add":[26]}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/$EPIC_ID/comments/110?fields=%3Adefault%2Cfile_attachments"

Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","epic_id":5,"file_attachments":[{"kind":"file_attachment","id":26,"filename":"empire_thumb.png","created_at":"2024-08-20T12:00:00Z","thumbnailable":false,"height":58,"width":72,"size":82382,"download_url":"/attachments/0000/0020/empire_thumb_big.png","thumbnail_url":"/attachments/0000/0020/empire_thumb_thumb.png"}],"id":110,"kind":"comment","person_id":103,"text":"Should we send a probe to Dantooine?","updated_at":"2024-08-20T12:00:05Z"}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export EPIC_ID=6

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"file_attachment_ids_to_remove":[22]}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/$EPIC_ID/comments/111?fields=%3Adefault%2Cfile_attachments"

Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","epic_id":6,"file_attachments":[],"id":111,"kind":"comment","person_id":103,"text":"Check out these Uffel mouse droids","updated_at":"2024-08-20T12:00:05Z"}
Successful responses to this request return the comment resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
epic_id
int in the request path.
required  —  The ID of the epic.
 
comment_id
int in the request path.
required  —  The ID of the comment.
 
text
extended string in the request body.
 —  The updated text for the comment
 
file_attachment_ids_to_add
List[int] in the request body.
 —  list of ids for existing file attachments to attach to the comment
 
file_attachment_ids_to_remove
List[int] in the request body.
 —  list of ids for file attachments to detach from the comment
 
attachments_to_add
List[attachment] in the request body.
 —  list of objects for existing attachments to attach to the comment
 
attachment_ids_to_remove
List[identity_object] in the request body.
 —  list of identity objects for attachments to detach from the comment
 

Attachments

ENDPOINT

/projects/{project_id}/stories/{story_id}/comments/{comment_id}/file_attachments/{file_attachment_id}

Operations on an individual file attachment.

DELETE
/projects/{project_id}/stories/{story_id}/comments/{comment_id}/file_attachments/{file_attachment_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=555

export COMMENT_ID=112

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/comments/$COMMENT_ID/file_attachments/21"

View Response
Hide Response
Headers

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
comment_id
int in the request path.
required  —  The ID of the comment.
 
file_attachment_id
int in the request path.
required  —  The ID of the file_attachment.
 
ENDPOINT

/projects/{project_id}/stories/{story_id}/comments/{comment_id}/google_attachments/{google_attachment_id}

Operations on an individual google attachment.

DELETE
/projects/{project_id}/stories/{story_id}/comments/{comment_id}/google_attachments/{google_attachment_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=555

export COMMENT_ID=112

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/comments/$COMMENT_ID/google_attachments/50"

View Response
Hide Response
Headers

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
comment_id
int in the request path.
required  —  The ID of the comment.
 
google_attachment_id
int in the request path.
required  —  The ID of the google_attachment.
 
ENDPOINT

/projects/{project_id}/epics/{epic_id}/comments/{comment_id}/file_attachments/{file_attachment_id}

Operations on an individual file attachment.

DELETE
/projects/{project_id}/epics/{epic_id}/comments/{comment_id}/file_attachments/{file_attachment_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export EPIC_ID=6

export COMMENT_ID=111

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/$EPIC_ID/comments/$COMMENT_ID/file_attachments/22"

Hide Response
Headers

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
epic_id
int in the request path.
required  —  The ID of the epic.
 
comment_id
int in the request path.
required  —  The ID of the comment.
 
file_attachment_id
int in the request path.
required  —  The ID of the file_attachment.
 
ENDPOINT

/projects/{project_id}/epics/{epic_id}/comments/{comment_id}/google_attachments/{google_attachment_id}

Operations on an individual google attachment.

DELETE
/projects/{project_id}/epics/{epic_id}/comments/{comment_id}/google_attachments/{google_attachment_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export EPIC_ID=6

export COMMENT_ID=111

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/$EPIC_ID/comments/$COMMENT_ID/google_attachments/51"

Hide Response
Headers

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
epic_id
int in the request path.
required  —  The ID of the epic.
 
comment_id
int in the request path.
required  —  The ID of the comment.
 
google_attachment_id
int in the request path.
required  —  The ID of the google_attachment.
 
ENDPOINT

/projects/{project_id}/uploads

Upload content for a new file_attachment object.

POST
/projects/{project_id}/uploads

export TOKEN='your Pivotal Tracker API token'

export FILE_PATH='/home/vader/art-projects/new-imperial-logo-6.jpg'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -F file=@"$FILE_PATH" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/uploads"

View Response
Hide Response
Headers
Response Body
"{\"kind\":\"file_attachment\",\"id\":300,\"filename\":\"new-imperial-logo.jpg\",\"created_at\":\"2024-08-21T12:00:00Z\",\"uploader_id\":101,\"thumbnailable\":true,\"height\":1995,\"width\":2000,\"size\":96228,\"download_url\":\"/file_attachments/300/download\",\"content_type\":\"image/jpeg\",\"uploaded\":false,\"big_url\":\"#\",\"thumbnail_url\":\"#\"}"
Successful responses to this request return the file_attachment resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
comment
object in the request body.
 —  The comment with which the file attachment will be associated.
 
file
binary form data in the request body.
required  —  The content of the file being uploaded. It is expected to be incorporated in the multipart data with a 'Content-Disposition' of 'form-data; name="file"; filename="imperial_banner.png"'. The file extension is used to determine the file's content type. A Content-Type header may be supplied, but it is not used to determine the file type.
 
The HTTP body for this request should not be JSON-encoded. Instead, the request's Content-type should be multipart/form-data.
ENDPOINT

https://www.pivotaltracker.com/file_attachments/{file_attachment_id}/download

Download the original file content of an attachment.

GET
https://www.pivotaltracker.com/file_attachments/{file_attachment_id}/download

PARAMETERS

file_attachment_id
int in the request path.
required  —  The ID of the file_attachment.
 
inline
boolean in the request query.
 —  Determines if server should include response headers that would cause a browser to show the attachment in a new tab or window (inline=true) or show a Save dialog box (inline=false). Default is false.
 

Search

ENDPOINT

/projects/{project_id}/search

GET only; searches the project data and returns the stories and/or epics matching the query_string.

GET
/projects/{project_id}/search

Note that labels or strings with a space must be quoted, and multiple filters must be separated with a space, and everything must be URL-escaped. You can also search on multiple values within the same search term, for example, 'filter=id:1,2,3' will return resources with the id 1, 2 or 3.

Searches can be refined with all of the modifications listed here: How can a search be refined?

On endpoints that support filters, 'filter' can only be combined with project_id, date_format, limit and offset. All other parameters will result in an error.

label:"jedi stuff" keyword
keyword created_since:11/16/2009 has_attachment:

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/search?query=label%3Amnt+AND+includedone%3Atrue"

Hide Response
Headers
Response Body
{"epics":{"epics":[],"total_hits":0},"query":"label:mnt AND includedone:true","stories":{"stories":[{"kind":"story","id":566,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:05Z","story_type":"feature","name":"Clean Cell Block 1138","description":"The large, hairy _Thing_ is being transferred away","current_state":"unstarted","requested_by_id":104,"project_id":99,"url":"http://localhost:3000/story/show/566","owner_ids":[],"labels":[{"id":2010,"project_id":99,"kind":"label","name":"mnt","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}]},{"kind":"story","id":564,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:10Z","story_type":"feature","name":"Reactor leak reported in Detention Block AA-23","description":"large leak, very dangerous","current_state":"unstarted","requested_by_id":103,"project_id":99,"url":"http://localhost:3000/story/show/564","owner_ids":[],"labels":[{"id":2010,"project_id":99,"kind":"label","name":"mnt","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}]}],"total_points":0,"total_points_completed":0,"total_hits":2,"total_hits_with_done":2}}
Successful responses to this request return the search_result_container resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
query
extended string in the request query.
required  —  String containing the search terms and options. How can a search be refined?
 

Saved Search

ENDPOINT

/projects/{project_id}/my/searches

Access the saved searches for the currently logged-in person.

GET
/projects/{project_id}/my/searches

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/my/searches"

Hide Response
Headers
Response Body
[{"kind":"saved_search","id":4,"project_id":99,"name":"New Maintenance Issues","query":"label:\"mnt\" state:unscheduled"},{"kind":"saved_search","id":5,"project_id":99,"name":"Family","query":"luke, leia"}]
Successful responses to this request return an array containing zero or more instances of the saved_search resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
POST
/projects/{project_id}/my/searches

Note that labels or strings with a space must be quoted, and multiple filters must be separated with a space, and everything must be URL-escaped. You can also search on multiple values within the same search term, for example, 'filter=id:1,2,3' will return resources with the id 1, 2 or 3.

Searches can be refined with all of the modifications listed here: How can a search be refined?

On endpoints that support filters, 'filter' can only be combined with project_id, date_format, limit and offset. All other parameters will result in an error.

label:"jedi stuff" keyword
keyword created_since:11/16/2009 has_attachment:

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"name":"my saved search","query":"label:\"rebel bases\""}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/my/searches"

View Response
Hide Response
Headers
Response Body
{"id":300,"kind":"saved_search","name":"my saved search","project_id":99,"query":"label:\"rebel bases\""}
Successful responses to this request return the saved_search resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
name
string[255] in the request body.
required  —  Name of the saved search.
 
query
string[1000] in the request body.
required  —  The search criteria string containing search terms and options which were specified for this saved search. How can a search be refined?
 
ENDPOINT

/projects/{project_id}/my/searches/{search_id}

Deleted a saved search for the currently logged-in person.

DELETE
/projects/{project_id}/my/searches/{search_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/my/searches/5"

Hide Response
Headers

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
search_id
int in the request path.
required  —  The ID of the search.
 

Activity

ENDPOINT

/my/activity

Provides a list of all the activity performed by you. (Limited to the most recent six months of activity performed in projects that are in accounts on any non-Enterprise subscription plan, and to at least the last 25 months of activity for projects in an account on an Enterprise subscription plan.)

GET
/my/activity

export TOKEN='your Pivotal Tracker API token'

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/my/activity"

Hide Response
Headers
Response Body
[{"kind":"story_move_activity","guid":"99_65","project_version":65,"message":"Darth Vader moved 2 stories","highlight":"moved","changes":[{"kind":"story","change_type":"update","id":562,"original_values":{"before_id":551},"new_values":{"before_id":557},"name":"Garbage smashers on the detention level have malfunctioned","story_type":"bug","story_priority":"p3"},{"kind":"story","change_type":"update","id":564,"original_values":{"after_id":557},"new_values":{"after_id":565},"name":"Evacuate, in our moment of triumph","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":564,"name":"Evacuate, in our moment of triumph","story_type":"feature","url":"http://localhost/story/show/564","story_priority":"p3"},{"kind":"story","id":562,"name":"Garbage smashers on the detention level have malfunctioned","story_type":"bug","url":"http://localhost/story/show/562","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:05Z"},{"kind":"story_move_activity","guid":"99_64","project_version":64,"message":"Darth Vader moved 2 stories","highlight":"moved","changes":[{"kind":"story","change_type":"update","id":562,"original_values":{"before_id":557},"new_values":{"before_id":551},"name":"Garbage smashers on the detention level have malfunctioned","story_type":"bug","story_priority":"p3"},{"kind":"story","change_type":"update","id":564,"original_values":{"after_id":565},"new_values":{"after_id":557},"name":"Evacuate, in our moment of triumph","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":564,"name":"Evacuate, in our moment of triumph","story_type":"feature","url":"http://localhost/story/show/564","story_priority":"p3"},{"kind":"story","id":562,"name":"Garbage smashers on the detention level have malfunctioned","story_type":"bug","url":"http://localhost/story/show/562","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:05Z"},{"kind":"comment_create_activity","guid":"99_62","project_version":62,"message":"Darth Vader added comment: \"I want them alive!\"","highlight":"added comment:","changes":[{"kind":"comment","change_type":"create","id":112,"new_values":{"id":112,"story_id":555,"text":"I want them alive!","person_id":101,"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","file_attachment_ids":[],"google_attachment_ids":[],"attachment_ids":[],"file_attachments":[],"google_attachments":[]}},{"kind":"story","change_type":"update","id":555,"original_values":{"follower_ids":[]},"new_values":{"follower_ids":[101]},"name":"Bring me the passengers","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":555,"name":"Bring me the passengers","story_type":"feature","url":"http://localhost/story/show/555","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:05Z"},{"kind":"story_update_activity","guid":"99_56","project_version":56,"message":"Darth Vader unstarted this feature","highlight":"unstarted","changes":[{"kind":"story","change_type":"update","id":555,"original_values":{"current_state":"unscheduled","before_id":551,"after_id":557},"new_values":{"current_state":"unstarted","before_id":567,"after_id":552},"name":"Bring me the passengers","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":555,"name":"Bring me the passengers","story_type":"feature","url":"http://localhost/story/show/555","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:05Z"},{"kind":"story_update_activity","guid":"99_54","project_version":54,"message":"Darth Vader rejected this feature","highlight":"rejected","changes":[{"kind":"label","change_type":"update","id":2009,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":2,"finished":0,"unstarted":0,"planned":0,"delivered":3,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":1,"finished":0,"unstarted":0,"planned":0,"delivered":1,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":2,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":3,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":1,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":1,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"plans"},{"kind":"story","change_type":"update","id":559,"original_values":{"current_state":"delivered"},"new_values":{"current_state":"rejected"},"name":"All exhaust ports should be shielded","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":559,"name":"All exhaust ports should be shielded","story_type":"feature","url":"http://localhost/story/show/559","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:05Z"},{"kind":"story_update_activity","guid":"99_48","project_version":48,"message":"Darth Vader started this feature","highlight":"started","changes":[{"kind":"label","change_type":"update","id":2008,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":4,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":2,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":4,"started":2,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":2,"started":1,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"rebel bases"},{"kind":"label","change_type":"update","id":2009,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":5,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":2,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":1,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"plans"},{"kind":"story","change_type":"update","id":556,"original_values":{"current_state":"unscheduled","before_id":555,"after_id":557},"new_values":{"current_state":"started","before_id":567,"after_id":560},"name":"Interrogate Leia Organa","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":556,"name":"Interrogate Leia Organa","story_type":"feature","url":"http://localhost/story/show/556","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:05Z"},{"kind":"story_update_activity","guid":"99_47","project_version":47,"message":"Darth Vader accepted this feature","highlight":"accepted","changes":[{"kind":"label","change_type":"update","id":2008,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":1,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":1,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":4,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":2,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"rebel bases"},{"kind":"story","change_type":"update","id":560,"original_values":{"current_state":"delivered","accepted_at":null},"new_values":{"current_state":"accepted","accepted_at":"2024-08-20T12:00:05Z"},"name":"Destroy Alderaan","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":560,"name":"Destroy Alderaan","story_type":"feature","url":"http://localhost/story/show/560","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:05Z"},{"kind":"story_update_activity","guid":"99_43","project_version":43,"message":"Darth Vader edited this feature","highlight":"edited","changes":[{"kind":"label","change_type":"update","id":2008,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"rebel bases"},{"kind":"label","change_type":"update","id":2009,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":5,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"plans"},{"kind":"label","change_type":"update","id":2015,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"diplomatic relations"},{"kind":"story","change_type":"update","id":556,"original_values":{"label_ids":[2015],"labels":["diplomatic relations"]},"new_values":{"label_ids":[2009,2008],"labels":["plans","rebel bases"]},"name":"Interrogate Leia Organa","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":556,"name":"Interrogate Leia Organa","story_type":"feature","url":"http://localhost/story/show/556","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:05Z"},{"kind":"story_create_activity","guid":"98_2","project_version":2,"message":"Darth Vader added this feature","highlight":"added","changes":[{"kind":"story","change_type":"create","id":568,"new_values":{"id":568,"project_id":98,"name":"Midi-chlorians","description":"Without the midi-chlorians, life could not exist, and we would have no knowledge of the Force. They continually speak to us, telling us the will of the Force. When you learn to quiet your mind, you'll hear them speaking to you","story_type":"feature","current_state":"unstarted","estimate":3,"requested_by_id":101,"owned_by_id":101,"owner_ids":[101],"label_ids":[],"follower_ids":[],"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","blocked_story_ids":[],"story_priority":"p3","labels":[]},"name":"Midi-chlorians","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":568,"name":"Midi-chlorians","story_type":"feature","url":"http://localhost/story/show/568","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":98,"name":"Learn About the Force"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:05Z"},{"kind":"story_create_activity","guid":"99_11","project_version":11,"message":"Darth Vader added this feature","highlight":"added","changes":[{"kind":"story","change_type":"create","id":558,"new_values":{"id":558,"project_id":99,"name":"Contact Lando","story_type":"feature","current_state":"accepted","estimate":1,"accepted_at":"2024-08-20T12:00:05Z","requested_by_id":101,"owner_ids":[],"label_ids":[],"follower_ids":[],"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","before_id":557,"after_id":553,"blocked_story_ids":[],"story_priority":"p3","labels":[]},"name":"Contact Lando","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":558,"name":"Contact Lando","story_type":"feature","url":"http://localhost/story/show/558","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:05Z"},{"kind":"story_create_activity","guid":"99_10","project_version":10,"message":"Darth Vader added this feature","highlight":"added","changes":[{"kind":"story","change_type":"create","id":557,"new_values":{"id":557,"project_id":99,"name":"Prepare carbonite freezing chamber","description":"Test first on Solo, we don't want the Emperor's prize damaged.","story_type":"feature","current_state":"unscheduled","requested_by_id":101,"owner_ids":[],"label_ids":[2014],"follower_ids":[],"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","before_id":556,"after_id":553,"blocked_story_ids":[],"story_priority":"p3","labels":["r&d"]},"name":"Prepare carbonite freezing chamber","story_type":"feature","story_priority":"p3"},{"kind":"label","change_type":"update","id":2014,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"r&d"}],"primary_resources":[{"kind":"story","id":557,"name":"Prepare carbonite freezing chamber","story_type":"feature","url":"http://localhost/story/show/557","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:05Z"},{"kind":"story_create_activity","guid":"99_9","project_version":9,"message":"Darth Vader added this feature","highlight":"added","changes":[{"kind":"story","change_type":"create","id":556,"new_values":{"id":556,"project_id":99,"name":"Interrogate Leia Organa","description":"She is proving to be resistant to our mind probes","story_type":"feature","current_state":"unscheduled","requested_by_id":101,"owned_by_id":101,"owner_ids":[101,105],"label_ids":[2015],"follower_ids":[],"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","before_id":555,"after_id":553,"blocked_story_ids":[],"story_priority":"p3","labels":["diplomatic relations"]},"name":"Interrogate Leia Organa","story_type":"feature","story_priority":"p3"},{"kind":"label","change_type":"update","id":2015,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"diplomatic relations"}],"primary_resources":[{"kind":"story","id":556,"name":"Interrogate Leia Organa","story_type":"feature","url":"http://localhost/story/show/556","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:05Z"},{"kind":"story_create_activity","guid":"99_8","project_version":8,"message":"Darth Vader added this feature","highlight":"added","changes":[{"kind":"story","change_type":"create","id":555,"new_values":{"id":555,"project_id":99,"name":"Bring me the passengers","description":"ignore the droids","story_type":"feature","current_state":"unscheduled","requested_by_id":101,"owner_ids":[],"label_ids":[],"follower_ids":[],"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","before_id":554,"after_id":553,"blocked_story_ids":[],"story_priority":"p3","labels":[]},"name":"Bring me the passengers","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":555,"name":"Bring me the passengers","story_type":"feature","url":"http://localhost/story/show/555","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:05Z"},{"kind":"story_create_activity","guid":"99_7","project_version":7,"message":"Darth Vader added this feature","highlight":"added","changes":[{"kind":"story","change_type":"create","id":554,"new_values":{"id":554,"project_id":99,"name":"Identify Bothan spies","description":"Infiltrate their spy network.","story_type":"feature","current_state":"unscheduled","requested_by_id":101,"owned_by_id":106,"owner_ids":[106],"label_ids":[],"follower_ids":[],"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","before_id":552,"after_id":553,"blocked_story_ids":[],"story_priority":"p3","labels":[]},"name":"Identify Bothan spies","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":554,"name":"Identify Bothan spies","story_type":"feature","url":"http://localhost/story/show/554","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:05Z"},{"kind":"story_create_activity","guid":"99_6","project_version":6,"message":"Darth Vader added this feature","highlight":"added","changes":[{"kind":"story","change_type":"create","id":553,"new_values":{"id":553,"project_id":99,"name":"Build protocol droid","description":"I want a friend","story_type":"feature","current_state":"accepted","estimate":3,"accepted_at":"2024-08-20T12:00:05Z","requested_by_id":101,"owned_by_id":101,"owner_ids":[101],"label_ids":[2014,2008],"follower_ids":[],"created_at":"2024-08-20T12:00:05Z","updated_at":"2024-08-20T12:00:05Z","before_id":552,"blocked_story_ids":[],"story_priority":"p3","labels":["r&d","rebel bases"]},"name":"Build protocol droid","story_type":"feature","story_priority":"p3"},{"kind":"label","change_type":"update","id":2008,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"rebel bases"},{"kind":"label","change_type":"update","id":2014,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"r&d"}],"primary_resources":[{"kind":"story","id":553,"name":"Build protocol droid","story_type":"feature","url":"http://localhost/story/show/553","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:05Z"}]
Successful responses to this request return an array containing zero or more instances of an activity-type resource. In particular, any mix of any of the following: blocker_create_activity, blocker_delete_activity, blocker_update_activity, blocking_create_activity, blocking_delete_activity, branch_create_activity, branch_delete_activity, cicd_event_create_activity, comment_create_activity, comment_delete_activity, comment_update_activity, epic_create_activity, epic_delete_activity, epic_move_activity, epic_update_activity, follower_create_activity, follower_delete_activity, iteration_update_activity, label_create_activity, label_delete_activity, label_merge_activity, label_update_activity, model_import_activity, project_membership_create_activity, project_membership_delete_activity, project_membership_update_activity, project_update_activity, pull_request_create_activity, pull_request_delete_activity, pull_request_update_activity, reaction_create_activity, reaction_delete_activity, reaction_update_activity, review_create_activity, review_delete_activity, review_type_create_activity, review_type_update_activity, review_update_activity, story_create_activity, story_delete_activity, story_move_activity, story_move_from_project_activity, story_move_into_project_activity, story_move_into_project_and_prioritize_activity, story_update_activity, task_create_activity, task_delete_activity, task_update_activity. The response from this request is paginated, see Paginating List Responses.

PARAMETERS

limit
int[pos] in the request query.
 —  The number of activity items you want returned.
 
offset
int[pos] in the request query.
 —  Index of the first activity item you want, starting from zero.
 
occurred_before
datetime in the request query.
 —  Activity will be returned only for operations that occurred before the time specified by this parameter.
 
occurred_after
datetime in the request query.
 —  Activity will be returned only for operations that occurred after the time specified by this parameter.
 
sort_order
enumerated string in the request query.
 —  The order to return the activity. Defaults to descending (most recent first).
Valid enumeration values: asc, desc
 
ENDPOINT

/projects/{project_id}/activity

Provides a list of all the activity performed on a project. (Limited to the most recent six months of activity performed in projects that are in accounts on any non-Enterprise subscription plan, and to at least the last 25 months of activity for projects in an account on an Enterprise subscription plan.)

GET
/projects/{project_id}/activity

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/activity?limit=1"

Hide Response
Headers
Response Body
[{"kind":"iteration_update_activity","guid":"99_66","project_version":66,"message":"Wilhuff Tarkin changed iteration 1's length from default to 2 weeks","highlight":"changed","changes":[{"kind":"iteration_override","change_type":"update","number":1,"original_values":{"number":1,"finish":1724155200000,"team_strength":1.0,"length":"default"},"new_values":{"number":1,"team_strength":0.9,"length":2,"finish":1724155205000}}],"primary_resources":[{"kind":"iteration_override","number":1}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":102,"name":"Wilhuff Tarkin","initials":"WT"},"occurred_at":"2024-08-20T12:00:10Z"}]
Successful responses to this request return an array containing zero or more instances of an activity-type resource. In particular, any mix of any of the following: blocker_create_activity, blocker_delete_activity, blocker_update_activity, blocking_create_activity, blocking_delete_activity, branch_create_activity, branch_delete_activity, cicd_event_create_activity, comment_create_activity, comment_delete_activity, comment_update_activity, epic_create_activity, epic_delete_activity, epic_move_activity, epic_update_activity, follower_create_activity, follower_delete_activity, iteration_update_activity, label_create_activity, label_delete_activity, label_merge_activity, label_update_activity, model_import_activity, project_membership_create_activity, project_membership_delete_activity, project_membership_update_activity, project_update_activity, pull_request_create_activity, pull_request_delete_activity, pull_request_update_activity, reaction_create_activity, reaction_delete_activity, reaction_update_activity, review_create_activity, review_delete_activity, review_type_create_activity, review_type_update_activity, review_update_activity, story_create_activity, story_delete_activity, story_move_activity, story_move_from_project_activity, story_move_into_project_activity, story_move_into_project_and_prioritize_activity, story_update_activity, task_create_activity, task_delete_activity, task_update_activity. The response from this request is paginated, see Paginating List Responses.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
sort_order
enumerated string in the request query.
 —  The order to return the activity. Defaults to descending.
Valid enumeration values: asc, desc
 
limit
int[pos] in the request query.
 —  The number of activity items you want returned.
 
offset
int[pos] in the request query.
 —  Index of the first activity item you want, starting from zero.
 
occurred_before
datetime in the request query.
 —  Activity will be returned only for operations that occurred before the time specified by this parameter.
 
occurred_after
datetime in the request query.
 —  Activity will be returned only for operations that occurred after the time specified by this parameter.
 
since_version
int in the request query.
 —  Activity will be returned only for operations that occurred after the specified version.
 
ENDPOINT

/projects/{project_id}/stories/{story_id}/activity

Provides a list of all the activity performed on the story. (Limited to the most recent six months of activity performed in projects that are in accounts on any non-Enterprise subscription plan, and to at least the last 25 months of activity for projects in an account on an Enterprise subscription plan.)

GET
/projects/{project_id}/stories/{story_id}/activity

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=556

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/activity"

View Response
Hide Response
Headers
Response Body
[{"kind":"story_update_activity","guid":"99_48","project_version":48,"message":"Darth Vader started this feature","highlight":"started","changes":[{"kind":"label","change_type":"update","id":2008,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":4,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":2,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":4,"started":2,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":2,"started":1,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"rebel bases"},{"kind":"label","change_type":"update","id":2009,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":5,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":2,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":1,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"plans"},{"kind":"story","change_type":"update","id":556,"original_values":{"current_state":"unscheduled","before_id":555,"after_id":557},"new_values":{"current_state":"started","before_id":567,"after_id":560},"name":"Interrogate Leia Organa","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":556,"name":"Interrogate Leia Organa","story_type":"feature","url":"http://localhost/story/show/556","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:00Z"},{"kind":"story_update_activity","guid":"99_43","project_version":43,"message":"Darth Vader edited this feature","highlight":"edited","changes":[{"kind":"label","change_type":"update","id":2008,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"rebel bases"},{"kind":"label","change_type":"update","id":2009,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":5,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"plans"},{"kind":"label","change_type":"update","id":2015,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"diplomatic relations"},{"kind":"story","change_type":"update","id":556,"original_values":{"label_ids":[2015],"labels":["diplomatic relations"]},"new_values":{"label_ids":[2009,2008],"labels":["plans","rebel bases"]},"name":"Interrogate Leia Organa","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":556,"name":"Interrogate Leia Organa","story_type":"feature","url":"http://localhost/story/show/556","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:00Z"},{"kind":"story_update_activity","guid":"99_26","project_version":26,"message":"Emperor Palpatine estimated this feature as 2 points","highlight":"estimated","changes":[{"kind":"label","change_type":"update","id":2015,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"diplomatic relations"},{"kind":"story","change_type":"update","id":556,"original_values":{"estimate":null},"new_values":{"estimate":2},"name":"Interrogate Leia Organa","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":556,"name":"Interrogate Leia Organa","story_type":"feature","url":"http://localhost/story/show/556","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":100,"name":"Emperor Palpatine","initials":"EP"},"occurred_at":"2024-08-20T12:00:00Z"},{"kind":"story_create_activity","guid":"99_9","project_version":9,"message":"Darth Vader added this feature","highlight":"added","changes":[{"kind":"story","change_type":"create","id":556,"new_values":{"id":556,"project_id":99,"name":"Interrogate Leia Organa","description":"She is proving to be resistant to our mind probes","story_type":"feature","current_state":"unscheduled","requested_by_id":101,"owned_by_id":101,"owner_ids":[101,105],"label_ids":[2015],"follower_ids":[],"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","before_id":555,"after_id":553,"blocked_story_ids":[],"story_priority":"p3","labels":["diplomatic relations"]},"name":"Interrogate Leia Organa","story_type":"feature","story_priority":"p3"},{"kind":"label","change_type":"update","id":2015,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"diplomatic relations"}],"primary_resources":[{"kind":"story","id":556,"name":"Interrogate Leia Organa","story_type":"feature","url":"http://localhost/story/show/556","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:00Z"}]

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export STORY_ID=556

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories/$STORY_ID/activity?limit=2&offset=1"

View Response
Hide Response
Headers
Response Body
[{"kind":"story_update_activity","guid":"99_43","project_version":43,"message":"Darth Vader edited this feature","highlight":"edited","changes":[{"kind":"label","change_type":"update","id":2008,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"rebel bases"},{"kind":"label","change_type":"update","id":2009,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":5,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"plans"},{"kind":"label","change_type":"update","id":2015,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"diplomatic relations"},{"kind":"story","change_type":"update","id":556,"original_values":{"label_ids":[2015],"labels":["diplomatic relations"]},"new_values":{"label_ids":[2009,2008],"labels":["plans","rebel bases"]},"name":"Interrogate Leia Organa","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":556,"name":"Interrogate Leia Organa","story_type":"feature","url":"http://localhost/story/show/556","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:00Z"},{"kind":"story_update_activity","guid":"99_26","project_version":26,"message":"Emperor Palpatine estimated this feature as 2 points","highlight":"estimated","changes":[{"kind":"label","change_type":"update","id":2015,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"diplomatic relations"},{"kind":"story","change_type":"update","id":556,"original_values":{"estimate":null},"new_values":{"estimate":2},"name":"Interrogate Leia Organa","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":556,"name":"Interrogate Leia Organa","story_type":"feature","url":"http://localhost/story/show/556","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":100,"name":"Emperor Palpatine","initials":"EP"},"occurred_at":"2024-08-20T12:00:00Z"}]
Successful responses to this request return an array containing zero or more instances of an activity-type resource. In particular, any mix of any of the following: blocker_create_activity, blocker_delete_activity, blocker_update_activity, blocking_create_activity, blocking_delete_activity, branch_create_activity, branch_delete_activity, cicd_event_create_activity, comment_create_activity, comment_delete_activity, comment_update_activity, epic_create_activity, epic_delete_activity, epic_move_activity, epic_update_activity, follower_create_activity, follower_delete_activity, iteration_update_activity, label_create_activity, label_delete_activity, label_merge_activity, label_update_activity, model_import_activity, project_membership_create_activity, project_membership_delete_activity, project_membership_update_activity, project_update_activity, pull_request_create_activity, pull_request_delete_activity, pull_request_update_activity, reaction_create_activity, reaction_delete_activity, reaction_update_activity, review_create_activity, review_delete_activity, review_type_create_activity, review_type_update_activity, review_update_activity, story_create_activity, story_delete_activity, story_move_activity, story_move_from_project_activity, story_move_into_project_activity, story_move_into_project_and_prioritize_activity, story_update_activity, task_create_activity, task_delete_activity, task_update_activity. The response from this request is paginated, see Paginating List Responses.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_id
int in the request path.
required  —  The ID of the story.
 
sort_order
enumerated string in the request query.
 —  The order to return the activity. Defaults to descending.
Valid enumeration values: asc, desc
 
limit
int[pos] in the request query.
 —  The number of activity items you want returned.
 
offset
int[pos] in the request query.
 —  Index of the first activity item you want, starting from zero.
 
occurred_before
datetime in the request query.
 —  Activity will be returned only for operations that occurred before the time specified by this parameter.
 
occurred_after
datetime in the request query.
 —  Activity will be returned only for operations that occurred after the time specified by this parameter.
 
since_version
int in the request query.
 —  Activity will be returned only for operations that occurred after the specified version.
 
ENDPOINT

/projects/{project_id}/epics/{epic_id}/activity

Provides a list of all the activity performed on the epic. (Limited to the most recent six months of activity performed in projects that are in accounts on any non-Enterprise subscription plan, and to at least the last 25 months of activity for projects in an account on an Enterprise subscription plan.)

GET
/projects/{project_id}/epics/{epic_id}/activity

export PROJECT_ID=99

export EPIC_ID=5

curl -X GET "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/$EPIC_ID/activity"

Hide Response
Headers
Response Body
[{"kind":"comment_create_activity","guid":"99_60","project_version":60,"message":"Moradmin Bast added comment: \"Should we send a probe to Dantooine?\"","highlight":"added comment:","changes":[{"kind":"comment","change_type":"create","id":110,"new_values":{"id":110,"epic_id":5,"text":"Should we send a probe to Dantooine?","person_id":103,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","file_attachment_ids":[],"google_attachment_ids":[],"attachment_ids":[],"file_attachments":[],"google_attachments":[]}},{"kind":"epic","change_type":"update","id":5,"original_values":{"follower_ids":[]},"new_values":{"follower_ids":[103]},"name":"Rebel Home Worlds"}],"primary_resources":[{"kind":"epic","id":5,"name":"Rebel Home Worlds","url":"http://localhost/epic/show/5"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":103,"name":"Moradmin Bast","initials":"MB"},"occurred_at":"2024-08-20T12:00:00Z"},{"kind":"epic_create_activity","guid":"99_21","project_version":21,"message":"Wilhuff Tarkin added this epic","highlight":"added","changes":[{"kind":"epic","change_type":"create","id":5,"new_values":{"id":5,"project_id":99,"name":"Rebel Home Worlds","label_id":2008,"description":"Identify the systems and eliminate the rebel scum.","follower_ids":[],"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","past_done_story_estimates":3,"past_done_stories_count":1,"past_done_stories_no_point_count":0,"label":"rebel bases"},"name":"Rebel Home Worlds"}],"primary_resources":[{"kind":"epic","id":5,"name":"Rebel Home Worlds","url":"http://localhost/epic/show/5"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":102,"name":"Wilhuff Tarkin","initials":"WT"},"occurred_at":"2024-08-20T12:00:00Z"}]

export PROJECT_ID=99

export EPIC_ID=5

curl -X GET "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/$EPIC_ID/activity?limit=42&offset=1"

Hide Response
Headers
Response Body
[{"kind":"epic_create_activity","guid":"99_21","project_version":21,"message":"Wilhuff Tarkin added this epic","highlight":"added","changes":[{"kind":"epic","change_type":"create","id":5,"new_values":{"id":5,"project_id":99,"name":"Rebel Home Worlds","label_id":2008,"description":"Identify the systems and eliminate the rebel scum.","follower_ids":[],"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","past_done_story_estimates":3,"past_done_stories_count":1,"past_done_stories_no_point_count":0,"label":"rebel bases"},"name":"Rebel Home Worlds"}],"primary_resources":[{"kind":"epic","id":5,"name":"Rebel Home Worlds","url":"http://localhost/epic/show/5"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":102,"name":"Wilhuff Tarkin","initials":"WT"},"occurred_at":"2024-08-20T12:00:00Z"}]

export PROJECT_ID=99

export EPIC_ID=5

curl -X GET "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/$EPIC_ID/activity?since_version=55"

Hide Response
Headers
Response Body
[{"kind":"comment_create_activity","guid":"99_60","project_version":60,"message":"Moradmin Bast added comment: \"Should we send a probe to Dantooine?\"","highlight":"added comment:","changes":[{"kind":"comment","change_type":"create","id":110,"new_values":{"id":110,"epic_id":5,"text":"Should we send a probe to Dantooine?","person_id":103,"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","file_attachment_ids":[],"google_attachment_ids":[],"attachment_ids":[],"file_attachments":[],"google_attachments":[]}},{"kind":"epic","change_type":"update","id":5,"original_values":{"follower_ids":[]},"new_values":{"follower_ids":[103]},"name":"Rebel Home Worlds"}],"primary_resources":[{"kind":"epic","id":5,"name":"Rebel Home Worlds","url":"http://localhost/epic/show/5"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":103,"name":"Moradmin Bast","initials":"MB"},"occurred_at":"2024-08-20T12:00:00Z"}]
Successful responses to this request return an array containing zero or more instances of an activity-type resource. In particular, any mix of any of the following: blocker_create_activity, blocker_delete_activity, blocker_update_activity, blocking_create_activity, blocking_delete_activity, branch_create_activity, branch_delete_activity, cicd_event_create_activity, comment_create_activity, comment_delete_activity, comment_update_activity, epic_create_activity, epic_delete_activity, epic_move_activity, epic_update_activity, follower_create_activity, follower_delete_activity, iteration_update_activity, label_create_activity, label_delete_activity, label_merge_activity, label_update_activity, model_import_activity, project_membership_create_activity, project_membership_delete_activity, project_membership_update_activity, project_update_activity, pull_request_create_activity, pull_request_delete_activity, pull_request_update_activity, reaction_create_activity, reaction_delete_activity, reaction_update_activity, review_create_activity, review_delete_activity, review_type_create_activity, review_type_update_activity, review_update_activity, story_create_activity, story_delete_activity, story_move_activity, story_move_from_project_activity, story_move_into_project_activity, story_move_into_project_and_prioritize_activity, story_update_activity, task_create_activity, task_delete_activity, task_update_activity. The response from this request is paginated, see Paginating List Responses.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
epic_id
int in the request path.
required  —  The ID of the epic.
 
sort_order
enumerated string in the request query.
 —  The order to return the activity. Defaults to descending.
Valid enumeration values: asc, desc
 
limit
int[pos] in the request query.
 —  The number of activity items you want returned.
 
offset
int[pos] in the request query.
 —  Index of the first activity item you want, starting from zero.
 
occurred_before
datetime in the request query.
 —  Activity will be returned only for operations that occurred before the time specified by this parameter.
 
occurred_after
datetime in the request query.
 —  Activity will be returned only for operations that occurred after the time specified by this parameter.
 
since_version
int in the request query.
 —  Activity will be returned only for operations that occurred after the specified version.
 

Source Commits

ENDPOINT

/source_commits

Provides integration with commits in a Source Control system.

The Tracker API supports integration with post-commit hooks of Source Control Management (SCM) systems such as Subversion, Git, etc. When a commit is made to the SCM, a trigger can call the Tracker API to add a story comment with the commit ID, author and message. It can also optionally change story state.

To associate an SCM commit with a specific Tracker story, you must include a special syntax in the commit message to indicate one or more story IDs and (optionally) a state change for the story. Your commit message should have square brackets containing a hash mark followed by the story ID. If a story was not already started (it was in the "not started" state), a commit message will automatically start it.

To automatically finish a story by using a commit message, include "fixed", "completed" or "finished" in the square brackets in addition to the story ID. You may also use different cases or forms of these verbs, such as "Fix" or "FIXES", and they may appear before or after the story ID. Note: For features, this will put the story in the 'finished' state. For chores, it will put the story in the 'accepted' state.

In some environments, code that is committed is automatically deployed. For this situation, include "delivers" and feature stories will be put in the 'delivered' state.

POST
/source_commits

export TOKEN='your Pivotal Tracker API token'

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"source_commit":{"commit_id":"abc123","message":"[#555] some commit","url":"http://example.com/abc123","author":"Darth Vader","repo":"reponame"}}' "https://www.pivotaltracker.com/services/v5/source_commits"

View Response
Hide Response
Headers
Response Body
[{"kind":"story","id":555,"project_id":99,"name":"Bring me the passengers","description":"ignore the droids","story_type":"feature","current_state":"started","estimate":2,"requested_by_id":101,"owner_ids":[],"labels":[],"created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:05Z","url":"http://localhost/story/show/555","story_priority":"p3"}]
Successful responses to this request return an array containing zero or more instances of the story resource.

PARAMETERS

source_commit
source_commit in the request body.
 —  The source commit object
 

Exports

ENDPOINT

/projects/{project_id}/export

Export the specified project to CSV

POST
/projects/{project_id}/export

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"story_ids":[551]}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/export"

View Response
Hide Response
Headers
Response Body
Id,Title,Labels,Iteration,Iteration Start,Iteration End,Type,Estimate,Priority,Current State,Created at,Accepted at,Deadline,Requested By,Description,URL,Sounder Flats Computer Complex ID,Integration,Owned By,Owned By
551,Hire bounty hunters to bring in Solo,"diplomatic relations, personnel",,,,feature,1,p3 - Low,unscheduled,"Aug 20, 2024",,,Emperor Palpatine,No disintegrations,http://localhost/story/show/551,,,Darth Vader,Clone TK421

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
story_ids
List[int] in the request body.
required  —  A list of stories to fetch
 
Note that the response content type for this request is CSV and not JSON.
ENDPOINT

/stories/export

Export the specified stories (from any number of projects) to CSV

POST
/stories/export

PARAMETERS

ids
List[int] in the request body.
required  —  A list of stories to fetch
 
Note that the response content type for this request is CSV and not JSON.

Project Integrations

ENDPOINT

/projects/{project_id}/integrations

Operations on a project's integrations.

NOTE: Few account level & project level integrations such as GitHub, GitHub Enterprise, Gitlab, Gitlab Self-Managed and Concourse Pipeline currently can only be managed via the Generic_Integrations endpoint. Please refer the above endpoint for more details.

GET
/projects/{project_id}/integrations

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/integrations"

Hide Response
Headers
Response Body
[{"id":30,"kind":"other_integration","project_id":99,"can_import":true,"base_url":"http://localhost:3000","is_other":true,"story_name":"item","name":"Sounder Flats Computer Complex","active":true,"import_api_url":"http://localhost:3000/starwars.xml","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z"}]
Successful responses to this request return an array containing zero or more instances of an integration-type resource. In particular, any mix of any of the following: bugzilla_integration, get_satisfaction_integration, jira_integration, lighthouse_integration, other_integration, zendesk_integration.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
POST
/projects/{project_id}/integrations

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"active":false,"base_url":"http://some.th/ing","name":"something","type":"other"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/integrations"

View Response
Hide Response
Headers
Response Body
{"active":false,"base_url":"http://some.th/ing","can_import":false,"created_at":"2024-08-20T12:00:00Z","id":200,"is_other":true,"kind":"other_integration","name":"something","project_id":99,"story_name":"item","updated_at":"2024-08-20T12:00:00Z"}
Successful responses to this request return an integration-type resource. In particular, any one of the following: bugzilla_integration, get_satisfaction_integration, jira_integration, lighthouse_integration, other_integration, zendesk_integration.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
type
enumerated string in the request body.
required  —  The name of the type of external integration that this resource represents. NOTE - Few account level & project level integrations such as GitHub, GitHub Enterprise, Gitlab, Gitlab Self-Managed and Concourse Pipeline currently can only be managed via the can be managed via Generic Integrations endpoint.
Valid enumeration values: bugzilla, get_satisfaction, jira, lighthouse, other, zendesk
 
api_username
string in the request body.
 —  The username to use to access the external API.
 
api_password
string in the request body.
 —  The password to use to access the external API.
 
zendesk_user_email
string in the request body.
 —  The email of the Zendesk user which you want to use for integration purposes.
 
zendesk_user_password
string in the request body.
 —  The password of the Zendesk user which you want to use for integration purposes.
 
view_id
string in the request body.
 —  Only show tickets from the specified Zendesk view.
 
company
string in the request body.
 —  Can be found in the URL in your company's community on Satisfaction. For example - http://www.getsatisfaction.com/yourcompany.
 
product
string in the request body.
 —  The name of your Bugzilla Product. Use this in conjunction with the component to narrow the bugs to be imported.
 
component
string in the request body.
 —  The name of your Bugzilla Component. Use this in conjunction with product to narrow the bugs to be imported.
 
statuses_to_exclude
string in the request body.
 —  A comma separated list of status names that should be excluded from the imported bugs. If left blank, all bugs will be imported.
 
filter_id
string in the request body.
 —  The ID of the saved JIRA filter to use to load stories.
 
account
string in the request body.
 —  Your Lighthouse account name, and can be found in the first part of your Lighthouse URL, for example http://yourcompany.lighthouseapp.com.
 
external_api_token
string in the request body.
 —  Your Lighthouse API token.
 
bin_id
int in the request body.
 —  Only import tickets from the specified ticket bin.
 
external_project_id
int in the request body.
 —  The unique ID of your Lighthouse project, which can be found in a project URL, for example http://yourcompany.lighthouseapp.com/projects/1234-project-name/overview.
 
import_api_url
string in the request body.
 —  The URL to import stories from.
 
basic_auth_username
string in the request body.
 —  The username to use when importing stories.
 
basic_auth_password
string in the request body.
 —  The password to use when importing stories.
 
comments_private
boolean in the request body.
 —  If enabled, comments made by Tracker on the external bug will be marked as private.
 
update_comments
boolean in the request body.
 —  If enabled, comments created in Tracker will be added to the linked ticket or bug.
 
update_state
boolean in the request body.
 —  Adds a state change comment to the linked ticket or bug.
 
base_url
string in the request body.
 —  url used for outgoing web links in stories imported via this integration.
 
name
string[40] in the request body.
 —  The name given to the particular external integration in the Project Settings pages.
 
active
boolean in the request body.
 —  True if the integration is currently enabled for use.
 
ENDPOINT

/projects/{project_id}/integrations/{integration_id}

Operations on a single project integration.

GET
/projects/{project_id}/integrations/{integration_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/integrations/30"

Hide Response
Headers
Response Body
{"active":true,"base_url":"http://localhost:3000","can_import":true,"created_at":"2024-08-20T12:00:00Z","id":30,"import_api_url":"http://localhost:3000/starwars.xml","is_other":true,"kind":"other_integration","name":"Sounder Flats Computer Complex","project_id":99,"story_name":"item","updated_at":"2024-08-20T12:00:00Z"}
Successful responses to this request return an integration-type resource. In particular, any one of the following: bugzilla_integration, get_satisfaction_integration, jira_integration, lighthouse_integration, other_integration, zendesk_integration.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
integration_id
int in the request path.
required  —  The ID of the integration.
 
PUT
/projects/{project_id}/integrations/{integration_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"base_url":"http://some.th/ing","name":"something"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/integrations/30"

Hide Response
Headers
Response Body
{"active":true,"base_url":"http://some.th/ing","can_import":true,"created_at":"2024-08-20T12:00:00Z","id":30,"import_api_url":"http://localhost:3000/starwars.xml","is_other":true,"kind":"other_integration","name":"something","project_id":99,"story_name":"item","updated_at":"2024-08-20T12:00:05Z"}
Successful responses to this request return an integration-type resource. In particular, any one of the following: bugzilla_integration, get_satisfaction_integration, jira_integration, lighthouse_integration, other_integration, zendesk_integration.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
integration_id
int in the request path.
required  —  The ID of the integration.
 
api_username
string in the request body.
 —  The username to use to access the external API.
 
api_password
string in the request body.
 —  The password to use to access the external API.
 
zendesk_user_email
string in the request body.
 —  The email of the Zendesk user which you want to use for integration purposes.
 
zendesk_user_password
string in the request body.
 —  The password of the Zendesk user which you want to use for integration purposes.
 
view_id
string in the request body.
 —  Only show tickets from the specified Zendesk view.
 
company
string in the request body.
 —  Can be found in the URL in your company's community on Satisfaction. For example - http://www.getsatisfaction.com/yourcompany.
 
product
string in the request body.
 —  The name of your Bugzilla Product. Use this in conjunction with the component to narrow the bugs to be imported.
 
component
string in the request body.
 —  The name of your Bugzilla Component. Use this in conjunction with product to narrow the bugs to be imported.
 
statuses_to_exclude
string in the request body.
 —  A comma separated list of status names that should be excluded from the imported bugs. If left blank, all bugs will be imported.
 
filter_id
string in the request body.
 —  The ID of the saved JIRA filter to use to load stories.
 
account
string in the request body.
 —  Your Lighthouse account name, and can be found in the first part of your Lighthouse URL, for example http://yourcompany.lighthouseapp.com.
 
external_api_token
string in the request body.
 —  Your Lighthouse API token.
 
bin_id
int in the request body.
 —  Only import tickets from the specified ticket bin.
 
external_project_id
int in the request body.
 —  The unique ID of your Lighthouse project, which can be found in a project URL, for example http://yourcompany.lighthouseapp.com/projects/1234-project-name/overview.
 
import_api_url
string in the request body.
 —  The URL to import stories from.
 
basic_auth_username
string in the request body.
 —  The username to use when importing stories.
 
basic_auth_password
string in the request body.
 —  The password to use when importing stories.
 
comments_private
boolean in the request body.
 —  If enabled, comments made by Tracker on the external bug will be marked as private.
 
update_comments
boolean in the request body.
 —  If enabled, comments created in Tracker will be added to the linked ticket or bug.
 
update_state
boolean in the request body.
 —  Adds a state change comment to the linked ticket or bug.
 
base_url
string in the request body.
 —  url used for outgoing web links in stories imported via this integration.
 
name
string[40] in the request body.
 —  The name given to the particular external integration in the Project Settings pages.
 
active
boolean in the request body.
 —  True if the integration is currently enabled for use.
 
DELETE
/projects/{project_id}/integrations/{integration_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/integrations/200"

Hide Response
Headers

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
integration_id
int in the request path.
required  —  The ID of the integration.
 
ENDPOINT

/projects/{project_id}/integrations/{integration_id}/stories

Fetch story information from the selected integration.

GET
/projects/{project_id}/integrations/{integration_id}/stories

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export INTEGRATION_ID=30

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/integrations/$INTEGRATION_ID/stories"

Hide Response
Headers
Response Body
[{"kind":"external_story","name":"Please let us go","integration_id":30,"external_id":"Bespin","estimate":0,"created_at":"2024-08-20T12:00:00Z","external_requester":"Lando Calrissian","external_owner":"Darth Vader","owned_by_id":101,"owner_ids":[101],"story_type":"feature"}]

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

export INTEGRATION_ID=30

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/integrations/$INTEGRATION_ID/stories?exclude_linked=true"

Hide Response
Headers
Successful responses to this request return an array containing zero or more instances of the external_story resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
integration_id
int in the request path.
required  —  The ID of the integration.
 
exclude_linked
boolean in the request query.
 —  When this parameter is present and true, response will not include external stories which already have matching Pivotal Tracker stories.
 
Automatically filters out all information from the selected integration that corresponds to an existing story in the project.

Generic Integrations

ENDPOINT

/projects/{project_id}/generic_integrations

Create and list generic integrations.

GET
/projects/{project_id}/generic_integrations

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/generic_integrations?integration_type=concourse_pipeline"

Hide Response
Headers
Response Body
[{"id":2,"name":"Production Integration: Death Star","project_id":99,"uuid":"concourse_uuid","environment":"production","git_resource_name":"deathstar_repo","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","kind":"concourse_pipeline_generic_integration_object","job_url":"http://example.com/teams/1/pipelines/1/jobs/1","integration_type":"concourse_pipeline"}]

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
integration_type
enumerated string in the request query.
required  —  The type of generic integration
Valid enumeration values: github, github_enterprise, gitlab, gitlab_self_managed, concourse_pipeline
 
POST
/projects/{project_id}/generic_integrations

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"integration_type":"github","integration_values":{"title":"vader"}}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/generic_integrations"

View Response
Hide Response
Headers
Response Body
{"account_id":100,"created_at":"2024-08-20T12:00:00Z","id":101,"integration_type":"github","kind":"github_generic_integration_object","project_id":99,"secret_token":"39d75ba3eecc9d6f593c5d6624e2679b314cb252","title":"vader","updated_at":"2024-08-20T12:00:00Z","webhook_url":"https://www.pivotaltracker.com/services/v5/github_hooks/ab3256f1467024746b5bbc7b2e4da83e","webhook_uuid":"ab3256f1467024746b5bbc7b2e4da83e"}

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
integration_type
enumerated string in the request body.
required  —  The type of generic integration
Valid enumeration values: github, github_enterprise, gitlab, gitlab_self_managed, concourse_pipeline
 
integration_values
object in the request body.
required  —  For Github: {'title': 'Github Integration'} For GithubEnterprise: {'host_url': 'enterprise.github.com', 'title': 'My Github enterprise Integration'} For Gitlab: {'title': 'Gitlab Integration'} For Gitlab Self-Managed: {'host_url': 'enterprise.gitlab.com', 'title': 'My Gitlab self managed Integration'} For Concourse: {'name': 'concourse integration', 'git_resource_name' : 'production', 'url': 'https://concourse-k8s.prod.com/teams/vader/pipelines/jobs'}
 
ENDPOINT

/projects/{project_id}/generic_integrations/{integration_id}

Operations on a single generic integration.

PUT
/projects/{project_id}/generic_integrations/{integration_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"integration_type":"github_enterprise","integration_values":{"title":"updated integration name","host_url":"https://enterprise_host_url.com/pivotaltracker/tracker"}}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/generic_integrations/1"

Hide Response
Headers
Response Body
{"account_id":100,"created_at":"2024-08-20T12:00:00Z","host_url":"https://enterprise_host_url.com/pivotaltracker/tracker","id":1,"integration_type":"github_enterprise","kind":"github_enterprise_generic_integration_object","project_id":99,"secret_token":"7f951be08c787b558479335a7d6db4fff95fd982","title":"updated integration name","updated_at":"2024-08-20T12:00:05Z","webhook_url":"https://www.pivotaltracker.com/services/v5/github_hooks/8b83aa66d1e1cab8b38f031db400b8a6","webhook_uuid":"8b83aa66d1e1cab8b38f031db400b8a6"}

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
integration_id
int in the request path.
required  —  The ID of the integration.
 
integration_type
enumerated string in the request body.
required  —  The type of generic integration
Valid enumeration values: github, github_enterprise, gitlab, gitlab_self_managed, concourse_pipeline
 
integration_values
object in the request body.
required  —  For Github: {'title': 'Github Integration'} For GithubEnterprise: {'host_url': 'enterprise.github.com', 'title': 'My Github enterprise Integration'} For Gitlab: {'title': 'Gitlab Integration'} For Gitlab Self-Managed: {'host_url': 'enterprise.gitlab.com', 'title': 'My Gitlab self managed Integration'} For Concourse: {'name': 'concourse integration', 'git_resource_name' : 'production', 'url': 'https://concourse-k8s.prod.com/teams/vader/pipelines/jobs'}
 
DELETE
/projects/{project_id}/generic_integrations/{integration_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/generic_integrations/2?integration_type=concourse_pipeline"

Hide Response
Headers

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
integration_id
int in the request path.
required  —  The ID of the integration.
 
integration_type
enumerated string in the request query.
required  —  The type of generic integration
Valid enumeration values: github, github_enterprise, gitlab, gitlab_self_managed, concourse_pipeline
 

Project Webhooks

ENDPOINT

/projects/{project_id}/webhooks

Lets the user access the project's list of webhooks.

GET
/projects/{project_id}/webhooks

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/webhooks"

Hide Response
Headers
Response Body
[{"kind":"webhook","id":27,"project_id":99,"webhook_url":"http://example.com:3000/test_postbin","created_at":"2024-08-20T12:00:00Z","updated_at":"2024-08-20T12:00:00Z","enabled":true,"last_error_code":400,"last_response_body":"Bad request"}]
Successful responses to this request return an array containing zero or more instances of the webhook resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
POST
/projects/{project_id}/webhooks

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"enabled":true,"webhook_url":"http://pastebin.com/fred"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/webhooks"

View Response
Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","enabled":true,"id":100,"kind":"webhook","project_id":99,"updated_at":"2024-08-20T12:00:00Z","webhook_url":"http://pastebin.com/fred"}
Successful responses to this request return the webhook resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
webhook_url
string in the request body.
required  —  The location of the application listening for Tracker events.
 
enabled
boolean in the request body.
 —  Allows user to enable/disable webhook.
 
last_error_code
int in the request body.
 —  Most recent error code received.
 
last_response_body
extended string[10000] in the request body.
 —  Most recent response body received.
 
ENDPOINT

/projects/{project_id}/webhooks/{webhook_id}

Lets the user access a single project webhook

GET
/projects/{project_id}/webhooks/{webhook_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/webhooks/27"

Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","enabled":true,"id":27,"kind":"webhook","last_error_code":400,"last_response_body":"Bad request","project_id":99,"updated_at":"2024-08-20T12:00:00Z","webhook_url":"http://example.com:3000/test_postbin"}
Successful responses to this request return the webhook resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
webhook_id
int in the request path.
required  —  The ID of the webhook.
 
PUT
/projects/{project_id}/webhooks/{webhook_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"webhook_url":"http://pastebin.com/wilma"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/webhooks/27"

Hide Response
Headers
Response Body
{"created_at":"2024-08-20T12:00:00Z","enabled":true,"id":27,"kind":"webhook","last_error_code":400,"last_response_body":"Bad request","project_id":99,"updated_at":"2024-08-20T12:00:05Z","webhook_url":"http://pastebin.com/wilma"}
Successful responses to this request return the webhook resource.

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
webhook_id
int in the request path.
required  —  The ID of the webhook.
 
webhook_url
string in the request body.
 —  The location of the application listening for Tracker events.
 
enabled
boolean in the request body.
 —  Allows user to enable/disable webhook.
 
last_error_code
int in the request body.
 —  Most recent error code received.
 
last_response_body
extended string[10000] in the request body.
 —  Most recent response body received.
 
DELETE
/projects/{project_id}/webhooks/{webhook_id}

export TOKEN='your Pivotal Tracker API token'

export PROJECT_ID=99

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/webhooks/27"

Hide Response
Headers

PARAMETERS

project_id
int in the request path.
required  —  The ID of the project.
 
webhook_id
int in the request path.
required  —  The ID of the webhook.
 

Workspaces

ENDPOINT

/my/workspaces

Provides a list of all of the workspaces owned by you.

GET
/my/workspaces

export TOKEN='your Pivotal Tracker API token'

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/my/workspaces"

Hide Response
Headers
Response Body
[{"kind":"workspace","id":46,"name":"executor","person_id":101,"project_ids":[99]}]
Successful responses to this request return an array containing zero or more instances of the workspace resource.
POST
/my/workspaces

export TOKEN='your Pivotal Tracker API token'

curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"name":"A new workspace","project_ids":[99,98]}' "https://www.pivotaltracker.com/services/v5/my/workspaces"

View Response
Hide Response
Headers
Response Body
{"id":100,"kind":"workspace","name":"A new workspace","person_id":101,"project_ids":[99,98]}
Successful responses to this request return the workspace resource.

PARAMETERS

name
extended string[25] in the request body.
 —  The name of the workspace.
 
project_ids
List[int] in the request body.
 —  Array of projects contained in the workspace.
 
ENDPOINT

/my/workspaces/{workspace_id}

Updates the specified workspace owned by you.

GET
/my/workspaces/{workspace_id}

export TOKEN='your Pivotal Tracker API token'

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/my/workspaces/46"

Hide Response
Headers
Response Body
{"id":46,"kind":"workspace","name":"executor","person_id":101,"project_ids":[99]}
Successful responses to this request return the workspace resource.

PARAMETERS

workspace_id
int in the request path.
required  —  The ID of the workspace.
 
PUT
/my/workspaces/{workspace_id}

export TOKEN='your Pivotal Tracker API token'

curl -X PUT -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"project_ids":[99,98]}' "https://www.pivotaltracker.com/services/v5/my/workspaces/46"

Hide Response
Headers
Response Body
{"id":46,"kind":"workspace","name":"executor","person_id":101,"project_ids":[99,98]}
Successful responses to this request return the workspace resource.

PARAMETERS

workspace_id
int in the request path.
required  —  The ID of the workspace.
 
project_ids
List[int] in the request query.
 —  The list of projects to associate with this workspace.
 
DELETE
/my/workspaces/{workspace_id}

export TOKEN='your Pivotal Tracker API token'

curl -X DELETE -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" "https://www.pivotaltracker.com/services/v5/my/workspaces/46"

Hide Response
Headers

PARAMETERS

workspace_id
int in the request path.
required  —  The ID of the workspace.
 
ENDPOINT

/workspaces/{workspace_id}/activity

Provides a list of all the activity in a workspace. Limited to the most recent six months of activity performed in the project(s) within the workspace.

GET
/workspaces/{workspace_id}/activity

export TOKEN='your Pivotal Tracker API token'

export WORKSPACE_ID=46

curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/workspaces/$WORKSPACE_ID/activity"

Hide Response
Headers
Response Body
[{"kind":"iteration_update_activity","guid":"99_66","project_version":66,"message":"Wilhuff Tarkin changed iteration 1's length from default to 2 weeks","highlight":"changed","changes":[{"kind":"iteration_override","change_type":"update","number":1,"original_values":{"number":1,"finish":1724155200000,"team_strength":1.0,"length":"default"},"new_values":{"number":1,"team_strength":0.9,"length":2,"finish":1724155210000}}],"primary_resources":[{"kind":"iteration_override","number":1}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":102,"name":"Wilhuff Tarkin","initials":"WT"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_move_activity","guid":"99_65","project_version":65,"message":"Darth Vader moved 2 stories","highlight":"moved","changes":[{"kind":"story","change_type":"update","id":562,"original_values":{"before_id":551},"new_values":{"before_id":557},"name":"Garbage smashers on the detention level have malfunctioned","story_type":"bug","story_priority":"p3"},{"kind":"story","change_type":"update","id":564,"original_values":{"after_id":557},"new_values":{"after_id":565},"name":"Evacuate, in our moment of triumph","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":564,"name":"Evacuate, in our moment of triumph","story_type":"feature","url":"http://localhost/story/show/564","story_priority":"p3"},{"kind":"story","id":562,"name":"Garbage smashers on the detention level have malfunctioned","story_type":"bug","url":"http://localhost/story/show/562","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_move_activity","guid":"99_64","project_version":64,"message":"Darth Vader moved 2 stories","highlight":"moved","changes":[{"kind":"story","change_type":"update","id":562,"original_values":{"before_id":557},"new_values":{"before_id":551},"name":"Garbage smashers on the detention level have malfunctioned","story_type":"bug","story_priority":"p3"},{"kind":"story","change_type":"update","id":564,"original_values":{"after_id":565},"new_values":{"after_id":557},"name":"Evacuate, in our moment of triumph","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":564,"name":"Evacuate, in our moment of triumph","story_type":"feature","url":"http://localhost/story/show/564","story_priority":"p3"},{"kind":"story","id":562,"name":"Garbage smashers on the detention level have malfunctioned","story_type":"bug","url":"http://localhost/story/show/562","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"comment_create_activity","guid":"99_63","project_version":63,"message":"Wilhuff Tarkin added comment: \"Audit security of oscillator sanitation components\"","highlight":"added comment:","changes":[{"kind":"comment","change_type":"create","id":113,"new_values":{"id":113,"epic_id":555,"text":"Audit security of oscillator sanitation components","person_id":102,"created_at":"2024-08-20T12:00:25Z","updated_at":"2024-08-20T12:00:25Z","file_attachment_ids":[],"google_attachment_ids":[],"attachment_ids":[],"file_attachments":[],"google_attachments":[]}},{"kind":"epic","change_type":"update","id":555,"original_values":{"follower_ids":[]},"new_values":{"follower_ids":[102]},"name":"Sanitation"}],"primary_resources":[{"kind":"epic","id":555,"name":"Sanitation","url":"http://localhost/epic/show/555"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":102,"name":"Wilhuff Tarkin","initials":"WT"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"comment_create_activity","guid":"99_62","project_version":62,"message":"Darth Vader added comment: \"I want them alive!\"","highlight":"added comment:","changes":[{"kind":"comment","change_type":"create","id":112,"new_values":{"id":112,"story_id":555,"text":"I want them alive!","person_id":101,"created_at":"2024-08-20T12:00:25Z","updated_at":"2024-08-20T12:00:25Z","file_attachment_ids":[],"google_attachment_ids":[],"attachment_ids":[],"file_attachments":[],"google_attachments":[]}},{"kind":"story","change_type":"update","id":555,"original_values":{"follower_ids":[]},"new_values":{"follower_ids":[101]},"name":"Bring me the passengers","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":555,"name":"Bring me the passengers","story_type":"feature","url":"http://localhost/story/show/555","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"comment_create_activity","guid":"99_61","project_version":61,"message":"Moradmin Bast added comment: \"Check out these Uffel mouse droids\"","highlight":"added comment:","changes":[{"kind":"comment","change_type":"create","id":111,"new_values":{"id":111,"epic_id":6,"text":"Check out these Uffel mouse droids","person_id":103,"created_at":"2024-08-20T12:00:25Z","updated_at":"2024-08-20T12:00:25Z","file_attachment_ids":[],"google_attachment_ids":[],"attachment_ids":[],"file_attachments":[],"google_attachments":[]}},{"kind":"epic","change_type":"update","id":6,"original_values":{"follower_ids":[]},"new_values":{"follower_ids":[103]},"name":"Death Star Plans"}],"primary_resources":[{"kind":"epic","id":6,"name":"Death Star Plans","url":"http://localhost/epic/show/6"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":103,"name":"Moradmin Bast","initials":"MB"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"comment_create_activity","guid":"99_60","project_version":60,"message":"Moradmin Bast added comment: \"Should we send a probe to Dantooine?\"","highlight":"added comment:","changes":[{"kind":"comment","change_type":"create","id":110,"new_values":{"id":110,"epic_id":5,"text":"Should we send a probe to Dantooine?","person_id":103,"created_at":"2024-08-20T12:00:25Z","updated_at":"2024-08-20T12:00:25Z","file_attachment_ids":[],"google_attachment_ids":[],"attachment_ids":[],"file_attachments":[],"google_attachments":[]}},{"kind":"epic","change_type":"update","id":5,"original_values":{"follower_ids":[]},"new_values":{"follower_ids":[103]},"name":"Rebel Home Worlds"}],"primary_resources":[{"kind":"epic","id":5,"name":"Rebel Home Worlds","url":"http://localhost/epic/show/5"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":103,"name":"Moradmin Bast","initials":"MB"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"comment_create_activity","guid":"99_59","project_version":59,"message":"Wilhuff Tarkin added comment: \"I think you overestimate their chances!\"","highlight":"added comment:","changes":[{"kind":"comment","change_type":"create","id":109,"new_values":{"id":109,"story_id":564,"text":"I think you overestimate their chances!","person_id":102,"created_at":"2024-08-20T12:00:25Z","updated_at":"2024-08-20T12:00:25Z","file_attachment_ids":[],"google_attachment_ids":[],"attachment_ids":[],"file_attachments":[],"google_attachments":[]}},{"kind":"story","change_type":"update","id":564,"original_values":{"follower_ids":[]},"new_values":{"follower_ids":[102]},"name":"Evacuate, in our moment of triumph","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":564,"name":"Evacuate, in our moment of triumph","story_type":"feature","url":"http://localhost/story/show/564","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":102,"name":"Wilhuff Tarkin","initials":"WT"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"task_create_activity","guid":"99_58","project_version":58,"message":"Wilhuff Tarkin added task: \"Port 90\"","highlight":"added task:","changes":[{"kind":"task","change_type":"create","id":6,"new_values":{"id":6,"story_id":559,"description":"Port 90","complete":false,"position":2,"created_at":"2024-08-20T12:00:25Z","updated_at":"2024-08-20T12:00:25Z"}}],"primary_resources":[{"kind":"story","id":559,"name":"All exhaust ports should be shielded","story_type":"feature","url":"http://localhost/story/show/559","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":102,"name":"Wilhuff Tarkin","initials":"WT"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"task_create_activity","guid":"99_57","project_version":57,"message":"Wilhuff Tarkin added task: \"Port 0\"","highlight":"added task:","changes":[{"kind":"task","change_type":"create","id":5,"new_values":{"id":5,"story_id":559,"description":"Port 0","complete":false,"position":1,"created_at":"2024-08-20T12:00:25Z","updated_at":"2024-08-20T12:00:25Z"}},{"kind":"story","change_type":"update","id":559,"original_values":{"follower_ids":[]},"new_values":{"follower_ids":[102]},"name":"All exhaust ports should be shielded","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":559,"name":"All exhaust ports should be shielded","story_type":"feature","url":"http://localhost/story/show/559","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":102,"name":"Wilhuff Tarkin","initials":"WT"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_56","project_version":56,"message":"Darth Vader unstarted this feature","highlight":"unstarted","changes":[{"kind":"story","change_type":"update","id":555,"original_values":{"current_state":"unscheduled","before_id":551,"after_id":557},"new_values":{"current_state":"unstarted","before_id":567,"after_id":552},"name":"Bring me the passengers","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":555,"name":"Bring me the passengers","story_type":"feature","url":"http://localhost/story/show/555","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_55","project_version":55,"message":"Emperor Palpatine unstarted this release","highlight":"unstarted","changes":[{"kind":"story","change_type":"update","id":552,"original_values":{"current_state":"unscheduled","before_id":551,"after_id":555},"new_values":{"current_state":"unstarted","before_id":567,"after_id":566},"name":"Battlestation fully operational","story_type":"release","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":552,"name":"Battlestation fully operational","story_type":"release","url":"http://localhost/story/show/552","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":100,"name":"Emperor Palpatine","initials":"EP"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_54","project_version":54,"message":"Darth Vader rejected this feature","highlight":"rejected","changes":[{"kind":"label","change_type":"update","id":2009,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":2,"finished":0,"unstarted":0,"planned":0,"delivered":3,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":1,"finished":0,"unstarted":0,"planned":0,"delivered":1,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":2,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":3,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":1,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":1,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"plans"},{"kind":"story","change_type":"update","id":559,"original_values":{"current_state":"delivered"},"new_values":{"current_state":"rejected"},"name":"All exhaust ports should be shielded","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":559,"name":"All exhaust ports should be shielded","story_type":"feature","url":"http://localhost/story/show/559","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_53","project_version":53,"message":"Wilhuff Tarkin delivered this feature","highlight":"delivered","changes":[{"kind":"label","change_type":"update","id":2009,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":2,"finished":3,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":1,"finished":1,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":2,"finished":0,"unstarted":0,"planned":0,"delivered":3,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":1,"finished":0,"unstarted":0,"planned":0,"delivered":1,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"plans"},{"kind":"story","change_type":"update","id":559,"original_values":{"current_state":"finished"},"new_values":{"current_state":"delivered"},"name":"All exhaust ports should be shielded","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":559,"name":"All exhaust ports should be shielded","story_type":"feature","url":"http://localhost/story/show/559","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":102,"name":"Wilhuff Tarkin","initials":"WT"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_52","project_version":52,"message":"Wilhuff Tarkin finished this feature","highlight":"finished","changes":[{"kind":"label","change_type":"update","id":2009,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":5,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":2,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":2,"finished":3,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":1,"finished":1,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"plans"},{"kind":"story","change_type":"update","id":559,"original_values":{"current_state":"started"},"new_values":{"current_state":"finished"},"name":"All exhaust ports should be shielded","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":559,"name":"All exhaust ports should be shielded","story_type":"feature","url":"http://localhost/story/show/559","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":102,"name":"Wilhuff Tarkin","initials":"WT"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_51","project_version":51,"message":"Wilhuff Tarkin unstarted this chore","highlight":"unstarted","changes":[{"kind":"label","change_type":"update","id":2011,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":4,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":4,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":1,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":1,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"mnt"},{"kind":"story","change_type":"update","id":566,"original_values":{"current_state":"unscheduled","before_id":565,"after_id":567},"new_values":{"current_state":"unstarted","before_id":567,"after_id":561},"name":"Repair CommLink","story_type":"chore","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":566,"name":"Repair CommLink","story_type":"chore","url":"http://localhost/story/show/566","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":102,"name":"Wilhuff Tarkin","initials":"WT"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_50","project_version":50,"message":"Wilhuff Tarkin unstarted this bug","highlight":"unstarted","changes":[{"kind":"story","change_type":"update","id":561,"original_values":{"current_state":"unscheduled","before_id":557,"after_id":562},"new_values":{"current_state":"unstarted","before_id":567,"after_id":559},"name":"Tractor beam loses power intermittently","story_type":"bug","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":561,"name":"Tractor beam loses power intermittently","story_type":"bug","url":"http://localhost/story/show/561","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":102,"name":"Wilhuff Tarkin","initials":"WT"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_49","project_version":49,"message":"Wilhuff Tarkin started this feature","highlight":"started","changes":[{"kind":"label","change_type":"update","id":2009,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":2,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":1,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":5,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":2,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"plans"},{"kind":"story","change_type":"update","id":559,"original_values":{"current_state":"unscheduled","before_id":557,"after_id":561},"new_values":{"current_state":"started","before_id":567,"after_id":556},"name":"All exhaust ports should be shielded","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":559,"name":"All exhaust ports should be shielded","story_type":"feature","url":"http://localhost/story/show/559","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":102,"name":"Wilhuff Tarkin","initials":"WT"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_48","project_version":48,"message":"Darth Vader started this feature","highlight":"started","changes":[{"kind":"label","change_type":"update","id":2008,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":4,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":2,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":4,"started":2,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":2,"started":1,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"rebel bases"},{"kind":"label","change_type":"update","id":2009,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":5,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":2,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":1,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"plans"},{"kind":"story","change_type":"update","id":556,"original_values":{"current_state":"unscheduled","before_id":555,"after_id":557},"new_values":{"current_state":"started","before_id":567,"after_id":560},"name":"Interrogate Leia Organa","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":556,"name":"Interrogate Leia Organa","story_type":"feature","url":"http://localhost/story/show/556","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_47","project_version":47,"message":"Darth Vader accepted this feature","highlight":"accepted","changes":[{"kind":"label","change_type":"update","id":2008,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":1,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":1,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":4,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":2,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"rebel bases"},{"kind":"story","change_type":"update","id":560,"original_values":{"current_state":"delivered","accepted_at":null},"new_values":{"current_state":"accepted","accepted_at":"2024-08-20T12:00:25Z"},"name":"Destroy Alderaan","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":560,"name":"Destroy Alderaan","story_type":"feature","url":"http://localhost/story/show/560","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_46","project_version":46,"message":"Wilhuff Tarkin delivered this feature","highlight":"delivered","changes":[{"kind":"label","change_type":"update","id":2008,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":1,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":1,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":1,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":1,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"rebel bases"},{"kind":"story","change_type":"update","id":560,"original_values":{"current_state":"finished"},"new_values":{"current_state":"delivered"},"name":"Destroy Alderaan","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":560,"name":"Destroy Alderaan","story_type":"feature","url":"http://localhost/story/show/560","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":102,"name":"Wilhuff Tarkin","initials":"WT"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_45","project_version":45,"message":"Wilhuff Tarkin finished this feature","highlight":"finished","changes":[{"kind":"label","change_type":"update","id":2008,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":1,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":1,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":1,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":1,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"rebel bases"},{"kind":"story","change_type":"update","id":560,"original_values":{"current_state":"started"},"new_values":{"current_state":"finished"},"name":"Destroy Alderaan","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":560,"name":"Destroy Alderaan","story_type":"feature","url":"http://localhost/story/show/560","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":102,"name":"Wilhuff Tarkin","initials":"WT"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_44","project_version":44,"message":"Wilhuff Tarkin started this feature","highlight":"started","changes":[{"kind":"label","change_type":"update","id":2008,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":1,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":1,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"rebel bases"},{"kind":"story","change_type":"update","id":560,"original_values":{"current_state":"unscheduled","before_id":559,"after_id":561},"new_values":{"current_state":"started","before_id":567,"after_id":558},"name":"Destroy Alderaan","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":560,"name":"Destroy Alderaan","story_type":"feature","url":"http://localhost/story/show/560","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":102,"name":"Wilhuff Tarkin","initials":"WT"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_43","project_version":43,"message":"Darth Vader edited this feature","highlight":"edited","changes":[{"kind":"label","change_type":"update","id":2008,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"rebel bases"},{"kind":"label","change_type":"update","id":2009,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":5,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"plans"},{"kind":"label","change_type":"update","id":2015,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"diplomatic relations"},{"kind":"story","change_type":"update","id":556,"original_values":{"label_ids":[2015],"labels":["diplomatic relations"]},"new_values":{"label_ids":[2009,2008],"labels":["plans","rebel bases"]},"name":"Interrogate Leia Organa","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":556,"name":"Interrogate Leia Organa","story_type":"feature","url":"http://localhost/story/show/556","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":101,"name":"Darth Vader","initials":"DV"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_42","project_version":42,"message":"Emperor Palpatine edited this feature","highlight":"edited","changes":[{"kind":"epic","change_type":"update","id":6,"original_values":{"completed_at":1724155215000},"new_values":{"completed_at":null},"name":"Death Star Plans"},{"kind":"label","change_type":"update","id":2009,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"plans"},{"kind":"story","change_type":"update","id":559,"original_values":{"label_ids":[],"labels":[]},"new_values":{"label_ids":[2009],"labels":["plans"]},"name":"All exhaust ports should be shielded","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":559,"name":"All exhaust ports should be shielded","story_type":"feature","url":"http://localhost/story/show/559","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":100,"name":"Emperor Palpatine","initials":"EP"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_41","project_version":41,"message":"Emperor Palpatine estimated this feature as 2 points","highlight":"estimated","changes":[{"kind":"label","change_type":"update","id":2014,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"r&d"},{"kind":"story","change_type":"update","id":557,"original_values":{"estimate":null},"new_values":{"estimate":2},"name":"Prepare carbonite freezing chamber","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":557,"name":"Prepare carbonite freezing chamber","story_type":"feature","url":"http://localhost/story/show/557","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":100,"name":"Emperor Palpatine","initials":"EP"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_40","project_version":40,"message":"Emperor Palpatine estimated this feature as 1 point","highlight":"estimated","changes":[{"kind":"label","change_type":"update","id":2012,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"personnel"},{"kind":"label","change_type":"update","id":2015,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":3,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":2,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"name":"diplomatic relations"},{"kind":"story","change_type":"update","id":551,"original_values":{"estimate":null},"new_values":{"estimate":1},"name":"Hire bounty hunters to bring in Solo","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":551,"name":"Hire bounty hunters to bring in Solo","story_type":"feature","url":"http://localhost/story/show/551","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":100,"name":"Emperor Palpatine","initials":"EP"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_39","project_version":39,"message":"Emperor Palpatine estimated this feature as 2 points","highlight":"estimated","changes":[{"kind":"story","change_type":"update","id":555,"original_values":{"estimate":null},"new_values":{"estimate":2},"name":"Bring me the passengers","story_type":"feature","story_priority":"p3"}],"primary_resources":[{"kind":"story","id":555,"name":"Bring me the passengers","story_type":"feature","url":"http://localhost/story/show/555","story_priority":"p3"}],"secondary_resources":[],"project":{"kind":"project","id":99,"name":"Death Star"},"performed_by":{"kind":"person","id":100,"name":"Emperor Palpatine","initials":"EP"},"occurred_at":"2024-08-20T12:00:25Z"},{"kind":"story_update_activity","guid":"99_38","project_version":38,"message":"Emperor Palpatine estimated this feature as 1 point","highlight":"estimated","changes":[{"kind":"label","change_type":"update","id":2008,"original_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"sum_of_story_estimates_by_state":{"accepted":3,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":0,"rejected":0,"kind":"counts_by_story_state"},"number_of_stories_by_state":{"accepted":1,"started":0,"finished":0,"unstarted":0,"planned":0,"delivered":0,"unscheduled":1,"rejected":0,"kind":"counts_by_story_state"},"kind":"story_counts"}},"new_values":{"counts":{"number_of_zero_point_stories_by_state":{"accepted":0,"started":0,"finished":0,&quo