KanutusDocs
kanutus.com Sign in / Create accountSign in

Account and usage

GET/v1/me

Who am I: organization, permissions and limits of this credential

Permission: any valid credential

Response 200

NameTypeDescription
credential requiredobject
credential.kind required"key" | "oauth" | "client"key = API key, oauth = app connected by a person, client = organization app
credential.id requiredstring
credential.name requiredstring
credential.mode required"live" | "test"
credential.needs_review requiredboolean
organization requiredobject | null
organization.id requiredstring
organization.name requiredstring
user requiredobject | null
user.id requiredstring
user.name requiredstring | null
permissions requiredstring[]
limits requiredobject
limits.spend_day_minutes requirednumber | null
limits.spend_month_minutes requirednumber | null
limits.per_call_minutes requirednumber | null
limits.requests_per_minute requirednumber
limits.spent_today_minutes requirednumber
limits.spent_month_minutes requirednumber
pricing requiredobject
pricing.api_minute_factor requirednumber
pricing.listen_text_factor requirednumber

Example

curl
curl "https://api.kanutus.com/v1/me" \
  -H "Authorization: Bearer $KANUTUS_API_KEY"
Try it

Runs from your browser against the real API. Use a kt_test_ key: nothing is charged. The key stays in this tab only.

GET /v1/me

Responses by status

200 This credential
200
{
  "credential": {
    "kind": "key",
    "id": "string",
    "name": "string",
    "mode": "live",
    "needs_review": true
  },
  "organization": {
    "id": "string",
    "name": "string"
  },
  "user": {
    "id": "string",
    "name": "string"
  },
  "permissions": [
    "string"
  ],
  "limits": {
    "spend_day_minutes": 0,
    "spend_month_minutes": 0,
    "per_call_minutes": 0,
    "requests_per_minute": 0,
    "spent_today_minutes": 0,
    "spent_month_minutes": 0
  },
  "pricing": {
    "api_minute_factor": 0,
    "listen_text_factor": 0
  }
}
400 Invalid request
400 application/problem+json
{
  "type": "https://docs.kanutus.com/errors",
  "title": "<code>",
  "status": 400,
  "code": "<code>",
  "message": "…",
  "request_id": "req_…"
}

See all error codes

401 Missing, invalid, expired or revoked credential
401 application/problem+json
{
  "type": "https://docs.kanutus.com/errors",
  "title": "<code>",
  "status": 401,
  "code": "<code>",
  "message": "…",
  "request_id": "req_…"
}

See all error codes

403 Missing permission, blocked or not allowed
403 application/problem+json
{
  "type": "https://docs.kanutus.com/errors",
  "title": "<code>",
  "status": 403,
  "code": "<code>",
  "message": "…",
  "request_id": "req_…"
}

See all error codes

429 Rate limit exceeded (see RateLimit-* and Retry-After headers)
429 application/problem+json
{
  "type": "https://docs.kanutus.com/errors",
  "title": "<code>",
  "status": 429,
  "code": "<code>",
  "message": "…",
  "request_id": "req_…"
}

See all error codes

GET/v1/balance

Minutes left (organization pool/quota or personal plan)

Permission: usage:read

Response 200

NameTypeDescription
minutes_left requirednumber
seconds_left requiredinteger
low requiredboolean
source required"organization" | "personal" | "test"
livemode requiredboolean

Example

curl
curl "https://api.kanutus.com/v1/balance" \
  -H "Authorization: Bearer $KANUTUS_API_KEY"
Try it

Runs from your browser against the real API. Use a kt_test_ key: nothing is charged. The key stays in this tab only.

GET /v1/balance

Responses by status

200 Balance
200
{
  "minutes_left": 0,
  "seconds_left": 0,
  "low": true,
  "source": "organization",
  "livemode": true
}
400 Invalid request
400 application/problem+json
{
  "type": "https://docs.kanutus.com/errors",
  "title": "<code>",
  "status": 400,
  "code": "<code>",
  "message": "…",
  "request_id": "req_…"
}

See all error codes

401 Missing, invalid, expired or revoked credential
401 application/problem+json
{
  "type": "https://docs.kanutus.com/errors",
  "title": "<code>",
  "status": 401,
  "code": "<code>",
  "message": "…",
  "request_id": "req_…"
}

See all error codes

403 Missing permission, blocked or not allowed
403 application/problem+json
{
  "type": "https://docs.kanutus.com/errors",
  "title": "<code>",
  "status": 403,
  "code": "<code>",
  "message": "…",
  "request_id": "req_…"
}

See all error codes

429 Rate limit exceeded (see RateLimit-* and Retry-After headers)
429 application/problem+json
{
  "type": "https://docs.kanutus.com/errors",
  "title": "<code>",
  "status": 429,
  "code": "<code>",
  "message": "…",
  "request_id": "req_…"
}

See all error codes

GET/v1/usage

API usage by day or by credential

Permission: usage:read

Parameters

NameTypeDescription
fromquery · string
toquery · string
group_byquery · "day" | "credential"

Response 200

NameTypeDescription
from requiredstring
to requiredstring
total_minutes requirednumber
requests requiredinteger
errors requiredinteger
data requiredobject[]
data[].daystring
data[].credential_idstring
data[].namestring
data[].minutes requirednumber
data[].requestsinteger

Example

curl
curl "https://api.kanutus.com/v1/usage" \
  -H "Authorization: Bearer $KANUTUS_API_KEY"
Try it

Runs from your browser against the real API. Use a kt_test_ key: nothing is charged. The key stays in this tab only.

GET /v1/usage

Responses by status

200 Usage (minutes spent through the API)
200
{
  "from": "string",
  "to": "string",
  "total_minutes": 0,
  "requests": 0,
  "errors": 0,
  "data": [
    {
      "day": "string",
      "credential_id": "string",
      "name": "string",
      "minutes": 0,
      "requests": 0
    }
  ]
}
400 Invalid request
400 application/problem+json
{
  "type": "https://docs.kanutus.com/errors",
  "title": "<code>",
  "status": 400,
  "code": "<code>",
  "message": "…",
  "request_id": "req_…"
}

See all error codes

401 Missing, invalid, expired or revoked credential
401 application/problem+json
{
  "type": "https://docs.kanutus.com/errors",
  "title": "<code>",
  "status": 401,
  "code": "<code>",
  "message": "…",
  "request_id": "req_…"
}

See all error codes

403 Missing permission, blocked or not allowed
403 application/problem+json
{
  "type": "https://docs.kanutus.com/errors",
  "title": "<code>",
  "status": 403,
  "code": "<code>",
  "message": "…",
  "request_id": "req_…"
}

See all error codes

429 Rate limit exceeded (see RateLimit-* and Retry-After headers)
429 application/problem+json
{
  "type": "https://docs.kanutus.com/errors",
  "title": "<code>",
  "status": 429,
  "code": "<code>",
  "message": "…",
  "request_id": "req_…"
}

See all error codes