Submission id column missing from API V1 requests

It sounds like you’ve already figured this out (I’m glad :+1:) but I’ll add some notes here for future reference.

No changes to this part of the V1 API have occurred in approximately 9 years.

_submission_id does not appear in the entire Git history of the KoBoCAT code base. Could you be thinking of _submission__id (double underscore)? This only appears in KPI (non-legacy, kF.kobotoolbox.org) Excel exports of a form with a repeating group, and only then on one of the sheets for the repeating group. It allows cross-referencing the rows in the repeating-group sheet with rows in the main sheet. CSV exports don’t have sheets and therefore don’t include data from repeating groups.

Not at all, sorry. _uuid is the “OpenRosa <instanceID>, which must be a universally unique string identifying this specific submission.” If you are seeing many duplicates of this, please report a bug. We know that a few have crept in, but they should be very uncommon. Some OpenRosa server implementations deal with this by rejecting any submission with a duplicate UUID outright. KoBoToolbox does not; in the interest of safeguarding data on a server ASAP, we only reject submissions whose XML content completely duplicates a previous submission. We may reconsider this in the future.

CSV from Data->Downloads does not include _submission_id, but it does include _id, which is absolutely unique on an individual KoBoToolbox server. It’s the primary key in the logger_instance (submission) SQL table.

https://kc.kobotoolbox.org/api/v1/data/<your form ID>.json includes the unique _id field, the database primary key, but nothing called _submission_id.

Great :sweat_smile:

1 Like