> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atako.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Kintone

> Connect Kintone to your Atako agents — 7 read and 6 write actions.

Let your agents work with the data of a Kintone app — read its fields and layout, query and read records, add and update records (one by one or up to 100 at a time), comment on records and move them through the process management workflow.

## Connection

* **Authentication**: API key (API token of the app (several tokens separated by commas)).
* **Required settings**:
  * **Kintone domain** — Full domain of your Kintone, without https\:// or trailing slash: \<subdomain>.kintone.com (also .cybozu.com, .kintone.co.jp or .cybozu.cn depending on your region), as in your browser address bar.

> [!NOTE]
>
> In Kintone, open the app → click the gear icon (App settings) → App settings tab → Customization and integration → API token → Generate. Tick the permissions the agent needs (View records; Add records; Edit records), click Save, then click Update app (without it the token stays inactive and every call fails with GAIA\_IA02). Copy the token. A token is bound to one app: to cover several apps, paste their tokens separated by commas. Then enter the domain of your Kintone (e.g. acme.kintone.com). Agents pass the app id (the number after /k/ in the app URL) on every action.
>
> See [Kintone's documentation](https://kintone.dev/en/docs/kintone/rest-api/).

## Read actions (7)

| Action | Description |
| - | - |
| `get_app` | Get general information about an app: appId, name, code, description, createdAt, creator, modifiedAt, modifier, spaceId. Argument: app (integer >= 1, the app id). A wrong token or an app the token does not cover is refused by Kintone (400 GAIA\_IA02 / 403 GAIA\_AP15). Also useful to check the token. |
| `get_form_fields` | Get the fields of an app: for each field code its type (SINGLE\_LINE\_TEXT, NUMBER, DROP\_DOWN, DATE, SUBTABLE…), label and settings (options of a drop-down, required, unique…). Returns \{ revision, properties }. Call it before add\_record / update\_record to learn the exact field codes and types. Argument: app (integer >= 1). |
| `get_form_layout` | Get the layout of the form of an app: rows of fields, groups and tables, in display order. Returns \{ layout, revision }. Argument: app (integer >= 1). |
| `get_record` | Get one record of an app. Arguments: app (integer >= 1), id (integer >= 1, the record id, "\$id" / "Record number" of the record). Returns \{ record: \{ "\<field code>": \{ type, value } } }. |
| `get_status_settings` | Get the process management settings of an app: enable (boolean), states (status names, index, assignee) and actions (name, from, to) — the action names that update\_record\_status expects. Returns \{ enable, states, actions, revision }. Argument: app (integer >= 1). |
| `list_comments` | List the comments of a record. Arguments: app (integer >= 1), record (integer >= 1, the record id), order ("ASC" \| "DESC", default "DESC": newest first), offset (integer >= 0, comments to skip), limit (integer 1-10, default and maximum 10). Returns \{ comments: \[\{ id, text, createdAt, creator, mentions }], older, newer } (booleans telling whether more comments exist). |
| `list_records` | Query the records of an app (read-only, not a write; sent as POST with X-HTTP-Method-Override: GET). Arguments: app (integer >= 1), query (string, optional, max 10000 characters: Kintone query syntax — conditions like `status in ("Won", "New") and amount &gt; 1000 and created_time &gt; TODAY()` with operators = != > \< >= \<= in not in like not like is empty is not empty and or, then optionally `order by &lt;field code&gt; asc\|desc`, `limit &lt;1-500&gt;` (default 100), `offset &lt;0-10000&gt;` in this order; empty = all records, newest first), fields (array of field code strings, optional, max 1000: only these fields are returned; use "\$id" for the record id), totalCount (boolean, optional: also return the number of matching records). Returns \{ records: \[\{ "\<field code>": \{ type, value } }], totalCount }. |

## Write actions (6)

| Action | Description |
| - | - |
| `add_comment` | Add a comment to a record. Arguments: app (integer >= 1), record (integer >= 1, the record id), comment (object \{ text: string 1-65535 characters, mentions: array of up to 10 \{ code: string (login name, group code or organization code), type: "USER" \| "GROUP" \| "ORGANIZATION" } optional }). Returns \{ id } (the comment id). |
| `add_record` | Add one record to an app. Arguments: app (integer >= 1), record (object \{ "\<field code>": \{ "value": ... } }, optional: omitted fields get their default value; a number may be given as string or number, a check box / multi-select as an array of strings, a user selection as \[\{ "code": "login name" }], a date as "YYYY-MM-DD", a date and time as ISO 8601 "2026-10-23T09:00:00Z", a table as an array of \{ "value": \{ "\<code>": \{ "value": ... } } }; read-only fields such as Record number, Created by, Calculated are refused). Returns \{ id, revision }. |
| `add_records` | Add 1 to 100 records to an app in one atomic call (all or none). Arguments: app (integer >= 1), records (array of 1-100 objects, each \{ "\<field code>": \{ "value": ... } } with the same value formats as add\_record). Returns \{ ids: \[string], revisions: \[string] }. |
| `update_record` | Update the given fields of one record (the other fields are kept). Arguments: app (integer >= 1), id (integer >= 1, the record id) OR updateKey (object \{ field: string, value: string max 64 } — a field with "Prohibit duplicate values"), record (object \{ "\<field code>": \{ "value": ... } } with the fields to change, same value formats as add\_record), revision (integer >= -1, optional: the update fails if the record is at another revision; -1 or omitted = no check). Returns \{ revision }. |
| `update_record_status` | Run a process management action on a record (move it to its next status). The app must have process management enabled. Arguments: app (integer >= 1), id (integer >= 1, the record id), action (string, the exact name of the action as returned by get\_status\_settings, 1-256 characters), assignee (string, optional: login name of the next assignee, required when the next status lets the user pick one), revision (integer >= -1, optional: expected revision; -1 or omitted = no check). Returns \{ revision }. |
| `update_records` | Update 1 to 100 records of an app in one atomic call (all or none). Arguments: app (integer >= 1), records (array of 1-100 objects, each \{ id: integer >= 1 OR updateKey: \{ field: string, value: string max 64 }, record: \{ "\<field code>": \{ "value": ... } } (fields to change), revision: integer >= -1 optional }). Returns \{ records: \[\{ id, revision }] }. |

## Permissions

Every action above must be explicitly granted to an agent before it can be used. See [Permissions](https://docs.atako.ai/integrations/permissions.md) for the grant model and [Security](https://docs.atako.ai/integrations/security.md) for how credentials are protected.

***

*Last reviewed against the provider API: October 2026.*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.