Workfront API issue - scalability concerns with task API and project fields | Community
Skip to main content
Level 1
July 1, 2026
Question

Workfront API issue - scalability concerns with task API and project fields

  • July 1, 2026
  • 1 reply
  • 47 views

We are facing scalability challenges with the current API design.

Our use case requires that when a request is made to retrieve content metadata, the API should return metadata only for unrestricted content. In addition, project-level and related task-level fields need to be available as part of the response.

However, we have identified several limitations with the current approach:

  • The task API is limited to approximately 2,000 records per request.
  • Retrieving task data requires making separate calls per project ID, resulting in a very large number of API requests for full-load scenarios.
  • The volume of task data returned per project is limited, which impacts overall efficiency.
  • Project fields are restricted in the current design, making it difficult to retrieve comprehensive project-level details alongside task data.
  • While the current solution may be sufficient for incremental loads, it does not scale effectively for larger datasets or bulk extraction requirements.

We are currently evaluating alternative approaches and would appreciate any insights from others who may have faced similar challenges.

Has anyone implemented a scalable solution to efficiently retrieve both project and task data at scale? Specifically, we are interested in approaches that reduce the number of API calls, support bulk/full-load scenarios, and provide access to both project and task-level fields. Any recommendations, best practices, or lessons learned would be appreciated.

1 reply

ninoskuflic
Level 5
July 6, 2026

Hi ​@HimaBi2, regarding project and task level data, you can query a project and at the same time get task data where you can also pull additional task related data (it will be in an array). Example API call:

{{Base_URL}}attask/api/{{API_Version}}/proj/91cc4fdc2e6a4b6a99db41ad9c6ce0ac?fields=tasks:parentID,tasks:parameterValues,tasks:objectCategories

 

Here, you would specify all fields you want to show up in an array after the “:”

 

The output will then look something like this:

{
"data": {
"ID": "91cc4fdc2e6a4b6a99db41ad9c6ce0ac",
"name": "45 Second Sweepstakes TV Spot",
"objCode": "PROJ",
"tasks": [
{
"ID": "0c53a06b68bc4680a41a5804d7a92cae",
"name": "Production",
"objCode": "TASK",
"objectCategories": [],
"parentID": "036bcdcb53844ef5992a0d13443a7ae0",
"parameterValues": {}
},
{
"ID": "47324ee7c73d43e8b0a7df1470a8a9f2",
"name": "Proofread Copy",
"objCode": "TASK",
"objectCategories": [],
"parentID": "d3170d9e222a4c01b4a5adf675a1571b",
"parameterValues": {}
},
{
"ID": "7827971dd8574229848e201b9bfe922d",
"name": "Present and Review Creative",
"objCode": "TASK",
"objectCategories": [],
"parentID": "036bcdcb53844ef5992a0d13443a7ae0",
"parameterValues": {}
},
{
"ID": "82323fd0c5844283a77366b72b836462",
"name": "Initial Copy",
"objCode": "TASK",
"objectCategories": [],
"parentID": "d3170d9e222a4c01b4a5adf675a1571b",
"parameterValues": {}
},
{
"ID": "98919a3a68394cc3b183985bd356402c",
"name": "Final Copy",
"objCode": "TASK",
"objectCategories": [],
"parentID": "d3170d9e222a4c01b4a5adf675a1571b",
"parameterValues": {}
},
{
"ID": "d3170d9e222a4c01b4a5adf675a1571b",
"name": "Create Copy",
"objCode": "TASK",
"objectCategories": [
{
"ID": "6a4bb16e0000926882e690a5d584b405",
"objCode": "OBJCAT"
}
],
"parentID": null,
"parameterValues": {
"DE:Event_Theme": "Test",
"DE:Venue": "1",
"DE:Determine key stakeholders producers, sponsors, studio reps, VIPs.": [
"Sponsor",
"Producer"
],
"DE:Define deliverables booths, swag, entertainment, catering, program.": [
"Entertainment",
"Program"
],
"DE:Identify and document the purpose of the event.": "Test"
}
},
{
"ID": "d409f558c2ce4e70ad40343e59076f4c",
"name": "Creative Review",
"objCode": "TASK",
"objectCategories": [],
"parentID": "036bcdcb53844ef5992a0d13443a7ae0",
"parameterValues": {}
},
{
"ID": "dba15e4f45f94fac989d11c0bcb68aed",
"name": "Implement Approved Production Changes",
"objCode": "TASK",
"objectCategories": [],
"parentID": "d301adaefe244ac4bb7995ff64a40873",
"parameterValues": {}
},
{
"ID": "4bff197eae0243b8b7af74508fc66bb7",
"name": "Schedule Air Dates",
"objCode": "TASK",
"objectCategories": [],
"parentID": null,
"parameterValues": {}
},
{
"ID": "d301adaefe244ac4bb7995ff64a40873",
"name": "Implement Approved Changes",
"objCode": "TASK",
"objectCategories": [],
"parentID": null,
"parameterValues": {}
},
{
"ID": "47cd9025b2d24b8dba7dc229f108f00a",
"name": "Send to Media Outlets",
"objCode": "TASK",
"objectCategories": [],
"parentID": null,
"parameterValues": {}
},
{
"ID": "036bcdcb53844ef5992a0d13443a7ae0",
"name": "Creative",
"objCode": "TASK",
"objectCategories": [],
"parentID": null,
"parameterValues": {}
},
{
"ID": "b56aa9daf9144cda88343eba4859d3b5",
"name": "Video Prep",
"objCode": "TASK",
"objectCategories": [],
"parentID": null,
"parameterValues": {}
},
{
"ID": "2c9f3ab680074b90b2dca95084f0e753",
"name": "Proofread Creative",
"objCode": "TASK",
"objectCategories": [],
"parentID": "036bcdcb53844ef5992a0d13443a7ae0",
"parameterValues": {}
},
{
"ID": "276d7a023c554dfb95b0e9ca4e62b98e",
"name": "Implement Approved Design Changes",
"objCode": "TASK",
"objectCategories": [],
"parentID": "d301adaefe244ac4bb7995ff64a40873",
"parameterValues": {}
},
{
"ID": "e66fc20e4c784928bd656f5793e39b3f",
"name": "Implement Approved Copy Changes",
"objCode": "TASK",
"objectCategories": [],
"parentID": "d301adaefe244ac4bb7995ff64a40873",
"parameterValues": {}
},
{
"ID": "823f01e1a4a84716a2b04e2f5bc6de9b",
"name": "On Location Video Shoot",
"objCode": "TASK",
"objectCategories": [
{
"ID": "6a4bb1dc000094db5bccdd89ac84a33e",
"objCode": "OBJCAT"
}
],
"parentID": null,
"parameterValues": {
"DE:Event_Theme": "Test"
}
},
{
"ID": "c949bc717d804b9c9f64659f7631ea43",
"name": "Shoot",
"objCode": "TASK",
"objectCategories": [],
"parentID": "823f01e1a4a84716a2b04e2f5bc6de9b",
"parameterValues": {}
},
{
"ID": "cfa2c1985577432b8a7a5fcb49eea678",
"name": "Film Editing",
"objCode": "TASK",
"objectCategories": [],
"parentID": "823f01e1a4a84716a2b04e2f5bc6de9b",
"parameterValues": {}
},
{
"ID": "dac0d9ea61514d72b2547964a743feeb",
"name": "Film Handoff to Creative",
"objCode": "TASK",
"objectCategories": [],
"parentID": "823f01e1a4a84716a2b04e2f5bc6de9b",
"parameterValues": {}
},
{
"ID": "0e1ee9dc49404280899f03682603cab8",
"name": "Schedule Location/Talent/Stylist/Videographer",
"objCode": "TASK",
"objectCategories": [],
"parentID": "823f01e1a4a84716a2b04e2f5bc6de9b",
"parameterValues": {}
},
{
"ID": "033ce38217664eea8c9c08185e5fdbf7",
"name": "Final Review",
"objCode": "TASK",
"objectCategories": [],
"parentID": null,
"parameterValues": {}
}
]
}
}

Hope this helps! 😀

If this solved your issue, please mark it as solved so others can find the solution faster.