Back to top

Team O'clock API

This document descibes the Team O’clock REST APIv2.

The base URL of the API is:

https://www.teamoclock.com/api/v2/

Authentication

Authentication is performed using HTTP Basic Authentication, with the following credentials:

  • Username: Organization slug

  • Password: Secret API key

Credentials can be found under the Organization settings page.

Curl example:

curl --user 'jenious-inc:skey-abcd'
     https://www.teamoclock.com/api/v2/teams

Browser example:

https://jenious-inc:skey-abcd@www.teamoclock.com/api/v2/teams

Basic usage

The REST API supports the GET, POST, PATCH and DELETE operations for getting, creating, updating and deleting resources.

The request and response payloads are in JSON format.

Example:

curl --user 'jenious-inc:skey-abcd'
     -X POST
     -d '{"name": "My team", "slug": "my-team"}'
     -H "Content-Type: application/json"
     https://www.teamoclock.com/api/v2/teams

Members collection

Members related resources.

Members

List all members
GET/members

Returns a list of organization members.

Example URI

GET https://www.teamoclock.com/api/v2/members
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "username": "joe",
      "first_name": "Joe",
      "last_name": "Doe",
      "avatar": "me.jpg",
      "email": "joedoe@acme.inc",
      "role": "administrator",
      "links": {
        "self": "https://www.teamoclock.com/api/v2/members/joe"
      }
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "array"
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Create a member
POST/members

Creates a new member.

Example URI

POST https://www.teamoclock.com/api/v2/members
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "username": "joe",
    "first_name": "Joe",
    "last_name": "Doe",
    "avatar": "me.jpg",
    "email": "joedoe@acme.inc",
    "role": "administrator"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string"
        },
        "first_name": {
          "type": "string"
        },
        "last_name": {
          "type": "string"
        },
        "avatar": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "role": {
          "type": "string",
          "enum": [
            "administrator",
            "manager",
            "member"
          ],
          "default": "member"
        }
      }
    }
  }
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "username": "joe",
    "first_name": "Joe",
    "last_name": "Doe",
    "avatar": "me.jpg",
    "email": "joedoe@acme.inc",
    "role": "administrator",
    "links": {
      "self": "https://www.teamoclock.com/api/v2/members/joe"
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string"
        },
        "first_name": {
          "type": "string"
        },
        "last_name": {
          "type": "string"
        },
        "avatar": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "role": {
          "type": "string",
          "enum": [
            "administrator",
            "manager",
            "member"
          ],
          "default": "member"
        },
        "links": {
          "type": "object",
          "properties": {
            "self": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 400,
    "code": "bad request",
    "title": "Invalid request",
    "detail": "Enter a valid json body"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Member

Get a member
GET/members/{username}

Gets member details by username.

Example URI

GET https://www.teamoclock.com/api/v2/members/joe
URI Parameters
HideShow
username
string (required) Example: joe

Member username

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "username": "joe",
    "first_name": "Joe",
    "last_name": "Doe",
    "avatar": "me.jpg",
    "email": "joedoe@acme.inc",
    "role": "administrator"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string"
        },
        "first_name": {
          "type": "string"
        },
        "last_name": {
          "type": "string"
        },
        "avatar": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "role": {
          "type": "string",
          "enum": [
            "administrator",
            "manager",
            "member"
          ],
          "default": "member"
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Update a member
PATCH/members/{username}

Modify a member by username.

Example URI

PATCH https://www.teamoclock.com/api/v2/members/joe
URI Parameters
HideShow
username
string (required) Example: joe

Member username

Request
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "username": "joe",
    "first_name": "Joe",
    "last_name": "Doe",
    "avatar": "me.jpg",
    "email": "joedoe@acme.inc",
    "role": "administrator"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string"
        },
        "first_name": {
          "type": "string"
        },
        "last_name": {
          "type": "string"
        },
        "avatar": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "role": {
          "type": "string",
          "enum": [
            "administrator",
            "manager",
            "member"
          ],
          "default": "member"
        }
      }
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "username": "joe",
    "first_name": "Joe",
    "last_name": "Doe",
    "avatar": "me.jpg",
    "email": "joedoe@acme.inc",
    "role": "administrator"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string"
        },
        "first_name": {
          "type": "string"
        },
        "last_name": {
          "type": "string"
        },
        "avatar": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "role": {
          "type": "string",
          "enum": [
            "administrator",
            "manager",
            "member"
          ],
          "default": "member"
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 400,
    "code": "bad request",
    "title": "Invalid request",
    "detail": "Enter a valid json body"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Delete a member
DELETE/members/{username}

Deletes a member by username.

Example URI

DELETE https://www.teamoclock.com/api/v2/members/joe
URI Parameters
HideShow
username
string (required) Example: joe

Member username

Response  204
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Teams collection

Teams related resources.

Teams

List all teams
GET/teams

Returns a list of organization teams.

Example URI

GET https://www.teamoclock.com/api/v2/teams
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "name": "Acme",
      "slug": "acme",
      "video_url": "https://jitsi.org/acme",
      "mood_enabled": true,
      "links": {
        "self": "https://www.teamoclock.com/api/v2/teams/acme"
      }
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "array"
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Create a team
POST/teams

Creates a new team.

Example URI

POST https://www.teamoclock.com/api/v2/teams
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "name": "Acme",
    "slug": "acme",
    "video_url": "https://jitsi.org/acme",
    "mood_enabled": true
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        },
        "video_url": {
          "type": "string"
        },
        "mood_enabled": {
          "type": "boolean"
        }
      }
    }
  }
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "name": "Acme",
    "slug": "acme",
    "video_url": "https://jitsi.org/acme",
    "mood_enabled": true,
    "links": {
      "self": "https://www.teamoclock.com/api/v2/teams/acme"
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        },
        "video_url": {
          "type": "string"
        },
        "mood_enabled": {
          "type": "boolean"
        },
        "links": {
          "type": "object",
          "properties": {
            "self": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 400,
    "code": "bad request",
    "title": "Invalid request",
    "detail": "Enter a valid json body"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Team

Get a team
GET/teams/{slug}

Gets teams details by slug.

Example URI

GET https://www.teamoclock.com/api/v2/teams/acme
URI Parameters
HideShow
slug
string (required) Example: acme

Team slug

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "name": "Acme",
    "slug": "acme",
    "video_url": "https://jitsi.org/acme",
    "mood_enabled": true
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        },
        "video_url": {
          "type": "string"
        },
        "mood_enabled": {
          "type": "boolean"
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Update a team
PATCH/teams/{slug}

Modify a team by slug.

Example URI

PATCH https://www.teamoclock.com/api/v2/teams/acme
URI Parameters
HideShow
slug
string (required) Example: acme

Team slug

Request
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "name": "Acme",
    "slug": "acme",
    "video_url": "https://jitsi.org/acme",
    "mood_enabled": true
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        },
        "video_url": {
          "type": "string"
        },
        "mood_enabled": {
          "type": "boolean"
        }
      }
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "name": "Acme",
    "slug": "acme",
    "video_url": "https://jitsi.org/acme",
    "mood_enabled": true
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        },
        "video_url": {
          "type": "string"
        },
        "mood_enabled": {
          "type": "boolean"
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 400,
    "code": "bad request",
    "title": "Invalid request",
    "detail": "Enter a valid json body"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Delete a team
DELETE/teams/{slug}

Deletes a team by slug.

Example URI

DELETE https://www.teamoclock.com/api/v2/teams/acme
URI Parameters
HideShow
slug
string (required) Example: acme

Team slug

Response  204
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Team members

Get team members
GET/teams/{slug}/members

Gets team members by team slug.

Example URI

GET https://www.teamoclock.com/api/v2/teams/acme/members
URI Parameters
HideShow
slug
string (required) Example: acme

Team slug

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "username": "joe",
      "first_name": "Joe",
      "last_name": "Doe",
      "avatar": "me.jpg",
      "email": "joedoe@acme.inc",
      "role": "administrator",
      "links": {
        "self": "https://www.teamoclock.com/api/v2/members/joe"
      }
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "array"
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Add team members
POST/teams/{slug}/members

Add members to team by team slug.

Example URI

POST https://www.teamoclock.com/api/v2/teams/acme/members
URI Parameters
HideShow
slug
string (required) Example: acme

Team slug

Request
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "username": "joe"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "array"
    }
  }
}
Response  204
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 400,
    "code": "bad request",
    "title": "Invalid request",
    "detail": "Enter a valid json body"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Remove team members
DELETE/teams/{slug}/members

Remove members from team.

Example URI

DELETE https://www.teamoclock.com/api/v2/teams/acme/members
URI Parameters
HideShow
slug
string (required) Example: acme

Team slug

Request
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "username": "joe"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "array"
    }
  }
}
Response  204
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Standup collection

Standup related resources.

Standup meetings

List active standups
GET/standup?filter[team]={team_slug}

Returns all active team standups.

Each team can have only one active standup.

Example URI

GET https://www.teamoclock.com/api/v2/standup?filter[team]=acme
URI Parameters
HideShow
team_slug
string (optional) Example: acme

Team slug

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": "acme",
      "name": "Acme standup",
      "date": "2020-12-10T14:09:39.971Z",
      "url": "https://www.teamoclock.com/jenious/standup/acme",
      "links": {
        "self": "https://www.teamoclock.com/api/v2/standup/acme"
      },
      "team": {
        "name": "Acme",
        "slug": "acme"
      }
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "array"
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Standup creation

Create a standup
POST/standup

Creates a new team standup.

There can be only one active standup per team. If a standup already exists the response status code is 200. If a new standup was created, the response code is 201.

Example URI

POST https://www.teamoclock.com/api/v2/standup
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "team": {
      "slug": "acme"
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "team": {
          "type": "object",
          "properties": {
            "slug": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "id": "acme",
    "name": "Acme standup",
    "date": "2020-12-10T14:09:39.971Z",
    "url": "https://www.teamoclock.com/jenious/standup/acme",
    "links": {
      "self": "https://www.teamoclock.com/api/v2/standup/acme"
    },
    "team": {
      "name": "Acme",
      "slug": "acme"
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "date": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "links": {
          "type": "object",
          "properties": {
            "self": {
              "type": "string"
            }
          }
        },
        "team": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "id": "acme",
    "name": "Acme standup",
    "date": "2020-12-10T14:09:39.971Z",
    "url": "https://www.teamoclock.com/jenious/standup/acme",
    "links": {
      "self": "https://www.teamoclock.com/api/v2/standup/acme"
    },
    "team": {
      "name": "Acme",
      "slug": "acme"
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "date": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "links": {
          "type": "object",
          "properties": {
            "self": {
              "type": "string"
            }
          }
        },
        "team": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 400,
    "code": "bad request",
    "title": "Invalid request",
    "detail": "Enter a valid json body"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Standup

Get a standup
GET/standup/{id}

Gets team standup details by id.

Example URI

GET https://www.teamoclock.com/api/v2/standup/acme
URI Parameters
HideShow
id
string (required) Example: acme

Standup id

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "id": "acme",
    "name": "Acme standup",
    "date": "2020-12-10T14:09:39.971Z",
    "url": "https://www.teamoclock.com/jenious/standup/acme",
    "team": {
      "name": "Acme",
      "slug": "acme"
    },
    "state": {
      "questions": {
        "q1": "What did you do yesterday",
        "q2": "What will you do todat",
        "q3": "Do you have any impediments"
      },
      "roundup_notes": [
        {
          "text": "A note",
          "id": 23423
        }
      ],
      "member_notes": [
        {
          "username": "joe",
          "questions": {
            "q1": "Worked on marketing site",
            "q2": "Word on signup page",
            "q3": "Designer is on vacations",
            "q_ts": 3435232523
          }
        }
      ]
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "date": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "team": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            }
          }
        },
        "state": {
          "type": "object",
          "properties": {
            "questions": {
              "type": "object",
              "properties": {
                "q1": {
                  "type": "string"
                },
                "q2": {
                  "type": "string"
                },
                "q3": {
                  "type": "string"
                }
              }
            },
            "roundup_notes": {
              "type": "array"
            },
            "member_notes": {
              "type": "array"
            }
          }
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Delete a standup
DELETE/standup/{id}

Deletes a team standup by id.

Example URI

DELETE https://www.teamoclock.com/api/v2/standup/acme
URI Parameters
HideShow
id
string (required) Example: acme

Standup id

Response  204
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Planning poker collection

Planning poker related resources.

Planning poker meetings

List active planning pokers
GET/planpoker?filter[team]={team_slug}

Returns all active team planning pokers meetings.

Each team can have only one active planning poker meeting.

Example URI

GET https://www.teamoclock.com/api/v2/planpoker?filter[team]=acme
URI Parameters
HideShow
team_slug
string (optional) Example: acme

Team slug

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": "acme",
      "name": "Acme planning poker",
      "date": "2020-12-10T14:09:39.971Z",
      "url": "https://www.teamoclock.com/jenious/planpoker/acme",
      "links": {
        "self": "https://www.teamoclock.com/api/v2/planpoker/acme"
      },
      "team": {
        "name": "Acme",
        "slug": "acme"
      }
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "array"
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Planning poker creation

Create a planning poker
POST/planpoker

Creates a new team planning poker meeting.

There can be only one active planning poker per team. If a meeting already exists the response status code is 200. If a new planning poker session was created, the response code is 201.

Each session should have a facilitator. If the facilitator request payload is omitted, then a random team member is assigned by default.

Example URI

POST https://www.teamoclock.com/api/v2/planpoker
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "team": {
      "slug": "acme"
    },
    "facilitator": {
      "username": "joe"
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "team": {
          "type": "object",
          "properties": {
            "slug": {
              "type": "string"
            }
          }
        },
        "facilitator": {
          "type": "object",
          "properties": {
            "username": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "id": "acme",
    "name": "Acme planning poker",
    "date": "2020-12-10T14:09:39.971Z",
    "url": "https://www.teamoclock.com/jenious/planpoker/acme",
    "links": {
      "self": "https://www.teamoclock.com/api/v2/planpoker/acme"
    },
    "team": {
      "name": "Acme",
      "slug": "acme"
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "date": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "links": {
          "type": "object",
          "properties": {
            "self": {
              "type": "string"
            }
          }
        },
        "team": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "id": "acme",
    "name": "Acme planning poker",
    "date": "2020-12-10T14:09:39.971Z",
    "url": "https://www.teamoclock.com/jenious/planpoker/acme",
    "links": {
      "self": "https://www.teamoclock.com/api/v2/planpoker/acme"
    },
    "team": {
      "name": "Acme",
      "slug": "acme"
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "date": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "links": {
          "type": "object",
          "properties": {
            "self": {
              "type": "string"
            }
          }
        },
        "team": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 400,
    "code": "bad request",
    "title": "Invalid request",
    "detail": "Enter a valid json body"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Planning poker

Get a planning poker
GET/planpoker/{id}

Gets team planning poker meeting details by id.

Example URI

GET https://www.teamoclock.com/api/v2/planpoker/acme
URI Parameters
HideShow
id
string (required) Example: acme

Planning poker id

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "id": "acme",
    "name": "Acme planning poker",
    "date": "2020-12-10T14:09:39.971Z",
    "url": "https://www.teamoclock.com/jenious/planpoker/acme",
    "team": {
      "name": "Acme",
      "slug": "acme"
    },
    "state": {
      "value_mapping": {},
      "facilitator": {
        "username": "joe"
      },
      "tasks": [
        {
          "id": "abcd",
          "status": "active",
          "text": "As a user I would like...",
          "links": {
            "jira": "https://acme.atlassian.net/browse/ACME",
            "self": "https://www.teamoclock.com/jenious/planpoker/acme/tasks/abcd"
          },
          "avg_vote": 5,
          "voters": [
            {
              "username": "joe",
              "vote": 5
            }
          ]
        }
      ]
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "date": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "team": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            }
          }
        },
        "state": {
          "type": "object",
          "properties": {
            "value_mapping": {
              "type": "object",
              "properties": {}
            },
            "facilitator": {
              "type": "object",
              "properties": {
                "username": {
                  "type": "string"
                }
              }
            },
            "tasks": {
              "type": "array"
            }
          }
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Delete a planning poker
DELETE/planpoker/{id}

Deletes a team planning poker meeting by id.

Example URI

DELETE https://www.teamoclock.com/api/v2/planpoker/acme
URI Parameters
HideShow
id
string (required) Example: acme

Planning poker id

Response  204
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Planning poker tasks

List planning poker tasks
GET/planpoker/{id}/tasks

Returns all planning poker meeting tasks.

Example URI

GET https://www.teamoclock.com/api/v2/planpoker/acme/tasks
URI Parameters
HideShow
id
string (required) Example: acme

Planning poker id

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": "abcd",
      "status": "active",
      "text": "As a user I would like...",
      "links": {
        "jira": "https://acme.atlassian.net/browse/ACME",
        "self": "https://www.teamoclock.com/jenious/planpoker/acme/tasks/abcd"
      },
      "avg_vote": 5,
      "voters": [
        {
          "username": "joe",
          "vote": 5
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "array"
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Planning poker task creation

Create a planning poker task
POST/planpoker/{id}/tasks

Creates a new planning poker task for estimation.

Example URI

POST https://www.teamoclock.com/api/v2/planpoker/acme/tasks
URI Parameters
HideShow
id
string (required) Example: acme

Planning poker id

Request
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "text": "A story to estimate"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "text": {
          "type": "string"
        }
      }
    }
  }
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "id": "abcd",
    "status": "active",
    "text": "As a user I would like...",
    "links": {
      "jira": "https://acme.atlassian.net/browse/ACME",
      "self": "https://www.teamoclock.com/jenious/planpoker/acme/tasks/abcd"
    },
    "avg_vote": 5,
    "voters": [
      {
        "username": "joe",
        "vote": 5
      }
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "active",
            "completed"
          ]
        },
        "text": {
          "type": "string"
        },
        "links": {
          "type": "object",
          "properties": {
            "jira": {
              "type": "string",
              "description": "18 (string)"
            },
            "self": {
              "type": "string"
            }
          }
        },
        "avg_vote": {
          "type": "number"
        },
        "voters": {
          "type": "array"
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 400,
    "code": "bad request",
    "title": "Invalid request",
    "detail": "Enter a valid json body"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Planning poker task

Get a planning poker task
GET/planpoker/{id}/tasks/{task_id}

Gets planning poker task details by id.

Example URI

GET https://www.teamoclock.com/api/v2/planpoker/acme/tasks/abcd
URI Parameters
HideShow
id
string (required) Example: acme

Planning poker id

task_id
string (required) Example: abcd

Task id

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "id": "abcd",
    "status": "active",
    "text": "As a user I would like...",
    "links": {
      "jira": "https://acme.atlassian.net/browse/ACME"
    },
    "avg_vote": 5,
    "voters": [
      {
        "username": "joe",
        "vote": 5
      }
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "active",
            "completed"
          ]
        },
        "text": {
          "type": "string"
        },
        "links": {
          "type": "object",
          "properties": {
            "jira": {
              "type": "string",
              "description": "18 (string)"
            }
          }
        },
        "avg_vote": {
          "type": "number"
        },
        "voters": {
          "type": "array"
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Delete a planning poker task
DELETE/planpoker/{id}/tasks/{task_id}

Deletes a planning poker task by id.

Example URI

DELETE https://www.teamoclock.com/api/v2/planpoker/acme/tasks/abcd
URI Parameters
HideShow
id
string (required) Example: acme

Planning poker id

task_id
string (required) Example: abcd

Task id

Response  204
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Retrospective collection

Retrospective related resources.

Retrospective meetings

List active retrospectives
GET/retro?filter[team]={team_slug}

Returns all active retrospectives.

Example URI

GET https://www.teamoclock.com/api/v2/retro?filter[team]=acme
URI Parameters
HideShow
team_slug
string (optional) Example: acme

Team slug

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": "r204c36ysi7z7x",
      "name": "Acme retrospective",
      "date": "2020-12-10T14:09:39.971Z",
      "url": "https://www.teamoclock.com/jenious/retro/r204c36ysi7z7x",
      "links": {
        "self": "https://www.teamoclock.com/api/v2/retro/r204c36ysi7z7x"
      },
      "team": {
        "name": "Acme",
        "slug": "acme"
      }
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "array"
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Retrospective creation

Create a retrospective
POST/retro

Creates a new retrospective meeting.

Each session should have a facilitator. If the facilitator request payload is omitted, then a random team member is assigned by default.

Example URI

POST https://www.teamoclock.com/api/v2/retro
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "team": {
      "slug": "acme"
    },
    "facilitator": {
      "username": "joe"
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "team": {
          "type": "object",
          "properties": {
            "slug": {
              "type": "string"
            }
          }
        },
        "facilitator": {
          "type": "object",
          "properties": {
            "username": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "id": "r204c36ysi7z7x",
    "name": "Acme retrospective",
    "date": "2020-12-10T14:09:39.971Z",
    "url": "https://www.teamoclock.com/jenious/retro/r204c36ysi7z7x",
    "links": {
      "self": "https://www.teamoclock.com/api/v2/retro/r204c36ysi7z7x"
    },
    "team": {
      "name": "Acme",
      "slug": "acme"
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "date": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "links": {
          "type": "object",
          "properties": {
            "self": {
              "type": "string"
            }
          }
        },
        "team": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 400,
    "code": "bad request",
    "title": "Invalid request",
    "detail": "Enter a valid json body"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Retrospective

Get a retrospective
GET/retro/{id}

Gets retrospective meeting details by id.

Example URI

GET https://www.teamoclock.com/api/v2/retro/acme
URI Parameters
HideShow
id
string (required) Example: acme

Retrospective id

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "id": "r204c36ysi7z7x",
    "name": "Acme retrospective",
    "date": "2020-12-10T14:09:39.971Z",
    "url": "https://www.teamoclock.com/jenious/retro/r204c36ysi7z7x",
    "team": {
      "name": "Acme",
      "slug": "acme"
    },
    "state": {
      "stage": "gather",
      "max_votes": 5,
      "public_voting": false,
      "anonymous_notes": false,
      "hide_im_actionitems": false,
      "facilitator": {
        "username": "joe"
      },
      "columns": [
        {
          "id": "c_id",
          "name": "Went well",
          "description": "What went well"
        }
      ],
      "notes": [
        {
          "id": "abcd",
          "text": "A note",
          "edits": [],
          "group": "",
          "votes": 4,
          "author": "joe",
          "column": "c_id",
          "voters": []
        }
      ],
      "action_items": [
        {
          "id": "ai_id",
          "text": "Rewrite everything"
        }
      ]
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "date": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "team": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            }
          }
        },
        "state": {
          "type": "object",
          "properties": {
            "stage": {
              "type": "string",
              "enum": [
                "gather",
                "groom",
                "vote",
                "discuss",
                "complete"
              ]
            },
            "max_votes": {
              "type": "number"
            },
            "public_voting": {
              "type": "boolean"
            },
            "anonymous_notes": {
              "type": "boolean"
            },
            "hide_im_actionitems": {
              "type": "boolean"
            },
            "facilitator": {
              "type": "object",
              "properties": {
                "username": {
                  "type": "string"
                }
              }
            },
            "columns": {
              "type": "array"
            },
            "notes": {
              "type": "array"
            },
            "action_items": {
              "type": "array"
            }
          }
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Delete a retrospective
DELETE/retro/{id}

Deletes a retrospective meeting by id.

Example URI

DELETE https://www.teamoclock.com/api/v2/retro/acme
URI Parameters
HideShow
id
string (required) Example: acme

Retrospective id

Response  204
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Action Items collection

Action item related resources.

ActionItems

List all action items
GET/actionitems?filter[team]={team_slug}&filter[status]={status}

Returns a list of action items from recent to older.

Response is paginated with a fixed 100 items per page for best performance.

Next page is available as a URL in the links section of the response payload.

Example URI

GET https://www.teamoclock.com/api/v2/actionitems?filter[team]=acme&filter[status]=open
URI Parameters
HideShow
team_slug
string (optional) Example: acme

Team slug

status
string (optional) Example: open

Resolution status (open, resolved)

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": "A242",
      "text": "A new action item",
      "resolved": false,
      "links": {
        "jira": "https://acme.atlassian.net/browse/ACME"
      },
      "team": {
        "name": "Acme",
        "slug": "acme"
      }
    }
  ],
  "links": {
    "self": "https://www.teamoclock.com/api/v2/actionitems",
    "next": "https://www.teamoclock.com/api/v2/actionitems?cursor=121"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "array"
    },
    "links": {
      "type": "object",
      "properties": {
        "self": {
          "type": "string"
        },
        "next": {
          "type": "string"
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Create an action item
POST/actionitems?filter[team]=&filter[status]=

Creates a new action item.

Example URI

POST https://www.teamoclock.com/api/v2/actionitems?filter[team]=&filter[status]=
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "text": "A new action item",
    "resolved": false,
    "team": {
      "slug": "acme"
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "text": {
          "type": "string"
        },
        "resolved": {
          "type": "boolean"
        },
        "team": {
          "type": "object",
          "properties": {
            "slug": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "id": "A242",
    "text": "A new action item",
    "resolved": false,
    "links": {
      "jira": "https://acme.atlassian.net/browse/ACME"
    },
    "team": {
      "name": "Acme",
      "slug": "acme"
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "text": {
          "type": "string"
        },
        "resolved": {
          "type": "boolean"
        },
        "links": {
          "type": "object",
          "properties": {
            "jira": {
              "type": "string",
              "description": "18 (string)"
            }
          }
        },
        "team": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 400,
    "code": "bad request",
    "title": "Invalid request",
    "detail": "Enter a valid json body"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Action item

Get an action item
GET/actionitems/{id}

Gets action item details by id.

Example URI

GET https://www.teamoclock.com/api/v2/actionitems/A56
URI Parameters
HideShow
id
string (required) Example: A56

Action item id

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "id": "A242",
    "text": "A new action item",
    "resolved": false,
    "links": {
      "jira": "https://acme.atlassian.net/browse/ACME"
    },
    "team": {
      "name": "Acme",
      "slug": "acme"
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "text": {
          "type": "string"
        },
        "resolved": {
          "type": "boolean"
        },
        "links": {
          "type": "object",
          "properties": {
            "jira": {
              "type": "string",
              "description": "18 (string)"
            }
          }
        },
        "team": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Update an action item
PATCH/actionitems/{id}

Modify an action item by id.

Example URI

PATCH https://www.teamoclock.com/api/v2/actionitems/A56
URI Parameters
HideShow
id
string (required) Example: A56

Action item id

Request
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "text": "A new action item",
    "resolved": false
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "text": {
          "type": "string"
        },
        "resolved": {
          "type": "boolean"
        }
      }
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "id": "A242",
    "text": "A new action item",
    "resolved": false,
    "links": {
      "jira": "https://acme.atlassian.net/browse/ACME"
    },
    "team": {
      "name": "Acme",
      "slug": "acme"
    }
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "text": {
          "type": "string"
        },
        "resolved": {
          "type": "boolean"
        },
        "links": {
          "type": "object",
          "properties": {
            "jira": {
              "type": "string",
              "description": "18 (string)"
            }
          }
        },
        "team": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 400,
    "code": "bad request",
    "title": "Invalid request",
    "detail": "Enter a valid json body"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Delete an action item
DELETE/actionitems/{id}

Deletes an action item by id.

Example URI

DELETE https://www.teamoclock.com/api/v2/actionitems/A56
URI Parameters
HideShow
id
string (required) Example: A56

Action item id

Response  204
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Timeline collection

Timeline related resources.

Timeline records

List timeline records
GET/timeline?filter[since]={since}&filter[type]={type}

Returns a list of timeline records from recent to older.

Response is paginated with a fixed 100 items per page for best performance.

Next page is available as a URL in the links section of the response payload.

Example URI

GET https://www.teamoclock.com/api/v2/timeline?filter[since]=2021-01-20&filter[type]=retro
URI Parameters
HideShow
since
datetime (optional) Default: UTC Now Example: 2021-01-20

Starting datetime (UTC format)

type
string (optional) Example: retro

Record type (standup, planpoker, retro)

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": "R23",
      "type": "retro",
      "date": "2020-12-10T14:09:39.971Z",
      "links": {
        "self": "https://www.teamoclock.com/api/v2/timeline/R23"
      },
      "team": {
        "name": "Acme",
        "slug": "acme"
      }
    }
  ],
  "links": {
    "self": "https://www.teamoclock.com/api/v2/timeline",
    "next": "https://www.teamoclock.com/api/v2/timeline?cursor=121"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "array"
    },
    "links": {
      "type": "object",
      "properties": {
        "self": {
          "type": "string"
        },
        "next": {
          "type": "string"
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 400,
    "code": "bad request",
    "title": "Invalid request",
    "detail": "Enter a valid json body"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Timeline record

Get a timeline record
GET/timeline/{id}

Get a timeline record details by id.

Example URI

GET https://www.teamoclock.com/api/v2/timeline/R34
URI Parameters
HideShow
id
string (required) Example: R34

Timeline id

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "id": "S33",
    "type": "standup",
    "date": "2020-12-10T14:09:39.971Z",
    "async": true,
    "questions": {
      "q1": "What did you do yesterday",
      "q2": "What will you do today",
      "q3": "Do you have any impediments"
    },
    "origin": "window",
    "team": {
      "slug": "acme",
      "name": "Acme"
    },
    "sync_notes": [
      "Hello, world!"
    ],
    "async_notes": [
      {
        "username": "joe",
        "text": "A note",
        "question": "q1"
      }
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "date": {
          "type": "string"
        },
        "async": {
          "type": "boolean"
        },
        "questions": {
          "type": "object",
          "properties": {
            "q1": {
              "type": "string"
            },
            "q2": {
              "type": "string"
            },
            "q3": {
              "type": "string"
            }
          }
        },
        "origin": {
          "type": "string",
          "enum": [
            "window",
            "slack",
            "msteams"
          ]
        },
        "team": {
          "type": "object",
          "properties": {
            "slug": {
              "type": "string"
            },
            "name": {
              "type": "string"
            }
          }
        },
        "sync_notes": {
          "type": "array"
        },
        "async_notes": {
          "type": "array"
        }
      }
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "id": "R33",
    "type": "retro",
    "date": "2020-12-10T14:09:39.971Z",
    "name": "Acme retrospective",
    "columns": [
      {
        "id": "c_id",
        "name": "Went well",
        "description": "What went well"
      }
    ],
    "team": {
      "slug": "acme",
      "name": "Acme"
    },
    "notes": [
      {
        "text": "A note",
        "votes": 2,
        "column": "c_id",
      }
    ],
    "action_items": [
      {
        "id": "A242",
        "text": "A new action item",
        "resolved": false,
        "links": {
          "jira": "https://acme.atlassian.net/browse/ACME"
        }
      }
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "date": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "columns": {
          "type": "array"
        },
        "team": {
          "type": "object",
          "properties": {
            "slug": {
              "type": "string"
            },
            "name": {
              "type": "string"
            }
          }
        },
        "notes": {
          "type": "array"
        },
        "action_items": {
          "type": "array"
        }
      }
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": {
    "id": "P33",
    "type": "planpoker",
    "date": "2020-12-10T14:09:39.971Z",
    "task": "Create a landing page",
    "avg_vote": "8",
    "team": {
      "slug": "acme",
      "name": "Acme"
    },
    "links": {
      "jira": "https://acme.atlassian.net/browse/ACME"
    },
    "votes": [
      {
        "vote": "5",
        "username": "joe"
      }
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "date": {
          "type": "string"
        },
        "task": {
          "type": "string"
        },
        "avg_vote": {
          "type": "string"
        },
        "team": {
          "type": "object",
          "properties": {
            "slug": {
              "type": "string"
            },
            "name": {
              "type": "string"
            }
          }
        },
        "links": {
          "type": "object",
          "properties": {
            "jira": {
              "type": "string",
              "description": "18 (string)"
            }
          }
        },
        "votes": {
          "type": "array"
        }
      }
    }
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}

Delete a timeline record
DELETE/timeline/{id}

Deletes a timeline record by id.

Example URI

DELETE https://www.teamoclock.com/api/v2/timeline/R34
URI Parameters
HideShow
id
string (required) Example: R34

Timeline id

Response  204
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "title": "Unauthorized",
    "detail": "Please verify your credentials"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "error": {
    "status": 404,
    "code": "not found",
    "title": "Object not found",
    "detail": "Object not found. It may have been deleted or not been created yet"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number"
        },
        "code": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        }
      }
    }
  }
}