Skip to content
TasksMate Developers

0.x — pre-release, no compatibility promise yet.What this means

POST/v1/oauth/clientsToken scope: admin

Register an app (owner / admin). A confidential app’s client_secret is in this response only — store it now.

Media typeapplication/json
OAuthClientCreate

The request body of oauth-clients.create.

object
org_id
required
Org Id

The organization that owns the app (you must be its owner or admin)

string
>= 1 characters
name
required
Name

Shown to people on the consent screen

string
>= 1 characters <= 100 characters
client_type
Client Type

confidential: a server that keeps a secret. public: a native or single-page app with no secret (PKCE only).

string
default: confidential
Allowed values: confidential public
redirect_uris
required
Redirect Uris

Exact-match allow-list: https, or http on a loopback host (localhost, any port). No fragment.

Array<string>
>= 1 items <= 10 items
allowed_scopes
required
Allowed Scopes

The scopes the app may ask for: tasks:read, tasks:write, projects:read, projects:write, teams:read, teams:write, org:read, org:write, webhooks:read, webhooks:write, admin.

Array<string>
>= 1 items
logo_url
Any of:
string
<= 2000 characters
homepage_url
Any of:
string
<= 2000 characters
privacy_url
Any of:
string
<= 2000 characters

Example

{
"org_id": "string",
"name": "Acme HR",
"client_type": "confidential",
"redirect_uris": [
"https://hr.example.com/oauth/callback"
],
"allowed_scopes": [
"tasks:write",
"projects:read"
],
"logo_url": "string",
"homepage_url": "string",
"privacy_url": "string"
}

Successful Response

Media typeapplication/json
OAuthClientCreated

Returned by oauth-clients.create and oauth-clients.rotate_secret.

object
client_id
required
Client Id

Public identifier (tmc_…)

string
org_id
required
Org Id
string
name
required
Name
string
logo_url
Any of:
string
homepage_url
Any of:
string
privacy_url
Any of:
string
redirect_uris
required
Redirect Uris
Array<string>
client_type
required
Client Type
string
Allowed values: confidential public
allowed_scopes
required
Allowed Scopes
Array<string>
registration
Registration
string
default: developer
Allowed values: developer dynamic
review_state
Review State

private: people outside your organization see an unreviewed-app warning when connecting

string
default: private
Allowed values: private listed
status
required
Status
string
Allowed values: active revoked
grants_count
Grants Count

People connected to the app right now

integer
0
use_count
Use Count
integer
0
last_used_at
Any of:
string format: date-time
secret_rotated_at
Any of:
string format: date-time
previous_secret_expires_at
Any of:
string format: date-time
created_by
Any of:
string
created_at
Any of:
string format: date-time
updated_at
Any of:
string format: date-time
revoked_at
Any of:
string format: date-time
revoked_by
Any of:
string
client_secret
Any of:
string

Example

{
"allowed_scopes": [
"tasks:write",
"projects:read"
],
"client_id": "tmc_Q2x9eLr0v2Zk5n8WcHt1YpUo",
"client_secret": "tmcs_Ab3xQ9eLr0v2Zk5n8WcHt1YpUo4MiGs7Fj6Da-_Bq0R",
"client_type": "confidential",
"created_at": "2026-09-26T12:00:00Z",
"created_by": "3f1c2a9e-0b7d-4c1e-9a55-2b8f0d6e4a10",
"grants_count": 3,
"homepage_url": "https://hr.example.com",
"last_used_at": "2026-09-26T12:00:00Z",
"name": "Acme HR",
"org_id": "O0020",
"redirect_uris": [
"https://hr.example.com/oauth/callback"
],
"registration": "developer",
"review_state": "private",
"status": "active",
"updated_at": "2026-09-26T12:00:00Z",
"use_count": 1204
}

Bad request — a query parameter outside what the operation accepts (invalid-parameter)

Media typeapplication/problem+json
Problem

An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.

object
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
object

Example

{
"type": "about:blank",
"title": "Bad request",
"status": 400,
"detail": "…",
"instance": "/v1/…",
"request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"
}

Missing or invalid bearer token

Media typeapplication/problem+json
Problem

An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.

object
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
object

Example

{
"type": "about:blank",
"title": "Missing or invalid bearer token",
"status": 401,
"detail": "…",
"instance": "/v1/…",
"request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"
}

Authenticated, but not allowed

Media typeapplication/problem+json
Problem

An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.

object
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
object

Example

{
"type": "about:blank",
"title": "Authenticated, but not allowed",
"status": 403,
"detail": "…",
"instance": "/v1/…",
"request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"
}

Not found

Media typeapplication/problem+json
Problem

An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.

object
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
object

Example

{
"type": "about:blank",
"title": "Not found",
"status": 404,
"detail": "…",
"instance": "/v1/…",
"request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"
}

Conflict (a duplicate, or an Idempotency-Key still in flight)

Media typeapplication/problem+json
Problem

An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.

object
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
object

Example

{
"type": "about:blank",
"title": "Conflict (a duplicate, or an `Idempotency-Key` still in flight)",
"status": 409,
"detail": "…",
"instance": "/v1/…",
"request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"
}

If-Match does not match the current ETag

Media typeapplication/problem+json
Problem

An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.

object
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
object

Example

{
"type": "about:blank",
"title": "`If-Match` does not match the current `ETag`",
"status": 412,
"detail": "…",
"instance": "/v1/…",
"request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"
}

The body or query did not validate (validation), or an Idempotency-Key was reused

Media typeapplication/problem+json
Problem

An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.

object
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
object

Example

{
"type": "about:blank",
"title": "The body or query did not validate (`validation`), or an `Idempotency-Key` was reused",
"status": 422,
"detail": "…",
"instance": "/v1/…",
"request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"
}

An access token over its per-minute limit (rate-limit; see Retry-After)

Media typeapplication/problem+json
Problem

An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.

object
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
object

Example

{
"type": "about:blank",
"title": "An access token over its per-minute limit (`rate-limit`; see `Retry-After`)",
"status": 429,
"detail": "…",
"instance": "/v1/…",
"request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"
}

Unexpected server error — quote request_id

Media typeapplication/problem+json
Problem

An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.

object
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
object

Example

{
"type": "about:blank",
"title": "Unexpected server error",
"status": 500,
"detail": "…",
"instance": "/v1/…",
"request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"
}