Task API (/tasks)

Overview

The Task API lets you perform standard GET, PUT, POST, and DELETE actions. You can also access Tasks associated with Projects or Groups through their own endpoints: /projects/{project_id}/tasks and /user_groups/{user_group_id}/tasks .

See Integration Best Practices for more info.

Actions

The Task API allows you to:

Verb Path Action Description
POST /api/user_groups/:user_group_id/tasks create Create group task
POST /api/projects/:project_id/tasks create Create project task
POST /api/tasks create Create task
DELETE /api/projects/:project_id/tasks/:id destroy Delete project task
DELETE /api/tasks/:id destroy Delete task
GET /api/user_groups/:user_group_id/tasks index Query group task
GET /api/projects/:project_id/tasks index Query project task
GET /api/tasks index Query task
GET /api/user_groups/:user_group_id/tasks/:id show Show a group task
GET /api/projects/:project_id/tasks/:id show Show project task
GET /api/tasks/:id show Show task
PATCH /api/user_groups/:user_group_id/tasks/:id update Update group task
PUT /api/user_groups/:user_group_id/tasks/:id update Update group task
PATCH /api/projects/:project_id/tasks/:id update Update project task
PUT /api/projects/:project_id/tasks/:id update Update project task
PATCH /api/tasks/:id update Update task
PUT /api/tasks/:id update Update task
POST /api/quote_requests/:quote_request_id/tasks create Add a task to a Sourcing event.
DELETE /api/quote_requests/:quote_request_id/tasks/:id destroy Deletes a task from a Sourcing event.
GET /api/quote_requests/:quote_request_id/tasks Index Gets tasks associated with a Sourcing event.
GET /api/quote_requests/:quote_request_id/tasks/:id show Gets details for a task associated with a Sourcing event.
PATCH /api/quote_requests/:quote_request_id/tasks/:id update Updates a task associated with a Sourcing event.
PUT /api/quote_requests/:quote_request_id/tasks/:id update Updates a task associated with a Sourcing event.

Elements

The following elements are available for the Task API:

Element Description Required Field? Unique? Allowable Value Api_In Field? Api_Out Field? Data Type
created-at Automatically created by Coupa in the format YYYY-MM-DDTHH:MM:SS+HH:MMZ yes datetime
created-by User who created yes User
description description yes yes text
due-date due date yes yes datetime
duration duration yes yes float
id Coupa unique identifier yes integer
linkable Association to which the task is linked to. Possible values are UserGroup/Project yes yes Task
linkable-id Id of the User group or Project that the task is linked to yes yes integer
linkable-type linked object type.Task cn be linked to User group or a Project yes yes string(255)
owner Owner yes yes User
owner-id User id to whom the task is assigned yes yes integer
percentage percentage 0 to 100 yes yes integer
quote-task-attributes Extra attributes for the sourcing event task yes yes QuoteTaskAttributes
resolved-at Timestamp the task was resolved in the format YYYY-MM-DDTHH:MM:SS+HH:MMZ yes datetime
resolved-by User who resolved the task yes User
start-date start date yes yes datetime
status status of task yes yes string(255)
task-id Unique identifier for a task which is non editable. This is auto generated. This will be used as an unique identifier to update tasks in loaders yes integer
title title yes yes yes string(255)
updated-at Automatically created by Coupa in the format YYYY-MM-DDTHH:MM:SS+HH:MMZ yes datetime
updated-by User who updated yes User

Get tasks associated with a Sourcing event

Method

GET /api/quote_requests/10163/tasks

Example cURL request
curl --location 'https://<your-instance>.com/api/quote_requests/10163/tasks' \
--header 'Accept: application/xml' \
--header 'Accept: application/json' \
--header 'Accept: application/octet-stream'
Example response
<?xml version="1.0" encoding="UTF-8"?>
<tasks type="array">
    <task>
        <id type="integer">179</id>
        <created-at type="dateTime">2025-04-25T13:55:52-04:00</created-at>
        <updated-at type="dateTime">2025-04-25T13:55:52-04:00</updated-at>
        <title>Send request for quotes </title>
        <description nil="true"/>
        <status>pending</status>
        <owner-id nil="true"/>
        <due-date nil="true"/>
        <duration nil="true"/>
        <percentage type="integer">0</percentage>
        <linkable-id type="integer">10163</linkable-id>
        <linkable-type>QuoteRequest</linkable-type>
        <resolved-at nil="true"/>
        <owner nil="true"/>
        <resolved-by nil="true"/>
        <created-by>
            <id type="integer">207</id>
            <login>email@company.com</login>
            <employee-number nil="true"/>
        </created-by>
        <updated-by>
            <id type="integer">207</id>
            <login>email@company.com</login>
            <employee-number nil="true"/>
        </updated-by>
    </task>
    <task>
        <id type="integer">180</id>
        <created-at type="dateTime">2025-04-25T13:55:59-04:00</created-at>
        <updated-at type="dateTime">2025-04-25T13:55:59-04:00</updated-at>
        <title>Choose supplier</title>
        <description nil="true"/>
        <status>pending</status>
        <owner-id nil="true"/>
        <due-date nil="true"/>
        <duration nil="true"/>
        <percentage type="integer">0</percentage>
        <linkable-id type="integer">10163</linkable-id>
        <linkable-type>QuoteRequest</linkable-type>
        <resolved-at nil="true"/>
        <owner nil="true"/>
        <resolved-by nil="true"/>
        <created-by>
            <id type="integer">207</id>
            <login>email@company.com</login>
            <employee-number nil="true"/>
        </created-by>
        <updated-by>
            <id type="integer">207</id>
            <login>email@company.com</login>
            <employee-number nil="true"/>
        </updated-by>
    </task>
</tasks>

Add a task to a Sourcing event

Method

POST /api/quote_requests/10163/tasks

Request body
{
    "title": "New Task for 10163",
    "quote_task_attributes":{"phase": "setup"},
    "percentage": 0
}
Example cURL request
curl --location 'https://<your-instance>.com/api/quote_requests/10163/tasks' \
--header 'Accept: application/xml' \
--header 'Accept: application/json' \
--header 'Accept: application/octet-stream' \
--header 'Content-Type: application/json' \
--header 'Authorization: ••••••' \
--data '{
    "title": "New Task for 10163",
    "quote_task_attributes":{"phase": "setup"},
    "percentage": 0
}'