AgilityPortal API (1.1.0)

Download OpenAPI specification:Download

Introduction

Welcome to the AgilityPortal API documentation. This API allows users to authenticate and manage projects efficiently.

Key Features:

  • Authentication: Secure OAuth2-based authentication with domain validation.
  • Token Management: Manage authentication and refresh tokens securely.
  • Project Management: Manage projects with the ability to add, update, and delete.
  • Task Management: Easily create, update, and delete tasks within projects.

This API follows RESTful principles and returns JSON responses where applicable.

Authentication

Authentication API Endpoints

Authorization URL

Redirects the user to authenticate and obtain an authorization code. Note: Authentication uses domain-based validation. Errors will redirect to an error page instead of returning JSON.

Authorizations:
BearerAuth
query Parameters
client_id
required
string
state
required
string
redirect_uri
required
string
response_type
required
string
Value: "code"
oauth
required
string
Example: oauth=zapier

Responses

Access Token Request

Exchange an authorization code for an access token.

Authorizations:
BearerAuth
Request Body schema: application/x-www-form-urlencoded
code
string
client_id
string
client_secret
string
grant_type
string
Value: "authorization_code"
redirect_uri
string

Responses

Response samples

Content type
application/json
{
  • "token_type": "Bearer",
  • "expires_in": 3600,
  • "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJSVmhZWmNyY2VQWGxlU2VsejVsdHByX2RlbW8iLCJqdGkiOiI2M2M2YTQ0ODE3M2I2MjllMmZiNmE0NzM3MGM0M2ZlMGZmYWQ5MDM2MGU4ZTNjNmI2NDAzNTM1YmJlZDQ5OWRiNTliOTY4ODkyMmI1ZTNmNiIsImlhdCI6MTc0MTA1OTYzNi4wMTQwOTIsIm5iZiI6MTc0MTA1OTYzNi4wMTQwOTUsImV4cCI6MTc0MzY1MTYzNS42ODUwNjMsInN1YiI6IjEiLCJzY29wZXMiOltdfQ.RqMvUretN33rBYGjYNxDAkIfrzVfAuLLf5-zIqXO27FpfZnpUm_mHzKG9jQF0f27NMQnsQ5W0CSCzMPHKapFFgiuqjEs2C8DczY8JHumqcJJdyrIks5DrWaDnZs6uraefF13Cx_WAv7EE0-9tRMyKtTGbSCsWqb6nYaIhPX_wyhX7BfG_yHB-mamU4USMCZaWgq1E3mul2L4Tz_6RIEEJX-3if-3ACBmO6Ifx4RENvy2_mA_BRG4OqpHMFYJw7n_OEHLJJ1ofHzozE2tjwXQCyoC_wWDJQljP0S08MQvPhj0NswFA0P3uHEOfO3G2G5PJI7yTyT88GKsK2ZUEvi63Q",
  • "refresh_token": "def50200a8d44c3e406729d7d3dd1931d7fc0d6e04a75476d7d31b427c658c0a3b7cd958c80fcee22fb50fbeb6b34814d3a9a984cbff8cef1d29eb871694985ca1fb274d28c06d595bcedc33169bc40eecf35794ca25d53b2b819ea1b4dcbc0d53e5bd14b1c69f9574c39b839f37c0c1cd22d825658e8093c1c3ac6d12d2c622d49217bcacf280f4d869f26f80ca6de7f427c22e1a1d5a1e56ed6efd94d2c57b6466956ae18572ad1f775b4a0df3121f737bef2ef9b51710cecd0db3a822a8ba4c6b40d2adc078d581e8fa1b71fc66972c9b62947026ed95eef383cfb10a9834e72013da31fb21fb6dc2745d0e3aa4d64b58f6e4e1aee163cbb0974bf90e2ee1fb3d415066f8ddddc9019e667df88479ea44bcc59e8c564535924586babec7865119f42322122fcd5aa1c073c075772e8b09469afcc7f252168342359e6a77fcf5680212f634b601146a2bd4ef52b8c20dad9803a6f9e66b68cf4011ca2f45ca3e052da66cdf66518eb89b7a3dae405b5f6eddeca98182d667d0f9d7a5"
}

Refresh Token Request

Request a new access token using a refresh token.

Authorizations:
BearerAuth
Request Body schema: application/x-www-form-urlencoded
refresh_token
string
grant_type
string
Value: "refresh_token"
client_id
string
client_secret
string
redirect_uri
string

Responses

Response samples

Content type
application/json
{
  • "token_type": "Bearer",
  • "expires_in": 3600,
  • "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJSVmhZWmNyY2VQWGxlU2VsejVsdHByX2RlbW8iLCJqdGkiOiI2M2M2YTQ0ODE3M2I2MjllMmZiNmE0NzM3MGM0M2ZlMGZmYWQ5MDM2MGU4ZTNjNmI2NDAzNTM1YmJlZDQ5OWRiNTliOTY4ODkyMmI1ZTNmNiIsImlhdCI6MTc0MTA1OTYzNi4wMTQwOTIsIm5iZiI6MTc0MTA1OTYzNi4wMTQwOTUsImV4cCI6MTc0MzY1MTYzNS42ODUwNjMsInN1YiI6IjEiLCJzY29wZXMiOltdfQ.RqMvUretN33rBYGjYNxDAkIfrzVfAuLLf5-zIqXO27FpfZnpUm_mHzKG9jQF0f27NMQnsQ5W0CSCzMPHKapFFgiuqjEs2C8DczY8JHumqcJJdyrIks5DrWaDnZs6uraefF13Cx_WAv7EE0-9tRMyKtTGbSCsWqb6nYaIhPX_wyhX7BfG_yHB-mamU4USMCZaWgq1E3mul2L4Tz_6RIEEJX-3if-3ACBmO6Ifx4RENvy2_mA_BRG4OqpHMFYJw7n_OEHLJJ1ofHzozE2tjwXQCyoC_wWDJQljP0S08MQvPhj0NswFA0P3uHEOfO3G2G5PJI7yTyT88GKsK2ZUEvi63Q",
  • "refresh_token": "def50200a8d44c3e406729d7d3dd1931d7fc0d6e04a75476d7d31b427c658c0a3b7cd958c80fcee22fb50fbeb6b34814d3a9a984cbff8cef1d29eb871694985ca1fb274d28c06d595bcedc33169bc40eecf35794ca25d53b2b819ea1b4dcbc0d53e5bd14b1c69f9574c39b839f37c0c1cd22d825658e8093c1c3ac6d12d2c622d49217bcacf280f4d869f26f80ca6de7f427c22e1a1d5a1e56ed6efd94d2c57b6466956ae18572ad1f775b4a0df3121f737bef2ef9b51710cecd0db3a822a8ba4c6b40d2adc078d581e8fa1b71fc66972c9b62947026ed95eef383cfb10a9834e72013da31fb21fb6dc2745d0e3aa4d64b58f6e4e1aee163cbb0974bf90e2ee1fb3d415066f8ddddc9019e667df88479ea44bcc59e8c564535924586babec7865119f42322122fcd5aa1c073c075772e8b09469afcc7f252168342359e6a77fcf5680212f634b601146a2bd4ef52b8c20dad9803a6f9e66b68cf4011ca2f45ca3e052da66cdf66518eb89b7a3dae405b5f6eddeca98182d667d0f9d7a5"
}

Get User Info

Retrieve user information associated with the provided access token.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "email": "string",
  • "job": "string"
}

Project

Project Management API Endpoints

Create a new project

Authorizations:
BearerAuth
Request Body schema: application/json
name
required
string
description
required
string
privacy
required
string
Enum: "public" "private"
start_date
required
string <date-time>
due_date
required
string <date-time>
category
required
string
owner
required
string <email>
assignees
string <List of email addresses separated by commas>

Responses

Request samples

Content type
application/json
{
  • "name": "Project Alpha",
  • "description": "This is a sample project description.",
  • "privacy": "public",
  • "start_date": "2024-03-10T08:00:00Z",
  • "due_date": "2024-06-15T17:00:00Z",
  • "category": "Software Development",
  • "owner": "owner@example.com",
  • "assignees": "assignee1@example.com, assignee2@example.com"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Project Alpha",
  • "description": "This is a sample project description.",
  • "privacy": "public",
  • "start_date": "2024-03-10T08:00:00Z",
  • "due_date": "2024-06-15T17:00:00Z",
  • "category": "Software Development",
  • "owner": {
    },
  • "assignees": [
    ],
  • "collaborators": [
    ]
}

Update an existing project

Authorizations:
BearerAuth
Request Body schema: application/json
id
required
integer
name
required
string
description
required
string
privacy
required
string
Enum: "public" "private"
start_date
required
string <date-time>
due_date
required
string <date-time>
category
required
string
owner
required
string <email>
assignees
string <List of email addresses separated by commas>

Responses

Request samples

Content type
application/json
{
  • "id": 1,
  • "name": "Project Alpha",
  • "description": "This is a sample project description.",
  • "privacy": "public",
  • "start_date": "2024-03-10T08:00:00Z",
  • "due_date": "2024-06-15T17:00:00Z",
  • "category": "Software Development",
  • "owner": "owner@example.com",
  • "assignees": "assignee1@example.com, assignee2@example.com"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Project Alpha",
  • "description": "This is a sample project description.",
  • "privacy": "public",
  • "start_date": "2024-03-10T08:00:00Z",
  • "due_date": "2024-06-15T17:00:00Z",
  • "category": "Software Development",
  • "owner": {
    },
  • "assignees": [
    ],
  • "collaborators": [
    ]
}

Delete a project

Authorizations:
BearerAuth
Request Body schema: application/json
id
integer

Project ID to delete

Responses

Request samples

Content type
application/json
{
  • "id": 0
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Project Alpha"
}

Task

Create a task

Authorizations:
BearerAuth
Request Body schema: application/json
project_id
required
integer
name
required
string
description
string
milestone
required
string
start_date
required
string <date-time>
due_date
required
string <date-time>
status
required
string
priority
required
string
estimated_effort
integer
assignees
string <List of email addresses separated by commas>

Responses

Request samples

Content type
application/json
{
  • "project_id": 1,
  • "name": "Sample Task",
  • "description": "This is a sample task description.",
  • "milestone": "Phase 01",
  • "start_date": "2024-03-10T08:00:00Z",
  • "due_date": "2024-06-15T17:00:00Z",
  • "status": "Done",
  • "priority": "Medium",
  • "estimated_effort": 8,
  • "assignees": "assignee1@example.com, assignee2@example.com"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Sample Task",
  • "description": "This is a sample task description.",
  • "project_id": 1,
  • "project_name": "Sample Project",
  • "start_date": "2024-03-10T08:00:00Z",
  • "due_date": "2024-06-15T17:00:00Z",
  • "milestone": "Phase 01",
  • "progress": 10,
  • "estimated_effort": 8,
  • "priority": "Medium",
  • "status": "Done",
  • "followers": [
    ],
  • "assignees": [
    ]
}

Update an existing task

Authorizations:
BearerAuth
Request Body schema: application/json
id
required
integer
project_id
required
integer
name
required
string
description
string
milestone
required
string
start_date
required
string <date-time>
due_date
required
string <date-time>
status
required
string
priority
required
string
estimated_effort
integer
assignees
string <List of email addresses separated by commas>

Responses

Request samples

Content type
application/json
{
  • "id": 1,
  • "project_id": 1,
  • "name": "Sample Task",
  • "description": "This is a sample task description.",
  • "milestone": "Phase 01",
  • "start_date": "2024-03-10T08:00:00Z",
  • "due_date": "2024-06-15T17:00:00Z",
  • "status": "Done",
  • "priority": "Medium",
  • "estimated_effort": 8,
  • "assignees": "assignee1@example.com, assignee2@example.com"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Sample Task",
  • "description": "This is a sample task description.",
  • "project_id": 1,
  • "project_name": "Sample Project",
  • "start_date": "2024-03-10T08:00:00Z",
  • "due_date": "2024-06-15T17:00:00Z",
  • "milestone": "Phase 01",
  • "progress": 10,
  • "estimated_effort": 8,
  • "priority": "Medium",
  • "status": "Done",
  • "followers": [
    ],
  • "assignees": [
    ]
}

Delete a task

Authorizations:
BearerAuth
Request Body schema: application/json
id
integer

Task ID to delete

Responses

Request samples

Content type
application/json
{
  • "id": 0
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Project Alpha"
}