> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to Kintone

The Kintone connector lets your AI agent act in each user's Kintone account. Each user connects their own Kintone API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 33 tools.

**Authentication:** API Key
**Categories:** Databases, Productivity
**Tools:** 33: 20 read, 10 write, 3 destructive
**Users sign in with:** API key
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=KINTONE)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Kintone connection

   In **AgentKit > Connections**, create a Kintone connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'kintone'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Kintone:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'kintone_app_actions_get',
     toolInput: { app: 10 },
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "kintone"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize Kintone:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={"app":10},
       tool_name="kintone_app_actions_get",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user opens the link once and enters their Kintone credentials there. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'kintone_app_actions_get',
  toolInput: {
    app: 42,
  },
  connector: 'kintone',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="kintone_app_actions_get",
    tool_input={
        "app": 42,
    },
    connection_name="kintone",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `kintone_app_actions_get`

Get Action Settings · Read-only

Get a Kintone app's action settings (buttons that copy a record into another app).
Returns each action with its destination app, field mappings and who can use it.
Use it to understand cross-app record copying. Use kintone_app_process_management_get for workflow actions.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `lang` (`string`, optional): Language for localized names in the response: default (names as entered), en, zh, ja, or user (the authenticating user's language). Kintone returns default names if left empty. Example: "en". One of: `default`, `en`, `zh`, `ja`, `user`.

Example input: `{"app":42}`

### `kintone_app_admin_notes_get`

Get App Admin Notes · Read-only

Get a Kintone app's admin notes.
Returns the notes HTML content, whether they are copied into app templates and duplicates, and the revision.
Use it to read the app manager's documentation for the app.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.

Example input: `{"app":42}`

### `kintone_app_field_permissions_get`

Get Field Permissions · Read-only

Get a Kintone app's field permission rules.
Returns each restricted field code with the users, groups or departments and their access level (READ, WRITE or NONE).
Use it to check why a field is hidden or read-only. Use kintone_app_record_permissions_get for record-level rules.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.

Example input: `{"app":42}`

### `kintone_app_form_fields_get`

Get Form Fields · Read-only

Get the fields of a Kintone app's form.
Returns each field keyed by field code with its type, label, required flag, options, default value and lookup settings.
Use it before reading or writing records to learn field codes and value formats. Use kintone_app_form_layout_get for field placement.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `lang` (`string`, optional): Language for localized names in the response: default (names as entered), en, zh, ja, or user (the authenticating user's language). Kintone returns default names if left empty. Example: "en". One of: `default`, `en`, `zh`, `ja`, `user`.

Example input: `{"app":42}`

### `kintone_app_form_layout_get`

Get Form Layout · Read-only

Get the layout of a Kintone app's form.
Returns rows, tables and groups with the field codes and sizes they contain.
Use it to see how fields are arranged. Use kintone_app_form_fields_get for field types and options.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.

Example input: `{"app":42}`

### `kintone_app_general_notifications_get`

Get General Notification Settings · Read-only

Get a Kintone app's general notification settings.
Returns who is notified when records are added, edited, commented on, change status or are imported, and whether commenters are notified.
Use it for app-wide notifications. Use kintone_app_per_record_notifications_get and kintone_app_reminder_notifications_get for conditional ones.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.

Example input: `{"app":42}`

### `kintone_app_get`

Get App · Read-only

Get a Kintone app's general information.
Returns the app id, code, name, description, space and thread ids, and creator and modifier details.
Use it to confirm which app an ID points to. Use kintone_app_form_fields_get for its fields.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.

Example input: `{"id":42}`

### `kintone_app_graphs_get`

Get Graph Settings · Read-only

Get the graph (chart) settings of a Kintone app.
Returns each graph keyed by name with its chart type, groups, aggregations, filter condition and sort.
Use it to understand saved reports. Use kintone_app_views_get for list views.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `lang` (`string`, optional): Language for localized names in the response: default (names as entered), en, zh, ja, or user (the authenticating user's language). Kintone returns default names if left empty. Example: "en". One of: `default`, `en`, `zh`, `ja`, `user`.

Example input: `{"app":42}`

### `kintone_app_per_record_notifications_get`

Get Per Record Notification Settings · Read-only

Get a Kintone app's per record notification settings.
Returns each notification's record filter, message title and recipients.
Use it for notifications triggered by record conditions. Use kintone_app_reminder_notifications_get for date-based reminders.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `lang` (`string`, optional): Language for localized names in the response: default (names as entered), en, zh, ja, or user (the authenticating user's language). Kintone returns default names if left empty. Example: "en". One of: `default`, `en`, `zh`, `ja`, `user`.

Example input: `{"app":42}`

### `kintone_app_permissions_get`

Get App Permissions · Read-only

Get a Kintone app's app permissions.
Returns the ordered permission rules, each with the user, group or department and what it can do (view, add, edit, delete, manage, import, export).
Use it to check who can use the app. Use kintone_app_record_permissions_get and kintone_app_field_permissions_get for finer rules.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.

Example input: `{"app":42}`

### `kintone_app_plugins_get`

Get App Plug-ins · Read-only

Get the plug-ins added to a Kintone app.
Returns each plug-in's id, name and whether it is enabled.
Use it to see which plug-ins customize the app.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.

Example input: `{"app":42}`

### `kintone_app_process_management_get`

Get Process Management Settings · Read-only

Get a Kintone app's process management settings.
Returns whether it is enabled, the statuses with their assignees, and the actions with from and to statuses and filters.
Use it to find action names before calling kintone_record_status_update.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `lang` (`string`, optional): Language for localized names in the response: default (names as entered), en, zh, ja, or user (the authenticating user's language). Kintone returns default names if left empty. Example: "en". One of: `default`, `en`, `zh`, `ja`, `user`.

Example input: `{"app":42}`

### `kintone_app_record_permissions_get`

Get Record Permissions · Read-only

Get a Kintone app's record permission rules.
Returns each rule's record filter condition and the entities that can view, edit or delete matching records.
Use it to see record-level access. Use kintone_app_permissions_get for app-level access.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `lang` (`string`, optional): Language for localized names in the response: default (names as entered), en, zh, ja, or user (the authenticating user's language). Kintone returns default names if left empty. Example: "en". One of: `default`, `en`, `zh`, `ja`, `user`.

Example input: `{"app":42}`

### `kintone_app_reminder_notifications_get`

Get Reminder Notification Settings · Read-only

Get a Kintone app's reminder notification settings.
Returns each reminder's date field, timing, record filter, title and recipients, plus the reminder time zone.
Use it for date-based reminders. Use kintone_app_per_record_notifications_get for condition-based notifications.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `lang` (`string`, optional): Language for localized names in the response: default (names as entered), en, zh, ja, or user (the authenticating user's language). Kintone returns default names if left empty. Example: "en". One of: `default`, `en`, `zh`, `ja`, `user`.

Example input: `{"app":42}`

### `kintone_app_settings_get`

Get General Settings · Read-only

Get a Kintone app's general settings.
Returns the name, description, icon, theme, title field, revision and feature toggles such as comments and thumbnails.
Use it for app-level configuration. Use kintone_app_get for basic app information.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `lang` (`string`, optional): Language for localized names in the response: default (names as entered), en, zh, ja, or user (the authenticating user's language). Kintone returns default names if left empty. Example: "en". One of: `default`, `en`, `zh`, `ja`, `user`.

Example input: `{"app":42}`

### `kintone_app_views_get`

Get Views · Read-only

Get the record list views of a Kintone app.
Returns each view keyed by name with its id, type, fields, filter condition and sort order.
Use it to reuse a view's filter in kintone_records_list. Use kintone_app_graphs_get for chart settings.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `lang` (`string`, optional): Language for localized names in the response: default (names as entered), en, zh, ja, or user (the authenticating user's language). Kintone returns default names if left empty. Example: "en". One of: `default`, `en`, `zh`, `ja`, `user`.

Example input: `{"app":42}`

### `kintone_record_comments_list`

List Record Comments · Read-only

List comments on a Kintone record, newest first by default.
Returns up to 10 comments with id, text, creator, created time and mentions, plus older and newer flags for paging.
Use it to read a record's discussion. Use kintone_record_comment_create to post one.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `record` (`integer`, required): ID of the record whose comments to list, shown as Record number in Kintone and returned as $id by the record tools. Example: 101.
- `limit` (`integer`, optional): Number of comments to return, from 1 to 10 (the default and maximum). Example: 10.
- `offset` (`integer`, optional): Number of comments to skip, for paging. Example: 10.
- `order` (`string`, optional): Sort order by comment ID: asc (oldest first) or desc (newest first). Kintone uses desc if left empty. Example: "asc". One of: `asc`, `desc`.

Example input: `{"app":42,"record":101}`

### `kintone_record_get`

Get Record · Read-only

Get one record from a Kintone app by its record ID.
Returns every field the token can read, keyed by field code with its type and value, plus $id and $revision.
Use it when you know the record ID. Use kintone_records_list to find records with a query.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `id` (`integer`, required): ID of the record, shown as Record number in Kintone and returned as $id by the record tools. Example: 101.

Example input: `{"app":42,"id":101}`

### `kintone_records_cursor_get`

Get Records From Cursor · Read-only

Get the next page of records from a Kintone cursor.
Returns the records and next, which is true while more records remain.
Use it repeatedly after kintone_records_cursor_create; the cursor is deleted once all records are read.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): Cursor ID returned by kintone_records_cursor_create. Example: "9a9716fe-1394-4677-a1c7-2199a5d28215".

Example input: `{"id":"9a9716fe-1394-4677-a1c7-2199a5d28215"}`

### `kintone_records_list`

List Records · Read-only

List records in a Kintone app, filtered and sorted with a Kintone query string.
Returns up to 500 records with their field values, plus totalCount when requested.
Use it to search or page through records (limit and offset go in the query; offset stops at 10,000). Use kintone_record_get for one known record and the cursor tools for larger exports.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `fields` (`array`, optional): Field codes to include in each record. Leave empty to return all fields. Fields inside a table can't be listed; give the table's field code to get the whole table. Example: ["$id", "Title", "Status"].
- `query` (`string`, optional): Kintone query string that filters, sorts and pages the records, using field codes. Supports operators such as =, !=, >, <, like, in and not in, joined with and/or, plus order by, limit (max 500, default 100) and offset (max 10,000). Leave empty to return all records (first 100). Example: "Status in (\"Open\") and Amount > 1000 order by $id desc limit 50 offset 0".
- `total_count` (`boolean`, optional): Set to true to also return totalCount, the number of records matching the query (ignoring limit and offset). Example: true.

Example input: `{"app":42}`

### `kintone_bulk_request`

Bulk Request · Write

Run up to 20 record write requests across Kintone apps as one transaction; if any fails, none are applied.
Returns one result per request, in order.
Use it when several adds, updates, deletes or status changes must succeed together. Use the single tools otherwise.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `requests` (`array`, required): Requests to run in order, up to 20. Each item has method (POST, PUT or DELETE), api (the API path, such as /k/v1/record.json, /k/v1/records.json, /k/v1/record/status.json, /k/v1/records/status.json or /k/v1/record/assignees.json) and payload (the body that API takes). Example: [{"method": "POST", "api": "/k/v1/record.json", "payload": {"app": 42, "record": {"Title": {"value": "New"}}}}, {"method": "PUT", "api": "/k/v1/record.json", "payload": {"app": 42, "id": 101, "record": {"Status": {"value": "Closed"}}}}].

Example input: `{"requests":[{"method":"POST","api":"/k/v1/record.json","payload":{"app":42,"record":{"Title":{"value":"New"}}}},{"method":"PUT","api":"/k/v1/record.json","payload":{"app":42,"id":101,"record":{"Status":{"value":"Closed"}}}}]}`

### `kintone_record_assignees_update`

Update Record Assignees · Write

Replace the assignees of a Kintone record's current process management status.
Returns the record's new revision.
Use it to reassign work without changing the status. Use kintone_record_status_update to change the status.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `assignees` (`array`, required): Login names of the new assignees, up to 100. This replaces the current list; an empty list leaves the status unassigned. Example: ["jsmith", "akato"].
- `id` (`integer`, required): ID of the record, shown as Record number in Kintone and returned as $id by the record tools. Example: 101.
- `revision` (`integer`, optional): Expected current revision of the record. If it doesn't match, Kintone rejects the change so you don't overwrite someone else's edit. Leave empty (or -1) to skip the check. Example: 3.

Example input: `{"app":42,"assignees":["jsmith","akato"],"id":101}`

### `kintone_record_comment_create`

Add Record Comment · Write

Post a comment on a Kintone record, optionally mentioning users, groups or departments.
Returns the new comment's id.
Use it to add a note to a record. Use kintone_record_comments_list to read existing comments.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `record` (`integer`, required): ID of the record to comment on, shown as Record number in Kintone and returned as $id by the record tools. Example: 101.
- `text` (`string`, required): Comment text, up to 65,535 characters. Example: "Shipped today, tracking number attached."
- `mentions` (`array`, optional): People to mention, up to 10. Each item has code (login name, group code or department code; guest users as guest/<email>) and type (USER, GROUP or ORGANIZATION). Example: [{"code": "jsmith", "type": "USER"}].

Example input: `{"app":42,"record":101,"text":"Shipped today, tracking number attached."}`

### `kintone_record_create`

Add Record · Write

Add one record to a Kintone app.
Returns the new record's id and revision.
Use it for a single record. Use kintone_records_create to add up to 100 records in one call.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `record` (`object`, optional): Field values keyed by field code. Each value is an object with a value key; the value's shape depends on the field type (text and numbers as strings, checkboxes and multi-selects as arrays of strings, user fields as arrays of {"code": login name}, tables as {"value": [{"value": {...row fields...}}]}). Get field codes from kintone_app_form_fields_get. Fields you leave out get their default values. Kintone's API schema marks record as required, so normally send at least one field. Example: {"Title": {"value": "Q3 report"}, "Amount": {"value": "1200"}, "Status_select": {"value": "Open"}}.

Example input: `{"app":42}`

### `kintone_record_status_update`

Update Record Status · Write

Run a process management action on a Kintone record to move it to its next status.
Returns the record's new revision.
Use it to advance a workflow, such as approving a request. Get action names from kintone_app_process_management_get. Use kintone_records_statuses_update for several records.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `action` (`string`, required): Name of the action to run, exactly as shown on the record's action button (in the API user's language when actions are localized). Get it from kintone_app_process_management_get. Example: "Submit for approval".
- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `id` (`integer`, required): ID of the record, shown as Record number in Kintone and returned as $id by the record tools. Example: 101.
- `assignee` (`string`, optional): Login name of the next assignee. Needed when the next status lets the user choose one assignee from a list. Example: "jsmith".
- `revision` (`integer`, optional): Expected current revision of the record. If it doesn't match, Kintone rejects the change so you don't overwrite someone else's edit. Leave empty (or -1) to skip the check. Example: 3.

Example input: `{"action":"Submit for approval","app":42,"id":101}`

### `kintone_record_update`

Update Record · Write

Update fields on one Kintone record, found by record ID or by a unique-value field.
Returns the record's new revision.
Use it to change one record; only the fields you send change. Use kintone_records_update for up to 100 records or to upsert, and kintone_record_status_update to move a record through its process.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `record` (`object`, required): Field values keyed by field code. Each value is an object with a value key; the value's shape depends on the field type (text and numbers as strings, checkboxes and multi-selects as arrays of strings, user fields as arrays of {"code": login name}, tables as {"value": [{"value": {...row fields...}}]}). Get field codes from kintone_app_form_fields_get. Only the fields you include are changed. Example: {"Title": {"value": "Q3 report"}, "Amount": {"value": "1200"}, "Status_select": {"value": "Open"}}.
- `id` (`integer`, optional): ID of the record to update. Give either id or both update_key_field and update_key_value, not both. Example: 101.
- `revision` (`integer`, optional): Expected current revision of the record. If it doesn't match, Kintone rejects the change so you don't overwrite someone else's edit. Leave empty (or -1) to skip the check. Example: 3.
- `update_key_field` (`string`, optional): Field code of a field with Prohibit duplicate values turned on, used to find the record instead of id. Give it together with update_key_value. Example: "Order_number".
- `update_key_value` (`string`, optional): Value of update_key_field that identifies the record. Example: "ORD-1001".

Example input: `{"app":42,"record":{}}`

### `kintone_records_create`

Add Records · Write

Add up to 100 records to a Kintone app in one call; either all are added or none are.
Returns the new record ids and revisions, in the order given.
Use it for batches. Use kintone_record_create for a single record.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `records` (`array`, required): Records to add, up to 100. Each item holds field values keyed by field code, each as {"value": ...}; fields left out get their default values. Get field codes from kintone_app_form_fields_get. Example: [{"Title": {"value": "First"}}, {"Title": {"value": "Second"}}].

Example input: `{"app":42,"records":[{"Title":{"value":"First"}},{"Title":{"value":"Second"}}]}`

### `kintone_records_cursor_create`

Create Record Cursor · Write

Create a cursor to export more records than kintone_records_list can page through.
Returns the cursor id and the total number of matching records.
Use it for large exports, then call kintone_records_cursor_get until next is false. A cursor expires 10 minutes after its last read, and a Kintone domain can hold at most 10 open cursors.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `fields` (`array`, optional): Field codes to include in each record. Leave empty for all fields. Example: ["$id", "Title"].
- `query` (`string`, optional): Kintone query string that filters and sorts the records. Set the page size with size rather than limit. Leave empty for all records. Example: "Status in (\"Open\") order by $id asc".
- `size` (`integer`, optional): Number of records each kintone_records_cursor_get call returns, up to 500. Kintone uses 100 if left empty. Example: 500.

Example input: `{"app":42}`

### `kintone_records_statuses_update`

Update Record Statuses · Write

Run process management actions on up to 100 Kintone records in one call.
Returns each record's id and new revision.
Use it for bulk workflow moves. Use kintone_record_status_update for a single record.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `records` (`array`, required): Records to move, up to 100. Each item has id, action (the action name) and optionally assignee (login name of the next assignee) and revision. Example: [{"id": 101, "action": "Submit for approval"}, {"id": 102, "action": "Approve", "assignee": "jsmith"}].

Example input: `{"app":42,"records":[{"id":101,"action":"Submit for approval"},{"id":102,"action":"Approve","assignee":"jsmith"}]}`

### `kintone_records_update`

Update Records · Write

Update up to 100 Kintone records in one call, or upsert them; either all succeed or none do.
Returns each record's id and new revision (and, with upsert, whether it was added or updated).
Use it for batches or upserts by a unique-value field. Use kintone_record_update for one record.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `records` (`array`, required): Records to update, up to 100. Each item identifies the record with id, or with updateKey ({"field": unique field code, "value": ...}), and gives the new values in record (field codes mapped to {"value": ...}); add revision to guard against concurrent edits. Example: [{"id": 101, "record": {"Status": {"value": "Closed"}}}, {"updateKey": {"field": "Order_number", "value": "ORD-1002"}, "record": {"Amount": {"value": "50"}}}].
- `upsert` (`boolean`, optional): Set to true to add records that don't exist yet (matched by id or updateKey) instead of failing. Example: true.

Example input: `{"app":42,"records":[{"id":101,"record":{"Status":{"value":"Closed"}}},{"updateKey":{"field":"Order_number","value":"ORD-1002"},"record":{"Amount":{"value":"50"}}}]}`

### `kintone_record_comment_delete`

Delete Record Comment · Destructive

Delete a comment from a Kintone record. With an API token, only comments posted as Administrator (that is, through an API token) can be deleted.
Returns an empty object on success.
Use it to remove a comment; get comment IDs from kintone_record_comments_list.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `comment` (`integer`, required): ID of the comment to delete, from kintone_record_comments_list. Example: 4.
- `record` (`integer`, required): ID of the record the comment is on, shown as Record number in Kintone and returned as $id by the record tools. Example: 101.

Example input: `{"app":42,"comment":4,"record":101}`

### `kintone_records_cursor_delete`

Delete Record Cursor · Destructive

Delete a Kintone cursor before all its records have been read.
Returns an empty object on success.
Use it to free a cursor you no longer need; a Kintone domain can hold at most 10 open cursors.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): Cursor ID returned by kintone_records_cursor_create. Example: "9a9716fe-1394-4677-a1c7-2199a5d28215".

Example input: `{"id":"9a9716fe-1394-4677-a1c7-2199a5d28215"}`

### `kintone_records_delete`

Delete Records · Destructive

Delete up to 100 records from a Kintone app by record ID. This can't be undone.
Returns an empty object on success.
Use it only when records must be removed; give revisions to avoid deleting records that changed.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `app` (`integer`, required): ID of the Kintone app. It is the number after /k/ in the app's URL, for example 42 in https://mycompany.kintone.com/k/42/. The connection's API token must belong to this app. Example: 42.
- `ids` (`array`, required): IDs of the records to delete, up to 100. Example: [101, 102].
- `revisions` (`array`, optional): Expected revision for each record, in the same order as ids. If any doesn't match, nothing is deleted. Use -1 to skip the check for one record. Example: [3, -1].

Example input: `{"app":42,"ids":[101,102]}`

## Related

Other Databases connectors ([all 22](/agentkit/connectors/?category=databases)):

- [Snowflake](/agentkit/connectors/snowflake/): Scalekit connector, OAuth, 42 tools
- [AWS Redshift](/agentkit/connectors/redshift/): Scalekit connector, Trusted identity provider, 10 tools
- [Google BigQuery](/agentkit/connectors/bigquery/): Scalekit connector, OAuth, 47 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
