# KoboToolbox integration

> Survey and field data collection: manage projects (assets), forms, submissions, exports, permissions, files and REST service webhooks through the KPI v2 API.

- Authentication: apiKey

## Tools (186)

- **Create Access Log Export**: ⚠️ _Only available to superusers_.
- **Create Asset Advanced Features**: Enables a new type of advanced action on a question in the asset. `action`, `params`, and `question_xpath` are required; `params` must match the expected param_schema of the `action`;
- **Create Asset Advanced Features Bulk Actions**: Creates and starts a bulk processing job for one question across multiple submissions. Supported actions: `automatic_google_transcription`; `automatic_google_translation`;
- **Create Asset Attachments Audio Duration**: Where: `attachment_uids` (required) is a list of attachment UIDs whose audio duration to retrieve. Maximum 200 UIDs per request.
- **Create Asset Bulk**: Performs a bulk action on assets: `archive`, `delete`, `unarchive` or `undelete` (superusers only).
- **Create Asset Deployment**: Deploy a new form or re-deploy an existing one.
- **Create Asset Exports**: Creates an asynchronous export task. Poll the returned export (`GET .../exports/{uid_export}/`) until `status` is `complete`, then fetch `result`. Body fields below follow the official description;
- **Create Asset Export Settings**: Creates a saved export setting. Requires the `manage_asset` permission. `export_settings` takes the same options as the export task.
- **Create Asset Files**: Adds a file to a project. Three ways: multipart `content` upload, a base64 string in `base64Encoded` (with `metadata.filename`), or a URL via `metadata.redirect_url`.
- **Create Asset History Export**: Exports the project's history and sends it by email to the requesting user.
- **Create Asset Paired Data**: `fields`: Optional. List of questions whose responses will be retrieved from the source data. If missing or empty, all responses will be retrieved.
- **Create Asset Permission Assignments**: Assigns a permission to a user. Partial permissions use Mongo-style filters, joined with OR. Implied permissions are also assigned (e.g. `change_asset` adds `view_asset`).
- **Create Asset Permission Assignments Bulk**: Can put both regular and partial permission in the payload;
- **Create Asset REST Services**: Adds a REST service (webhook) to a project. `name` and `endpoint` are required; `active` defaults to true; `export_type` is `json` (default) or `xml`;
- **Create Assets**: Creates a project or library asset, or clones one. `asset_type` is one of `block`, `question`, `survey`, `template`. Clone sources:
- **Create Asset Snapshot**: When creating an asset snapshot, you must provide either: the asset (as a URI), or; the source (as a JSON object representing the asset); …but not both.
- **Create Asset Submission Supplements Bulk**: Accepts transcription or translation results for multiple submissions in a single request. This is the bulk counterpart of the per-submission acceptance flow:
- **Create Asset Subscriptions**: Create a subscription to a public collection for the user.
- **Create Email Confirmations**: Sends a fresh confirmation link to an email address that is registered but not yet verified.
- **Create Imports**: Imports a file or URL as a project or library asset. Body is multipart/form-data.
- **Create My Access Log Export**: Create My Access Log Export
- **Create My Account Emails**: The new email will be unverified and replace existing unverified, non-primary emails. New email is not usable until verified.
- **Create Organization Invites**: Create organization invites for registered and unregistered users. Set the role for which the user is being invited - (Choices: `member`, `admin`). Default is `member`.
- **Create Project History Log Export**: ⚠️ _Only available to superusers_. Export project history logs and send it by email to the requesting user.
- **Create Project Ownership Invites**: Where the assets `uid` are given in the payload's list.
- **Create Project View Export**: Note: `{obj_type}` can either be `users` or `assets`;
- **Create Stripe Checkout Link**: Create Stripe Checkout Link
- **Create Stripe Customer Portal**: Create Stripe Customer Portal
- **Delete Asset**: Delete Asset
- **Delete Asset Attachment**: `id` can only be the uid of attachment to be deleted;
- **Delete Asset Attachments Bulk**: Where: "submission_root_uuids" (required) is a list of submission root uuids on the asset to delete; Where: "number_of_attachment" is the number of items that was deleted;
- **Delete Asset Export**: Delete Asset Export
- **Delete Asset Export Setting**: _Required permissions: `manage_asset` (Manage project)_;
- **Delete Asset File**: Delete Asset File
- **Delete Asset Paired Data Item**: Delete Asset Paired Data Item
- **Delete Asset Permission Assignment**: Delete Asset Permission Assignment
- **Delete Asset Permission Assignments Bulk**: Removes all permission assignments of one user. Only the user named in the body can be removed.
- **Delete Asset REST Service**: Delete Asset REST Service
- **Delete Asset Snapshot**: Delete Asset Snapshot
- **Delete Asset Submission**: Delete Asset Submission
- **Delete Asset Submission Bulk**: Bulk deletes submissions by root id. The official description names the body field `submissions_ids`; the OpenAPI schema shows `payload` (array of integer). Response:
- **Delete Asset Submission Validation Status**: Delete Asset Submission Validation Status
- **Delete Asset Submission Validation Statuses**: Bulk removes the validation status from submissions.
- **Delete Asset Subscription**: Unsubscribe from a public asset.
- **Delete Current User**: Delete Current User
- **Delete My Account Social Account**: Delete My Account Social Account
- **Delete Organization Invite**: Organization owner or admin can delete an organization invite.
- **Delete Organization Member**: Delete an organization member.
- **Delete Project Ownership Invite**: Delete Project Ownership Invite
- **Duplicate Asset Submission**: Duplicates a submission. `{id}` is the primary key, its `_uuid` (may match several; only the first is used) or its `rootUuid` without the `uuid:` prefix.
- **Get Asset**: Get Asset
- **Get Asset Advanced Feature**: Gets the params for one advanced action for one question in an asset.
- **Get Asset Advanced Features Bulk Action**: Returns detailed information about a single bulk processing job, including its current status, per-submission status, processing params, creator, cancellation metadata, timestamps, and integer
- **Get Asset Content**: Get Asset Content
- **Get Asset Counts**: Returns up to the last 31 days of daily counts and total counts of submissions to a survey. Use the `days` query to get the daily counts from the last x amount of days. Default amount is 30 days.
- **Get Asset Deployment**: Get Asset Deployment
- **Get Asset Export**: Get Asset Export
- **Get Asset Export Setting**: _Required permissions: `view_submissions` (View submissions)_;
- **Get Asset File**: Get Asset File
- **Get Asset File Content**: Get Asset File Content
- **Get Asset Hash**: Useful to detect any changes in assets with only one call to `API`.
- **Get Asset History Actions**: Get Asset History Actions
- **Get Asset Metadata**: Get Asset Metadata
- **Get Asset Paired Data External**: Creates the endpoints. /api/v2/assets//paired-data//external/; /api/v2/assets//paired-data//external.xml/;
- **Get Asset Paired Data Item**: Get Asset Paired Data Item
- **Get Asset Permission Assignment**: Get Asset Permission Assignment
- **Get Asset Reports**: Returns the submission data for all deployments of a survey. This data is grouped by answers, and does not show the data for individual submissions.
- **Get Asset REST Service**: Get Asset REST Service
- **Get Asset REST Service Log**: Get Asset REST Service Log
- **Get Assets Counts**: Get Assets Counts
- **Get Asset Snapshot**: Note: If the `Content-Type` of the request is set to `application/xml`, the response will return the XML version of the form, rather than the JSON representation of the asset snapshot.
- **Get Asset Snapshot Preview**: Returns a `302 Found` redirect to the Enketo preview page associated with the asset.
- **Get Asset Snapshot Xform**: It is useful for debugging pyxform transformations.
- **Get Asset Snapshot Xml With Disclaimer**: This endpoint is used by Enketo to fetch and return the full XML form. It behaves like the standard retrieve endpoint but includes an additional `` node containing the disclaimer, if one exists.
- **Get Asset Submission**: Gets one submission. `{id}` is the submission primary key, its `_uuid` (may match several; only the first is returned) or its `rootUuid` without the `uuid:` prefix.
- **Get Asset Submission Attachment**: `uid_data` can be the primary key of the submission or its `uuid`. Please note that using the `uuid` may match several submissions, only the first match will be returned.
- **Get Asset Submission Attachment Thumbnail**: Available formats: `small`; `medium`; `large`; `id` of attachment can be the primary key of the attachment or its `uid`. Both examples works: Or, using the `UID`:
- **Get Asset Submission Edit**: `{id}` can be: The primary key of the submission; Its `_uuid` 1; Its `rootUuid` (without "uuid:" prefix);
- **Get Asset Submission Enketo Edit**: `{id}` can be: The primary key of the submission; Its `_uuid` 1; Its `rootUuid` (without "uuid:" prefix);
- **Get Asset Submission Enketo Redirect Edit**: `{id}` can be: The primary key of the submission; Its `_uuid` 1; Its `rootUuid` (without "uuid:" prefix);
- **Get Asset Submission Enketo Redirect View**: `{id}` can be: The primary key of the submission; Its `_uuid` 1; Its `rootUuid` (without "uuid:" prefix);
- **Get Asset Submission Enketo View**: `{id}` can be: The primary key of the submission; Its `_uuid` 1; Its `rootUuid` (without "uuid:" prefix);
- **Get Asset Submission Supplement**: This endpoint allows you to retrieve supplementary data attached to a submission. The supplementary data may include: NLP actions; Manual transcription; Manual translation;
- **Get Asset Submission Validation Status**: Retrieves the validation status of a submission.
- **Get Asset Subscription**: Get Asset Subscription
- **Get Asset Table View**: Get Asset Table View
- **Get Asset Usage**: Get Asset Usage
- **Get Asset Valid Content**: Get Asset Valid Content
- **Get Asset Version**: Returns the details of an asset version.
- **Get Asset Xform**: It is useful for debugging pyxform transformations.
- **Get Asset Xls**: Get Asset Xls
- **Get Current User**: Get Current User
- **Get Environment**: Retrieve Kobo server environment configurations. This endpoint provides a wide range of configuration details required by the frontend client, including: Legal, support, and community URLs (e.g.
- **Get Import**: Get Import
- **Get Language**: `code` - is the unique identifier of a specific language;
- **Get My Account Social Account**: Get My Account Social Account
- **Get Organization**: Get Organization
- **Get Organization Asset Usage**: Tracks the total usage of each asset for the user in the given organization. Use the `q` query parameter to filter by project name (e.g. `?q=household survey`).
- **Get Organization Invite**: Get Organization Invite
- **Get Organization Member**: Retrieves the details of a specific member within an organization by username.
- **Get Organization Service Usage**: Tracks the total usage of different services for each account in an organization; Tracks the submissions and NLP seconds/characters for the current month/year/all time;
- **Get Permission**: Get Permission
- **Get Project Ownership Invite**: It can be useful to monitor the invite status while the transfer is being processed.
- **Get Project Ownership Invite Transfer**: Get Project Ownership Invite Transfer
- **Get Project View**: Get Project View
- **Get Project View Export**: Note: `{obj_type}` can either be `users` or `assets`;
- **Get Service Usage**: ⚠️ Deprecated. Tracks the total usage of different services for the logged-in user. Tracks the submissions and NLP seconds/characters for the current month/year/all time.
- **Get Social App**: Resolves the `provider_id` used in single sign-on URLs into the provider's display name, so a client can render the "Log in with …" screen and tell a real provider from a typo.
- **Get Stripe Addon**: Lists the one-time add-ons for the authenticated user's organization.
- **Get Stripe Change Plan**: Change an existing subscription to a new price. This will immediately change their subscription to the new plan if upgrading, prorating the charge.
- **Get Stripe Subscription**: Get Stripe Subscription
- **Get Terms Of Service Document**: Get Terms Of Service Document
- **Get Transcription Service**: `code` - is the unique identifier of a specific language;
- **Get Translation Service**: `code` - is the unique identifier of a specific language;
- **Get User**: ⚠️ _Regular users have access to active users only_.
- **List Access Log Exports**: ⚠️ _Only available to superusers_.
- **List Access Logs**: ⚠️ _Only available to superusers_. Submissions will be grouped together by user by hour. Filterable fields: date_created; user_uid; user__username; metadata__source; metadata__auth_type;
- **List Asset Advanced Features**: Lists all advanced features on all questions in an asset. Examples show one type at a time, but the response may contain multiple advanced features items.
- **List Asset Advanced Features Bulk Actions**: Returns paginated bulk processing jobs associated with the specified asset. Each job is organized around one action, one question, and many submissions.
- **List Asset Exports**: Lists the export tasks accessible to requesting user, for anonymous access nothing is returned. _Required permissions: `view_submissions` (View submissions)_;
- **List Asset Export Settings**: _Required permissions: `view_submissions` (View submissions)_;
- **List Asset Export Setting Submissions**: To retrieve data synchronously in CSV and XLSX format according to a particular instance of export settings.
- **List Asset Files**: Results can be narrowed down with a filter by type:
- **List Asset History**: Lists all project history logs for a single project. ⚠️ _Required permissions: `manage_asset` (Manage project)_.
- **List Asset Minimal List**: Returns a paginated list of assets visible to the current user, including only `uid`, `name`, and `deployment_status` (`draft`, `deployed`, or `archived`).
- **List Asset Paired Data**: This endpoint is paginated and accepts these parameters: `offset`: The initial index from which to return the results; `limit`: Number of results to return per page;
- **List Asset Permission Assignments**: List Asset Permission Assignments
- **List Asset Qual Question Tags**: Lists the tag values previously submitted for a `qualTags` question on this asset, sorted alphabetically.
- **List Asset REST Service Logs**: ⚠️ The `page` query parameter is deprecated, use `start` and `limit` instead. Where: `asset_uid` - is the unique identifier of a specific asset;
- **List Asset REST Services**: Lists the external services endpoints accessible to requesting user.
- **List Assets**: Lists the user's projects and library items. Search with `q`; `ordering` takes a field name, prefix `-` to reverse (e.g.
- **List Asset Snapshot**: List Asset Snapshot
- **List Asset Submission Attachments**: `uid_data` can be the primary key of the submission or its `uuid`. Please note that using the `uuid` may match several submissions, only the first match will be returned.
- **List Asset Submissions**: Lists submissions of a project. `format` is `json` (default), `xml` or `geojson`. `query` is a MongoDB-style JSON filter, e.g. `{"_submission_time": {"$gt": "2019-09-01T01:02:03"}}`.
- **List Asset Subscriptions**: List Asset Subscriptions
- **List Asset Versions**: List Asset Versions
- **List Audit Logs**: ⚠️ _Only available to superusers_. Results from this endpoint can be filtered by a Boolean query specified in the `q` parameter. Filterable fields: app_label; model_name; action Available actions:
- **List Imports**: List Imports
- **List Languages**: Search can be made with `q` parameter. By default, search for the term in language names or language codes. Examples:
- **List My Access Log Exports**: List My Access Log Exports
- **List My Access Logs**: Submissions will be grouped together by hour. Results from this endpoint can be filtered by a boolean query specified in the `q` parameter. Filterable fields: date_created; metadata__source;
- **List My Account Emails**: List My Account Emails
- **List My Account Social Accounts**: List My Account Social Accounts
- **List Organization Asset Counts**: List Organization Asset Counts
- **List Organization Asset Minimal List**: Returns a paginated list of assets owned by the organization, including only `uid`, `name`, and `deployment_status` (`draft`, `deployed`, or `archived`).
- **List Organization Assets**: This endpoint returns all assets associated with a specific organization. The assets listed here are restricted to those owned by the specified organization.
- **List Organization Invites**: List Organization Invites
- **List Organization Members**: Retrieves all members and pending invitations in the specified organization. Search can be made with the `q` parameter.
- **List Organizations**: List Organizations
- **List Permissions**: The `implied` property of a given permission shows which additional permissions are automatically granted when assigning that particular permission.
- **List Project History Log Exports**: ⚠️ _Only available to superusers_.
- **List Project History Logs**: ⚠️_Only available to superusers_. Results from this endpoint can be filtered by a Boolean query specified in the `q` parameter. Filterable fields for all project history logs: date_created; user_uid;
- **List Project Ownership Invites**: Invites sent or received by current user about transferring project ownership. List can be filtered with `mode` parameter, e.g.: display only received invites. Possible values for `mode`: `sender`;
- **List Project View Asset Counts**: List Project View Asset Counts
- **List Project View Asset Minimal List**: Returns a paginated list of assets visible within the project view, including only `uid`, `name`, and `deployment_status` (`draft`, `deployed`, or `archived`).
- **List Project View Assets**: List Project View Assets
- **List Project Views**: List Project Views
- **List Project View Users**: List Project View Users
- **List Stripe Addons**: Lists the one-time add-ons for the authenticated user's organization.
- **List Stripe Products**: Returns Product and Price Lists, sorted from the product with the lowest price to highest This endpoint is cached for an amount of time determined by ENDPOINT_CACHE_DURATION.
- **List Stripe Subscriptions**: List Stripe Subscriptions
- **List Tags**: List Tags
- **List Terms Of Service**: List Terms Of Service
- **List Transcription Services**: Search can be made with `q` parameter to search for the term in names and codes. Results are order by name.
- **List Translation Services**: Search can be made with `q` parameter to search for the term in names and codes. Results are ordered by name.
- **List User Reports**: ⚠️ _Only available to superusers_. Supports partial filtering. username; first_name; last_name; email; user_uid; organization__name; organization__role (e.g., admin, member, owner);
- **List Users**: ⚠️ _Only available to superusers_. Search can be made with `q` parameter. Allowed fields are: `username`; `is_active`; `email`; `date_joined`; `last_login`; `extra_details__data__`;
- **Retry Asset REST Service**: This call is asynchronous. Job is sent to Celery to be run in background. It returns all logs `uid`s that are being retried.
- **Retry Asset REST Service Log**: Retry Asset REST Service Log
- **Update Asset**: Updates a project, or connects its data to other projects through `data_sharing`.
- **Update Asset Advanced Feature**: Update the params of an advanced action on a question in the asset. `params` are always additive.
- **Update Asset Advanced Features Bulk Action**: Cancels a single bulk processing job for an asset. This endpoint currently only supports cancellation. Request body: Cancellation is idempotent.
- **Update Asset Deployment**: Update the `active` field of the existing deployment. To overwrite the entire deployment (including the form contents), use a PUT request.
- **Update Asset Export Setting**: _Required permissions: `manage_asset` (Manage project)_;
- **Update Asset Paired Data Item**: _Notes: `source` cannot be changed_.
- **Update Asset Permission Assignments Clone**: Copies permission assignments from another asset.
- **Update Asset REST Service**: Update Asset REST Service
- **Update Asset Submission Bulk**: Bulk updates the XML field values of several submissions. In `data`, keys are field names; a field inside groups uses its group path, e.g. `group_1/sub_group_1/question_1`.
- **Update Asset Submission Supplement**: This endpoint allows you to add, update, or delete supplementary data for a submission. It supports the same action types as the GET endpoint:
- **Update Asset Submission Validation Status**: Sets the validation status of one submission.
- **Update Asset Submission Validation Statuses**: Bulk sets the validation status of submissions. Returns `detail` with the number updated.
- **Update Current User**: Updates the signed-in user's profile fields.
- **Update Organization**: Update Organization
- **Update Organization Invite**: Update an organization invite to accept, decline, cancel, expire, or resend. Update the role of the invitee to `admin` or `member`. Only the owner or admin can update the role.
- **Update Organization Member**: Updates the role of a member within the organization to `admin` or `member`. admin: Grants the member admin privileges within the organization; member:
- **Update Project Ownership Invite**: Update the status of an invite. Status accepted: `cancelled`; `accepted`; `declined`; Notes: _When submitting `accepted` the invite status becomes automatically `in_progress`_;

Connect KoboToolbox in General Input: https://www.generalinput.com/apps/kobotoolbox