API Documentation

API Endpoint

Workflows

Workflows

The Workflow object enables organizing tasks into distinct phases or stages, each with its own set of statuses.

This allows tracking the progress of tasks from initiation to completion.

You can learn more about Workflows in our Help documentation: Workflows

Supported filter params

  • name

  • archived (‘true’ or ‘false’)

Supported sort params

  • name
GET /api/v2/workflows
Requestsreturns workflows

GET  /api/v2/workflows

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": [
    {
      "id": "2796",
      "type": "workflows",
      "attributes": {
        "name": "Simple workflow",
        "archived_at": null
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "2232"
          }
        },
        "workflow_statuses": {
          "meta": {
            "included": false
          }
        }
      }
    },
    {
      "id": "2797",
      "type": "workflows",
      "attributes": {
        "name": "Simple workflow",
        "archived_at": null
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "2232"
          }
        },
        "workflow_statuses": {
          "meta": {
            "included": false
          }
        }
      }
    },
    {
      "id": "2798",
      "type": "workflows",
      "attributes": {
        "name": "Simple workflow",
        "archived_at": null
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "2232"
          }
        },
        "workflow_statuses": {
          "meta": {
            "included": false
          }
        }
      }
    }
  ],
  "links": {
    "first": "http://api-test.productive.io/api/v2/workflows?page%5Bnumber%5D=1&page%5Bsize%5D=30",
    "last": "http://api-test.productive.io/api/v2/workflows?page%5Bnumber%5D=1&page%5Bsize%5D=30"
  },
  "meta": {
    "current_page": 1,
    "total_pages": 1,
    "total_count": 3,
    "page_size": 30,
    "max_page_size": 200
  }
}

Get workflows
GET/api/v2/workflows


GET /api/v2/workflows/1
Requestsreturns workflow

GET  /api/v2/workflows/2799

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "2799",
    "type": "workflows",
    "attributes": {
      "name": "Simple workflow",
      "archived_at": null
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2233"
        }
      },
      "workflow_statuses": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Gets a workflow
GET/api/v2/workflows/{id}

URI Parameters
HideShow
id
number (required) Example: 1

workflow id


POST /api/v2/workflows
Requestscreates workflowreturns PlanLimitExceeded errorreturns error

POST  /api/v2/workflows

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "workflows",
    "attributes": {
      "name": "Complex workflow"
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "2801",
    "type": "workflows",
    "attributes": {
      "name": "Complex workflow",
      "archived_at": null
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2234"
        }
      },
      "workflow_statuses": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

POST  /api/v2/workflows

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "workflows",
    "attributes": {
      "name": "Complex workflow"
    }
  }
}
Responses403
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "403",
      "code": "plan_limit_exceeded",
      "title": "Access Denied",
      "detail": "Plan limit exceeded",
      "source": {}
    }
  ]
}

POST  /api/v2/workflows

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "type": "workflows",
  "attributes": {
    "name": ""
  }
}
Responses422
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "can't be blank",
      "source": {
        "pointer": "data/attributes/name"
      }
    }
  ]
}

Create an workflow
POST/api/v2/workflows

URI Parameters
HideShow
name
string (required) Example: Name

name


PATCH /api/v2/workflows/1
Requestsupdates workflowreturns error

PATCH  /api/v2/workflows/2814

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "workflows",
    "attributes": {
      "name": "Not so simple workflow"
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "2814",
    "type": "workflows",
    "attributes": {
      "name": "Not so simple workflow",
      "archived_at": null
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2237"
        }
      },
      "workflow_statuses": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

PATCH  /api/v2/workflows/2815

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "workflows",
    "attributes": {
      "name": ""
    }
  }
}
Responses422
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "can't be blank",
      "source": {
        "pointer": "data/attributes/name"
      }
    }
  ]
}

Update an workflow
PATCH/api/v2/workflows/{id}

URI Parameters
HideShow
id
number (required) Example: 1

workflow id


DELETE /api/v2/workflows/1
Requestsrestores workflow

DELETE  /api/v2/workflows/2816

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses204
This response has no content.

Deletes a workflow
DELETE/api/v2/workflows/{id}

URI Parameters
HideShow
id
number (required) Example: 1

workflow id


PATCH /api/v2/workflows/1/archive
Requestsarchives workflowdoes not archive workflow

PATCH  /api/v2/workflows/2817/archive

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "2817",
    "type": "workflows",
    "attributes": {
      "name": "Simple workflow",
      "archived_at": "2025-07-21T06:16:12.000+02:00"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2240"
        }
      },
      "workflow_statuses": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

PATCH  /api/v2/workflows/2819/archive

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses409
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "409",
      "code": "record_is_last_active_workflow",
      "title": "Conflict error",
      "source": {}
    }
  ]
}

Archives a workflow
PATCH/api/v2/workflows/{id}/archive

URI Parameters
HideShow
id
number (required) Example: 1

workflow id


PATCH /api/v2/workflows/1/restore
Requestsrestores workflowrestores workflow

PATCH  /api/v2/workflows/2821/restore

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "2821",
    "type": "workflows",
    "attributes": {
      "name": "Simple workflow",
      "archived_at": null
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2242"
        }
      },
      "workflow_statuses": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

POST  /api/v2/workflows/2822/copy

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "2823",
    "type": "workflows",
    "attributes": {
      "name": "Simple workflow copy",
      "archived_at": null
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2243"
        }
      },
      "workflow_statuses": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Restores a workflow
PATCH/api/v2/workflows/{id}/restore

URI Parameters
HideShow
id
number (required) Example: 1

workflow id


Generated by aglio on 21 Jul 2025