Forsta Modifying Data API

Allows for modification of the participant data. Depending on verb selected you are either deleting/disqualifying participants, modifying data of an existing participant or creating completely new participant records. This is similar to the actions possible through the "Edit Data" system as seen in [View/Edit Responses report](https://forstasurveys.zendesk.com/hc/en-us/articles/4409477217819) Support for this was added in `Decipher 28`. Return object: * `stats` (object): overall statistics of what happened with your data edit requested: * `created` (int): number of new records created * `deleted` (int): number of records deleted * `disqualified` (int): number of qualified records disqualified or deleted * `unseen` (int): number of rows that did not match existing records when not creating new records * `rewritten` (int): records where data was modified * `unchanged` (int): records where your updated data did not cause changes * `inrows` (int): total amount of records processed (rewritten + unchanged + deleted + created) * `fieldsIdentical` (int): data update requests not done because existing data was identical. This counts individual cells * `fieldsUpdated` (int): data fields updated by the request * `fieldsErronous` (int): data supplied that was not valid * `fieldsIgnored` (int): cells ignored because uploading into legacy weight/record values (this is for surveys older than 2005) * `fieldsProcessed` (int): total fields processed * `bad` (array): invalid values detected during edit/update * `rows` (int): number of fields in your input data * `unmatchedDeletions` (int): records that you asked to be deleted but did not match existing records * `backup` (string): where is the previous version of the data? This can be restored by support or a shell user on a Beacon Cloud installation Additional error codes: * 400 invalid key: the `key` supplied is not a valid variable * 400 bad variable \: some of the variables supplied in data do not exist or cannot be updated. **Performance notes**: The Decipher data files are geared towards analysis rather than editing and updates. During the data editing process, participants will be prevented from completing the survey. The time to complete a data edit will vary with amount of participants in the data file and number of variables but a typical speed is 1,000 records / 25,000 cells per second. After a data edit, many “cache entries” are cleared such as virtual data. If your report has a complex virtual question, the next report run might take extra time to complete. **Partial data:** Note that while you can modify partial participant data, if the participant returns and submits more data which is recovered or completes, the changes will be overwritten. Deleting a partial participant will stop further automatic recovery, but will not prevent the participant from completing again. **Errors:** An upload of a row with data that is not correct will **not stop** the correct data from being applied. E.g. you if you modify q1 to a valid value 2, and q2 to an invalid value 5 the application of q1 will still happen. If it's critical to avoid this, start by modifying the data in a `test` mode first and check that `fieldsErronous` is 0. **Data:** Each data record may include different variables. Thus it is possible to change only variable q1 for one record and only change q2 for another record. Any virtual variables included in the data will be ignored. **Special fields:** The `date` field must be supplied in the server's time format and time zone. On all but 1 of Decipher servers, the time format is `%m/%d/%Y %H:%M` i.e. Month, Day, Year (4 digit), then 24-hour and minute. Note that this means while seconds are stored in the data file, they can only be imported as 0. **Logging:** Changes through this API are logged, but do not trigger the data edit notification email. **Memory usage:** Importing a 50 megabyte file containing 1 million records each with 4 fields requires 1500 MB memory. The overhead comes mostly from number of cells in the data array imported at once. + Parameters + survey (string)... The survey to edit data in. You must have `data edit` permission for the project. + key:`uuid` (string) - The field used to match your participant data. This should be a unique variable. Supplying a non-unique `key` will change every matching record. This is implicitly `null` when creating new records. + data (array)... An array of the participant records. Each element of the array is an object with the key being the column name matching a variable name, and the value the value you want to update. You can specify any amount of variables. + test =`false` (boolean,optional)... Do not execute the edit, but return the changes that would be applied at the time of the call. + layout (int, optional)... The id of a custom data layout. A custom export layout can relabel fields. If you exported some data with fields that have been relabelled in a layout and now are importing it back, you should use the same layout. + allVariables =`false` (bool, optional)... Allow editing of notdp variables

Operations 7

POST /surveys/{survey}/data/edit Create new data #
PUT /surveys/{survey}/data/edit Update survey data #
DELETE /surveys/{survey}/data/edit Delete or disqualify survey data #
PUT /surveys/{survey}/data/edit/markers Update markers #
POST /surveys/{survey}/respondents/import Import survey data #
GET /surveys/{survey}/edits/{edit} Get survey response edits #
POST /surveys/{survey}/data/delphi-conversion Convert to Delphi #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/forsta-modifying-data-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

forsta-modifying-data-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Decipher Rest Modifying Data API
  version: '1.0'
  description: The Decipher REST API allows comprehensive automation of your private or shared Decipher instance.
servers:
- url: https://{server}/api/v1
  description: Replace server with your instance domain.
  variables:
    server:
      default: selfserve.decipherinc.com
      description: Server domain
security:
- APIKey: []
tags:


# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/forsta/refs/heads/main/openapi/forsta-modifying-data-api-openapi.yml