API - Complete reference

Response Format

The default Content-Type is 'application/json'.

In most cases a 200 response will have the following format

  {
"data": {
...
...
}
"meta": {
"count": 0,
"links": [
{
"rel": "",
"href": ""
},
...
...
]
}
}

The data attribute contains the data values related to the request.

The data attribute may contain other data attributes as required.

The meta attribute contains meta values related to the request.

In most cases, there will be a links attribute containing a list of valid urls that can be used. The client should avoid constructing its own urls and should only use those provided by the api as they may change in future versions.

If the data attribute represents an array (e.g. collection of grids) there will usually be a count attribute in the meta attribute with the number of items in the array.


Errors

The default Content-Type for errors is application/problem+json.

In most cases the response will have the following format

  {
"status": NNN,
"type": "",
"title": "",
"detail": "",
"instance": ""
"token": ""
}

Examples

401 Unauthorized

{
"status": 401,
"type": "???",
"title": "Invalid value for token.",
"detail": "api\\methodgrid\\com\\Http\\Exception\\UnauthorizedException",
"instance": "GET https://api.methodgrid.com/v1/"
}

Root Endpoint

GET /

Use this to check that authentication is working . An Authorization header is required. If authentication is successful, response status is 200 and response contains some basic meta data. In time the response could be extended to include meta data related to the authenticated user such as which api requests they are authorized to use.

Responses

Status: 200 OK
{
"links": [
{
"rel": "canonical",
"href": "https://api.methodgrid.com/v1/"
}
]
}

OPTIONS /

Responses

Status: 200 OK

Examples

200 OK

$ curl -v https://api.methodgrid.com/v1/ -H 'Authorization: Bearer {accessToken}'

$ curl -X OPTIONS -v https://api.methodgrid.com/v1/ -H 'Origin: {Origin}'

Is api available?

GET /ping

Use this to check that api is available.

No Authorization header is required.

Responses

Status: 200 OK    
{
"pong": "2020-02-25 13:29:27"
}

Examples

200 OK

$ curl -v https://api.methodgrid.com/v1/ping

Authentication

Revoke access token (logout)

DELETE /authenticate

Use this to revoke an accessToken, usually requested when a user logs out of client application.

Note that the access token will remain valid until it reaches its expiry time but it will not be able to refresh the access token.

Responses

Status: 204 No content
Status: 401 Unauthorized

Examples

204 No Content

$ curl -X DELETE -v https://api.methodgrid.com/v1/authenticate -H 'Authorization: Bearer {accessToken}'

Get access token using email/password credentials

POST /authenticate

No Authorization header is required

If credentials are valid, will return new accessToken and refreshToken.

Note that any access tokens that are invalidated will remain valid until they expire but once expired it will not be possible to refresh that access token.

Parameters

{
email
password
subdomain (optional)
}

Responses

Status: 200 OK    
{
"accessToken": "accessToken",
"refreshToken": "refreshToken"
}

accessToken expires after 1 hour.

refreshToken expires after 7 days.

Status: 400 Bad Request    
{
"status": 400,
"type": "???",
"title": "Missing parameters",
"detail": "api\\methodgrid\\com\\Http\\Exception\\BadRequestException: Expecting either email/password, refreshToken",
"instance": ""
}
Status: 401 Unauthorized
{
"status": 401,
"type": "???",
"title": "Invalid credentials.",
"detail": "api\\methodgrid\\com\\Http\\Exception\\UnauthorizedException: The supplied credentials are incorrect",
"instance": "POST https://api.methodgrid.com/v1/authenticate"
}

Examples

200 OK

$ curl -X POST -v https://api.methodgrid.com/v1/authenticate -d 'email={email}' -d 'password={password}'

400 Bad Request

$ curl -X POST -v https://api.methodgrid.com/v1/authenticate

401 Unauthorized

$ curl -X POST -v https://api.methodgrid.com/v1/authenticate -d 'email=invalid' -d 'password=invalid'

Get access token using refresh token

POST /authenticate

Authorization header is required and should contain the accessToken that corresponds to the given refreshToken.

If refreshToken is valid, will return new accessToken and refreshToken.

Parameters

{
refreshToken
}

Responses

Status: 200 OK
{
"accessToken": "accessToken",
"refreshToken": "refreshToken"
}

accessToken expires after 1 hour.

refreshToken expires after 7 days.

Status: 400 Bad Request
{
"status": 400,
"type": "???",
"title": "Missing parameters",
"detail": "api\\methodgrid\\com\\Http\\Exception\\BadRequestException: Expecting either email/password, refreshToken",
"instance": ""
}
Status: 500 Internal Server Error
{
"status": 500,
"type": "App\\Domain\\Exception\\NotFoundException",
"title": "???",
"detail": "",
"instance": "???"
}

Examples

200 OK

$ curl -X POST -v https://api.methodgrid.com/v1/authenticate -H 'Authorization: Bearer {accessToken}' -d 'refreshToken={refreshToken}'

400 Bad Request

$ curl -X POST -v https://api.methodgrid.com/v1/authenticate

500 Internal Server Error

$   curl -X POST -v https://api.methodgrid.com/v1/authenticate -H 'Authorization: Bearer {accessToken}' -d 'refreshToken=invalid'

Elements

List elements

GET /elements

Authorization header is required.

Responses

Status: 501 Not Implemented
{
"status": 501,
"type": "???",
"title": "Not Implemented",
"detail": "api\\methodgrid\\com\\Http\\Exception\\NotImplementedException",
"instance": ""
}

OPTIONS /elements

Examples

200 OK

$ curl -v https://api.methodgrid.com/v1/elements -H 'Authorization: Bearer {accessToken}'

Get element details

GET /elements/{elementIdentifier}

Authorization header is required.

Basic details of element.

Links to sub-resources (tasks).

No element area structure is imposed on tasks collection it is just a list of all the tasks in the element.

Responses

Status: 200 OK
{
"data": {
"identifier": "identifier",
"name": "name",
"tasks": {
"data": [
{
"data": {
"identifier": "identifier",
"description": "description"
},
"meta": {
"links": [
{
"rel": "self",
"href": "https://api.methodgrid.com/v1/tasks/{taskIdentifier}"
}
]
}
},
...
...
],
"meta": {
"count": 3
}
}
},
"meta": {
"links": [
{
"rel": "comments",
"href": "https://api.methodgrid.com/v1/elements/{elementIdentifier}/comments"
},
{
"rel": "self",
"href": "https://api.methodgrid.com/v1/elements/{elementIdentifier}"
}
]
}
}

Examples

200 OK

$ curl -v https://api.methodgrid.com/v1/elements/{elementIdentifier} -H 'Authorization: Bearer {accessToken}'

Grids

List grids

GET /grids

Authorization header is required.

Responses

Status: 501 Not Implemented
{
"status": 501,
"type": "???",
"title": "Not Implemented",
"detail": "api\\methodgrid\\com\\Http\\Exception\\NotImplementedException",
"instance": ""
}

OPTIONS /grids

Examples

200 OK

$ curl -v https://api.methodgrid.com/v1/grids -H 'Authorization: Bearer {accessToken}'

Get grid details

GET /grids/{gridIdentifier}

Authorization header is required.

Basic details of grid.

Links to sub-resources (elements).

No stage/theme structure is imposed on elements collection it is just a list of all the elements in the grid.

Responses

Status: 200 OK
{
"data": {
"elements": {
"data": [
{
"data": {
"identifier": "identifier",
"title": "title"
},
"meta": {
"links": [
{
"rel": "self",
"href": "https://api.methodgrid.com/v1/elements/{elementIdentifier}"
}
]
}
},
...
...
]
"meta": {
"count": 33
}
},
"identifier": "identifier",
"name": "name"
},
"meta": {
"links": [
{
"rel": "comments",
"href": "https://api.methodgrid.com/v1/grids/{gridIdentifier}/comments"
},
{
"rel": "self",
"href": "https://api.methodgrid.com/v1/grids/{gridIdentifier}"
}
]
}
}

Examples

200 OK

$ curl -v https://api.methodgrid.com/v1/grids/{gridIdentifier} -H 'Authorization: Bearer {accessToken}'

Me

Get basic details with links to sub-resources

GET /me

Authorization header is required.

Basic details of member.

Links to sub-resources (analytics, elements, folders, grids, settings, tasks).

Responses

Status: 200 OK
{
"data": {
"full-name": "full-name",
"id": id,
"identifier": "identifier"
},
"meta": {
"links": [
{
"rel": "analytics",
"href": "https://api.methodgrid.com/v1/me/analytics"
},
{
"rel": "elements",
"href": "https://api.methodgrid.com/v1/me/elements"
},
{
"rel": "folders",
"href": "https://api.methodgrid.com/v1/me/folders"
},
{
"rel": "grids",
"href": "https://api.methodgrid.com/v1/me/grids"
},
{
"rel": "self",
"href": "https://api.methodgrid.com/v1/me/"
},
{
"rel": "settings",
"href": "https://api.methodgrid.com/v1/me/settings"
},
{
"rel": "tasks",
"href": "https://api.methodgrid.com/v1/me/tasks"
}
]
}
}

Examples

200 OK

$ curl -v https://api.methodgrid.com/v1/me -H 'Authorization: Bearer {accessToken}'

OPTIONS /me

Get my analytics

GET /me/analytics

Authorization header is required

Responses

Status: 200 OK
{
"data": {
"elements": {
"data": {
"open": {
"data": {
"count-all": 999,
"count-assigned": 0
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/elements?filter=open"
}
]
}
},
"overdue": {
"data": {
"count-all": 2,
"count-assigned": 2
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/elements?filter=overview"
}
]
}
},
"due-this-week": {
"data": {
"count-all": 0,
"count-assigned": 0,
"start-of-week": 1617580800
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/elements?filter=due-this-week"
}
]
}
},
"due-next-week": {
"data": {
"count-all": 0,
"count-assigned": 0,
"start-of-week": 1618185600
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/elements?filter=due-next-week"
}
]
}
},
"due-in-two-weeks": {
"data": {
"count-all": 0,
"count-assigned": 0,
"start-of-week": 1618790400
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/elements?filter=due-in-two-weeks"
}
]
}
},
"due-in-three-weeks": {
"data": {
"count-all": 0,
"count-assigned": 0,
"start-of-week": 1619395200
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/elements?filter=due-in-three-weeks"
}
]
}
},
"due-in-four-weeks": {
"data": {
"count-all": 0,
"count-assigned": 0,
"start-of-week": 1620000000
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/elements?filter=due-in-four-weeks"
}
]
}
},
"due-in-five-weeks": {
"data": {
"count-all": 0,
"count-assigned": 0,
"start-of-week": 1620604800
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/elements?filter=due-in-five-weeks"
}
]
}
},
"due-in-six-weeks": {
"data": {
"count-all": 0,
"count-assigned": 0,
"start-of-week": 1621209600
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/elements?filter=due-in-six-weeks"
}
]
}
},
"flagged": {
"data": {
"count-all": 1,
"count-assigned": 1
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/elements?filter=flagged"
}
]
}
}
},
"meta": []
},
"grids": {
"data": {
"open": {
"data": {
"count-all": 15,
"count-assigned": 3
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=open"
}
]
}
},
"overdue": {
"data": {
"count-all": 5,
"count-assigned": 3
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=overview"
}
]
}
},
"due-this-week": {
"data": {
"count-all": 0,
"count-assigned": 0,
"start-of-week": 1617580800
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=due-this-week"
}
]
}
},
"flagged": {
"data": {
"count-all": 1,
"count-assigned": 1
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=flagged"
}
]
}
}
},
"meta": []
},
"overview": {
"data": {
"red": {
"data": {
"label": "Red",
"count": 1,
"percent": 6
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=red"
}
]
}
},
"amber": {
"data": {
"label": "Amber",
"count": 1,
"percent": 6
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=amber"
}
]
}
},
"green": {
"data": {
"label": "Green",
"count": 1,
"percent": 6
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=green"
}
]
}
},
"complete": {
"data": {
"label": "Complete",
"count": 0,
"percent": 0
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=complete"
}
]
}
},
"none": {
"data": {
"label": "None",
"count": 12,
"percent": 80
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=none"
}
]
}
}
},
"meta": []
},
"tasks": {
"data": {
"open": {
"data": {
"count-all": 999,
"count-assigned": 1
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/tasks?filter=open"
}
]
}
},
"overdue": {
"data": {
"count-all": 2,
"count-assigned": 2
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/tasks?filter=overview"
}
]
}
},
"due-this-week": {
"data": {
"count-all": 0,
"count-assigned": 0,
"start-of-week": 1617580800
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/tasks?filter=due-this-week"
}
]
}
},
"due-next-week": {
"data": {
"count-all": 0,
"count-assigned": 0,
"start-of-week": 1618185600
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/tasks?filter=due-next-week"
}
]
}
},
"due-in-two-weeks": {
"data": {
"count-all": 0,
"count-assigned": 0,
"start-of-week": 1618790400
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/tasks?filter=due-in-two-weeks"
}
]
}
},
"due-in-three-weeks": {
"data": {
"count-all": 0,
"count-assigned": 0,
"start-of-week": 1619395200
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/tasks?filter=due-in-three-weeks"
}
]
}
},
"due-in-four-weeks": {
"data": {
"count-all": 0,
"count-assigned": 0,
"start-of-week": 1620000000
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/tasks?filter=due-in-four-weeks"
}
]
}
},
"due-in-five-weeks": {
"data": {
"count-all": 0,
"count-assigned": 0,
"start-of-week": 1620604800
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/tasks?filter=due-in-five-weeks"
}
]
}
},
"due-in-six-weeks": {
"data": {
"count-all": 0,
"count-assigned": 0,
"start-of-week": 1621209600
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/tasks?filter=due-in-six-weeks"
}
]
}
},
"flagged": {
"data": {
"count-all": 1,
"count-assigned": 1
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/tasks?filter=flagged"
}
]
}
}
},
"meta": []
},
"trends": {
"data": {
"2021-01-18": {
"data": {
"red": 0,
"amber": 0,
"green": 0,
"complete": 0
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=2021-01-18"
}
]
}
},
"2021-01-25": {
"data": {
"red": 0,
"amber": 0,
"green": 0,
"complete": 0
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=2021-01-25"
}
]
}
},
"2021-02-01": {
"data": {
"red": 0,
"amber": 0,
"green": 0,
"complete": 0
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=2021-02-01"
}
]
}
},
"2021-02-08": {
"data": {
"red": 0,
"amber": 0,
"green": 0,
"complete": 0
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=2021-02-08"
}
]
}
},
"2021-02-15": {
"data": {
"red": 0,
"amber": 0,
"green": 0,
"complete": 0
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=2021-02-15"
}
]
}
},
"2021-02-22": {
"data": {
"red": 0,
"amber": 0,
"green": 0,
"complete": 0
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=2021-02-22"
}
]
}
},
"2021-03-01": {
"data": {
"red": 0,
"amber": 0,
"green": 0,
"complete": 0
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=2021-03-01"
}
]
}
},
"2021-03-08": {
"data": {
"red": 0,
"amber": 0,
"green": 0,
"complete": 0
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=2021-03-08"
}
]
}
},
"2021-03-15": {
"data": {
"red": 0,
"amber": 0,
"green": 0,
"complete": 0
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=2021-03-15"
}
]
}
},
"2021-03-22": {
"data": {
"red": 0,
"amber": 0,
"green": 0,
"complete": 0
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=2021-03-22"
}
]
}
},
"2021-03-29": {
"data": {
"red": 0,
"amber": 0,
"green": 0,
"complete": 0
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=2021-03-29"
}
]
}
},
"2021-04-05": {
"data": {
"red": 0,
"amber": 0,
"green": 0,
"complete": 0
},
"meta": {
"links": [
{
"rel": "detail",
"href": "https://api.methodgrid.com/v1/me/grids?filter=2021-04-05"
}
]
}
}
},
"meta": []
}
},
"meta": {
"links": [
{
"rel": "self",
"href": "https://api.methodgrid.com/v1/me/analytics"
},
[
{
"rel": "help",
"href": "https://help.methodgrid.com/help/how-can-i-see-an-overview-of-all-grids-assigned-to-me-and-overall"
}
]
]
}
}

Examples

200 OK

$ curl -v https://api.methodgrid.com/v1/me/analytics -H 'Authorization: Bearer {accessToken}'

OPTIONS /me/analytics

List my elements

GET /me/elements

Authorization header is required

Parameters

Filters can be combined as a comma separated string e.g. filter=assigned,overdue.

filter=assigned

List elements assigned to me.

filter=flagged

List elements with a flag.

filter=overdue

List elements that are overdue.

due-date-from=DD-MM-YYYY

List elements with a due date after given value.

due-date-to=DD-MM-YYYY

List elements with a due date before given value.

Responses

Status: 200 OK
{
"data": [
{
"data": {
"assigned-to": {
"data": {
"identifier": "identifier",
"name": "name"
},
"meta": []
},
"due-date": 1617145199,
"folder": {
"data": {
"name": "name"
},
"meta": {
"rel": "self",
"href-api": "https://api.methodgrid.com/v1/folders/{folderIdentifier}",
"href-app": "https://app.methodgrid.com/grids/p/{folderIdentifier}"
}
},
"grid": {
"data": {
"name": "name"
},
"meta": {
"rel": "self",
"href-api": "https://api.methodgrid.com/v1/grids/{gridIdentifier}",
"href-app": "https://app.methodgrid.com/grid/{gridIdentifier}"
}
},
"identifier": "identifier",
"isFlagged": true,
"name": "name",
"stage": {
"data": {
"name": "name"
},
"meta": []
},
"status": "OVERDUE",
"theme": {
"data": {
"name": "name"
},
"meta": []
}
},
"meta": {
"links": [
{
"rel": "self",
"href-api": "https://api.methodgrid.com/v1/elements/{elementIdentifier}",
"href-app": "https://app.methodgrid.com/grid/{gridIdentifier}/element/{elementIdentifier}"
}
]
}
},
...
...
],
"meta": {
"count": 2,
"links": [
{
"rel": "self",
"href": "https://api.methodgrid.com/v1/me/elements?filter=overdue"
}
],
"pagination": null
}
}

Examples

200 OK

$ curl -v https://api.methodgrid.com/v1/me/elements -H 'Authorization: Bearer {accessToken}'

$ curl -v https://api.methodgrid.com/v1/me/elements?filter=overdue -H 'Authorization: Bearer {accessToken}'

OPTIONS /me/elements

List my grids

GET /me/grids

Authorization header is required

Parameters

Filters can be combined as a comma separated string e.g. filter=assigned,overdue.

filter=assigned

List grids assigned to me.

filter=due-this-week

List grids due this week.

filter=flagged

List grids with a flag.

filter=overdue

List grids that are overdue.

filter=amber

List grids with a RAG value of amber.

filter=complete

List grids that are complete.

filter=green

List grids with a RAG value of green.

filter=none

List grids that have no RAG value.

filter=red

List grids with a RAG value of red.

due-date-from=DD-MM-YYYY

List grids with a due date after given value.

due-date-to=DD-MM-YYYY

List grids with a due date before given value.

Responses

Status: 200 OK
{
"data": [
{
"data": {
"due-date": 1607990399,
"elements-with-tasks": {
"data": {
"count": 1,
"percentage-complete": 0
},
"meta": []
},
"folder": {
"data": {
"name": ""
},
"meta": {
"rel": "self",
"href-api": "https://api.methodgrid.com/v1/folders/{folderIdentifier}",
"href-app": "https://app.methodgrid.com/grids/p/{folderIdentifier}"
}
},
"identifier": "",
"isFlagged": true,
"name": "",
"owner": {
"data": {
"identifier": "identifier",
"name": "name"
},
"meta": []
},
"status": "Red"
},
"meta": {
"links": [
{
"rel": "self",
"href-api": "https://api.methodgrid.com/v1/grids/{gridIdentifier}",
"href-app": "https://app.methodgrid.com/grid/{gridIdentifier}"
}
]
}
},
{
...
},
{
...
},
{
...
},
],
"meta": {
"count": 10,
"links": [
{
"rel": "self",
"href": "https://api.methodgrid.com/v1/me/grids"
}
],
"pagination": {
"links": [
{
"rel": "first",
"href": "https://api.methodgrid.com/v1/me/grids?page=1"
},
{
"rel": "prev",
"href": "https://api.methodgrid.com/v1/me/grids?page=1"
},
{
"rel": "next",
"href": "https://api.methodgrid.com/v1/me/grids?page=2"
},
{
"rel": "last",
"href": "https://api.methodgrid.com/v1/me/grids?page=2"
},
{
"rel": "self",
"href": "https://api.methodgrid.com/v1/me/grids?page=1"
}
],
"numPages": 2,
"numResults": 15,
"page": 1,
"perPage": 10
}
}
}

Examples

200 OK

$ curl -v https://api.methodgrid.com/v1/me/grids -H 'Authorization: Bearer {accessToken}'

$ curl -v https://api.methodgrid.com/v1/me/grids?filter=assigned -H 'Authorization: Bearer {accessToken}'

OPTIONS /me/grids

List my tasks

GET /me/tasks

Authorization header is required

Parameters

Filters can be combined as a comma separated string e.g. filter=assigned,overdue.

filter=assigned

List tasks assigned to me.

filter=flagged

List tasks with a flag.

filter=overdue

List tasks that are overdue.

due-date-from=DD-MM-YYYY

List grids with a due date after given value.

due-date-to=DD-MM-YYYY

List grids with a due date before given value.

Responses

Status: 200 OK
{
"data": [
{
"data": {
"assigned-to": {
"data": {
"identifier": "entityIdentifier",
"name": "name"
},
"meta": []
},
"description": "description",
"due-date": 1615852799,
"element": {
"data": {
"name": "name"
},
"meta": {
"rel": "self",
"href-api": "https://api.methodgrid.com/v1/elements/{elementIdentifier}",
"href-app": "https://app.methodgrid.com/grid/ewfoxt/element/{elementIdentifier}"
}
},
"folder": {
"data": {
"name": "name"
},
"meta": {
"rel": "self",
"href-api": "https://api.methodgrid.com/v1/folders/{folderIdentifier}",
"href-app": "https://app.methodgrid.com/grids/p/{folderIdentifier}"
}
},
"grid": {
"data": {
"name": "name"
},
"meta": {
"rel": "self",
"href-api": "https://api.methodgrid.com/v1/grids/{gridIdentifier}",
"href-app": "https://app.methodgrid.com/grid/{gridIdentifier}"
}
},
"identifier": "taskIdentifier",
"isFlagged": false,
"reminder-date": "TBD",
"stage": {
"data": {
"name": "name"
},
"meta": []
},
"status": "OVERDUE",
"theme": {
"data": {
"name": "name"
},
"meta": []
}
},
"meta": {
"links": [
{
"rel": "self",
"href-api": "https://api.methodgrid.com/v1/tasks/{taskIdentifier}",
"href-app": "https://app.methodgrid.com/grid/ewfoxt/element/{elementIdentifier}"
}
]
}
},
...
],
"meta": {
"count": 2,
"links": [
{
"rel": "self",
"href": "https://api.methodgrid.com/v1/me/tasks?filter=overdue"
}
],
"pagination": null
}
}

Examples

200 OK

$ curl -v https://api.methodgrid.com/v1/me/tasks -H 'Authorization: Bearer {accessToken}'

$ curl -v https://api.methodgrid.com/v1/me/tasks?filter=assigned -H 'Authorization: Bearer {accessToken}'

OPTIONS /me/tasks

Tasks

List tasks

GET /tasks

Authorization header is required.

Responses

Status: 501 Not Implemented
{
"status": 501,
"type": "???",
"title": "Not Implemented",
"detail": "api\\methodgrid\\com\\Http\\Exception\\NotImplementedException",
"instance": ""
}

OPTIONS /tasks

Examples

200 OK

$ curl -v https://api.methodgrid.com/v1/tasks -H 'Authorization: Bearer {accessToken}'

Get task details

GET /tasks/{taskIdentifier}

Authorization header is required.

Basic details of task.

Responses

Status: 200 OK
{
"data": {
"description": "description",
"identifier": "taskIdentifier"
},
"meta": {
"links": [
{
"rel": "comments",
"href": "https://api.methodgrid.com/v1/tasks/{taskIdentifier}/comments"
},
{
"rel": "self",
"href": "https://api.methodgrid.com/v1/tasks/{taskIdentifier}"
}
]
}
}

Examples

200 OK

$ curl -v https://api.methodgrid.com/v1/tasks/{taskIdentifier} -H 'Authorization: Bearer {accessToken}'

Mark task as complete/incomplete

PUT /tasks/{taskIdentifier}

Authorization header is required.

Parameters

{
completed: Y|N
}

Responses

Status: 204 No Content

Examples

204 No Content

$ curl -X PUT -v https://api.methodgrid.com/v1/tasks/{taskIdentifier} -H 'Authorization: Bearer {accessToken}' -d 'completed="Y"'