MapleTasks API

Modern, flexible, easy to use project and task management. Get started for free today...

Login Sign up for Free!

Login Sign up for Free!
3rd Party Guidelines
Sign in to obtain your API key.

Request Headers

Header Usage Description
X-Api-Version X-Api-Version: application/vnd.mapletasks.v1 optional Can be used to specify an API version.
Accept Accept: application/json for POST Required for POST requests.
Content-Type Content-Type: application/json for POST Required for POST requests.
Authorization Authorization: Token token="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" required Used to provide an API key.
X-User-Email X-User-Email: alice@example.com authentication Used for token based authentication.
X-User-Token X-User-Token: xxxxxxxxxxxxxxxxxxxx authentication Used for token based authentication.

Authentication

The MapleTasks API uses simple, secure token based authentication. Private resources require an authentication token and email to allow access. These may either be provided through the appropriate HTTP headers (recommended, described above), or the user_email and user_token URL parameters. A user's authentication token may be obtained through the POST users/sign_in request. Note that authentication tokens and API keys serve different purposes.


REST API Requests

All MapleTasks API requests are JSON requests prefixed with api/.

Path Description
POST users/sign_in authentication Authenticates and provides a user's authentication token.

Example request data: {"user": {"email": "alice@example.com", "password": "examplepassword"}}

Error response: {"success":false,"message":"Error with provided email or password"
Success response: {"success":true,"auth_token":"xxxxxxxxxxxxxxxxxxxx","email":"alice@example.com"}
GET posts Returns all MapleTasks news posts.
Does not require authentication.
GET posts/:id Returns a news post specified by :id.
Does not require authentication.
GET me Returns the user's name, Gravatar URL, and active plan type.
Requires authentication.
GET productivity Returns the information on the user's productivity goal.
Requires authentication.
GET groups Returns the user's project groups.
Requires authentication.
GET projects Returns the user's projects. Includes collaborative projects where the user has full permisions.
Requires authentication.
GET projects/:id Returns the project specified by :id.
Requires authentication.
GET projects/:id/tasks Returns the tasks from the project specified by :id. Includes subtasks.
Requires authentication.
GET projects/:id/labels Returns the task labels from the project specified by :id.
Requires authentication.
GET projects/:id/completeall Completes all the tasks in the project specified by :id. This operation is not immutable.
Requires authentication.
GET upcoming Returns the user's upcoming tasks. The quantity returned is dependent on the user's settings. Includes subtasks.
Requires authentication.
GET important Returns the user's important tasks. The quantity returned is dependent on the user's settings. Includes subtasks.
Requires authentication.
GET quicktasks Returns the user's quick tasks. The quantity returned is dependent on the user's settings. Includes subtasks.
Requires authentication.
GET projectlimits Returns information on the user's project limits, check this endpoint to avoid potentially failing POST projects requests.

Example response: {"is_at_limit":false,"basic_limit":4,"is_basic":false,"projects":6}

Requires authentication.
POST projects Creates a new project.

Available parameters: project_domain_id, name, state, color
state may be either "active", "innactive", or "completed".
color must be one of the values returned by GET colors/projects.

Example request data: {"project": {"project_domain_id": 1, "name": "Kitchen Remodel", "state": "active"}}

Requires authentication.
POST projects/:id/tasks Creates a new task in the project specified by :id.

Available parameters: completed, description, difficulty, due, name, task_type
task_type may be either "Meeting" or "Task".

Example request data: {"task": {"completed": false, "name": "Go to grocery store."}}

Requires authentication.
PUT projects/:id/tasks/:task Updates the task specified by :task, in the project specified by :id.

Same parameters as POST projects/:id/tasks.

Requires authentication.
DELETE projects/:id/tasks/:task Deletes the task specified by :task, in the project specified by :id.

Requires authentication.
GET colors/projects Returns the possible colors for projects.
Does not require authentication.
GET colors/labels Returns the possible colors for task labels.
Does not require authentication.

Example API Usage with Curl

  1. Authenticating a user:

    curl -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Token token="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"' -X POST https://www.mapletasks.com/api/users/sign_in -d '{"user": {"email": "alice@example.com", "password": "examplepassword"}}'

    Returns:

    {"success":true, "auth_token":"xxxxxxxxxxxxxxxxxxxx", "email":"alice@example.com"}

  2. Accessing user projects, using the previously obtained authentication token:

    curl -H 'Authorization: Token token="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"' -H 'X-User-Email: alice@example.com' -H 'X-User-Token: xxxxxxxxxxxxxxxxxxxx' https://www.mapletasks.com/api/projects

  3. Creating a task in a specified project:

    curl -H 'Authorization: Token token="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"' -H 'X-User-Email: alice@example.com' -H 'X-User-Token: xxxxxxxxxxxxxxxxxxxx' -H 'Content-Type: application/json' -H 'Accept: application/json' -X POST https://www.mapletasks.com/api/projects/3/tasks -d '{"task": {"completed": false, "name": "Go to grocery store."}}'

  4. Accessing public resources:

    curl -H 'Authorization: Token token="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"' https://www.mapletasks.com/api/posts/