You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/api.yaml
+43-20Lines changed: 43 additions & 20 deletions
Original file line number
Diff line number
Diff line change
@@ -44,17 +44,20 @@ info:
44
44
## ODK Central v2026.2
45
45
46
46
**Added**:
47
-
- Actor properties allow you to attach custom key/value metadata to App Users and Public Links within a project. This can be used to tag users with attributes like region or supervisor.
47
+
- [Actor Properties](/central-api-accounts-and-users/#actor-properties) allow you to attach custom key/value metadata to App Users and Public Links within a project. This can be used to tag users with attributes like region or supervisor.
48
48
- [POST /projects/:id/actor-properties](/central-api-accounts-and-users/#registering-an-actor-property-name) to register a new property name for a project.
49
49
- [GET /projects/:id/actor-properties](/central-api-accounts-and-users/#listing-actor-property-names) to list property names. Use `X-Extended-Metadata: true` to also retrieve the distinct values currently in use.
50
-
- [GET /projects/:id/app-users/:id](/central-api-accounts-and-users/#getting-app-user-details) to get a single App User. Use `X-Extended-Metadata: true` to include property values.
51
50
- [PATCH /projects/:id/app-users/:id](/central-api-accounts-and-users/#setting-actor-property-values-on-an-app-user) to set or unset property values on an App User.
52
-
- [GET /projects/:id/forms/:xmlFormId/public-links/:id](/central-api-form-management/#getting-link-details) to get a single Public Link. Use `X-Extended-Metadata: true` to include property values.
53
51
- [PATCH /projects/:id/forms/:xmlFormId/public-links/:id](/central-api-form-management/#setting-actor-property-values-on-a-link) to set or unset property values on a Public Link.
54
-
- New audit log events: `actor.property.create`, `field_key.property.set`, and `public_link.property.set`.
55
-
52
+
- New audit log events: `actor_property.create`, `field_key.property.set`, and `public_link.property.set`.
53
+
56
54
**Changed**:
57
55
- The [Getting Form Details](/central-api-form-management/#getting-form-details), [Listing Published Form Versions](/central-api-form-management/#listing-published-form-versions) and [Getting Form Version Details](/central-api-form-management/#getting-form-version-details) endpoints now return a `publishNotes` field in extended metadata.
56
+
- Several existing endpoints now support [Actor Properties](/central-api-accounts-and-users/#actor-properties):
57
+
- [GET /projects/:id/app-users](/central-api-accounts-and-users/#listing-all-app-users) and [GET /projects/:id/app-users/:id](/central-api-accounts-and-users/#getting-app-user-details) now return a `properties` object in extended metadata.
58
+
- [POST /projects/:id/app-users](/central-api-accounts-and-users/#creating-a-new-app-user) now accepts an optional `properties` object to set property values at creation time.
59
+
- [GET /projects/:id/forms/:xmlFormId/public-links](/central-api-form-management/#listing-all-links) and [GET /projects/:id/forms/:xmlFormId/public-links/:id](/central-api-form-management/#getting-link-details) now return a `properties` object in extended metadata.
60
+
- [POST /projects/:id/forms/:xmlFormId/public-links](/central-api-form-management/#creating-a-link) now accepts an optional `properties` object to set property values at creation time.
58
61
59
62
## ODK Central v2026.1
60
63
@@ -973,7 +976,7 @@ tags:
973
976
* `public_link.session.end` when a Public Link's access is revoked.
974
977
* `public_link.delete` when a Public Link is deleted.
975
978
* `public_link.property.set` when actor property values are set on a Public Link.
976
-
* `actor.property.create` when a new actor property name is registered for a project.
979
+
* `actor_property.create` when a new actor property name is registered for a project.
977
980
* `submission.create` when a new Submission is created.
978
981
* `submission.update` when a Submission's metadata is updated.
979
982
* `submission.update.version` when a Submission XML data is updated.
@@ -1916,7 +1919,7 @@ paths:
1916
1919
description: |-
1917
1920
Currently, there are no paging or filtering options, so listing `App User`s will get you every App User in the system, every time.
1918
1921
1919
-
This endpoint supports retrieving extended metadata; provide a header `X-Extended-Metadata: true` to additionally retrieve the `lastUsed` timestamp of each App User, as well as to retrieve the details of the `Actor` the App User was `createdBy`.
1922
+
This endpoint supports retrieving extended metadata; Provide a header `X-Extended-Metadata: true` to additionally retrieve the `lastUsed` timestamp of each App User, the details of the `Actor` the App User was `createdBy`, and a `properties` object containing any actor property values set on the App User.
The only information required to create a new `App User` is its `displayName` (this is called "Nickname" in the administrative panel).
1978
1982
1979
1983
When an App User is created, they are assigned no rights. They will be able to authenticate and list forms on a mobile client, but the form list will be empty, as the list only includes Forms that the App User has read access to. Once an App User is created, you'll likely wish to use the [Form Assignments resource](/central-api-form-management/#form-assignments) to actually assign the `app-user` role to them for the Forms you wish.
1984
+
1985
+
You may also optionally provide a `properties` object to set pre-registered [Actor Property](/central-api-accounts-and-users/#actor-properties) values on the App User at creation time.
1980
1986
operationId: createAppUser
1981
1987
parameters:
1982
1988
- name: projectId
@@ -1997,8 +2003,16 @@ paths:
1997
2003
displayName:
1998
2004
type: string
1999
2005
description: The friendly nickname of the `App User` to be created.
2006
+
properties:
2007
+
type: object
2008
+
description: An optional object mapping pre-registered [Actor Property](/central-api-accounts-and-users/#actor-properties) names to string values.
2009
+
additionalProperties:
2010
+
type: string
2011
+
nullable: true
2000
2012
example:
2001
2013
displayName: My Display Name
2014
+
properties:
2015
+
region: North
2002
2016
required: false
2003
2017
responses:
2004
2018
"200":
@@ -2117,11 +2131,11 @@ paths:
2117
2131
- App Users
2118
2132
summary: Setting Actor Property Values on an App User
2119
2133
description: |-
2120
-
Sets or unsets actor property values on an App User. The body must contain a `properties` object mapping property names to string values or `null`. Sending `null` for a property unsets it. Property names must have been registered on the project via `POST /v1/projects/{projectId}/actor-properties` before they can be set.
2134
+
Sets or unsets pre-registered [Actor Property](/central-api-accounts-and-users/#actor-properties) values on an App User. The body must contain a `properties` object mapping property names to string values or `null`. Sending `null` for a property unsets it.
2121
2135
2122
2136
Returns the extended App User, including a `properties` object containing all currently set property values.
2123
2137
2124
-
Requires `project.update` permission.
2138
+
Requires `field_key.update` permission.
2125
2139
operationId: patchAppUser
2126
2140
parameters:
2127
2141
- name: id
@@ -2244,7 +2258,7 @@ paths:
2244
2258
2245
2259
Property names follow the same rules as Entity property names: they must be non-empty, may contain letters, digits, hyphens, and underscores, and the name `displayName` (case-insensitive) is reserved.
2246
2260
2247
-
Requires `project.update` permission.
2261
+
Requires `actor_property.update` permission.
2248
2262
operationId: createActorProperty
2249
2263
parameters:
2250
2264
- name: projectId
@@ -5369,7 +5383,7 @@ paths:
5369
5383
description: |-
5370
5384
This will list every Public Access Link upon this Form.
5371
5385
5372
-
This endpoint supports retrieving extended metadata; provide a header `X-Extended-Metadata: true` to retrieve the Actor the Link was `createdBy`.
5386
+
This endpoint supports retrieving extended metadata; Provide a header `X-Extended-Metadata: true` to additionally retrieve the Actor the Link was `createdBy` and a `properties` object containing any actor property values set on the Link.
5373
5387
operationId: listAllLinks
5374
5388
parameters:
5375
5389
- name: projectId
@@ -5426,17 +5440,16 @@ paths:
5426
5440
type: user
5427
5441
updatedAt: 2018-04-18T23:42:11.406Z
5428
5442
deletedAt: 2018-04-18T23:42:11.406Z
5443
+
properties:
5444
+
region: North
5429
5445
post:
5430
5446
tags:
5431
5447
- Public Access Links
5432
5448
summary: Creating a Link
5433
-
description: 'To create a new Public Access Link to this Form, you must send
5434
-
at least a `displayName` for the resulting Actor. You may also provide `once:
5435
-
true` if you want to create a link that [can only be filled by each respondent
5436
-
once](https://blog.enketo.org/single-submission-surveys/). This setting is
5437
-
enforced by Enketo using local device tracking; the link is still distributable
5438
-
to multiple recipients, and the enforcement can be defeated by using multiple
5439
-
browsers or devices.'
5449
+
description: |-
5450
+
To create a new Public Access Link to this Form, you must send at least a `displayName` for the resulting Actor. You may also provide `once: true` if you want to create a link that [can only be filled by each respondent once](https://blog.enketo.org/single-submission-surveys/). This setting is enforced by Enketo using local device tracking; the link is still distributable to multiple recipients, and the enforcement can be defeated by using multiple browsers or devices.
5451
+
5452
+
You may also optionally provide a `properties` object to set pre-registered [Actor Property](/central-api-accounts-and-users/#actor-properties) values on the Link at creation time.
5440
5453
operationId: createLink
5441
5454
parameters:
5442
5455
- name: projectId
@@ -5471,9 +5484,17 @@ paths:
5471
5484
description: If set to `true`, an Enketo [single submission survey](https://blog.enketo.org/single-submission-surveys/)
5472
5485
will be created instead of a standard one, limiting respondents
5473
5486
to a single submission each.
5487
+
properties:
5488
+
type: object
5489
+
description: An optional object mapping pre-registered [Actor Property](/central-api-accounts-and-users/#actor-properties) names to string values.
5490
+
additionalProperties:
5491
+
type: string
5492
+
nullable: true
5474
5493
example:
5475
5494
displayName: my public link
5476
5495
once: false
5496
+
properties:
5497
+
region: North
5477
5498
required: false
5478
5499
responses:
5479
5500
"200":
@@ -5578,9 +5599,11 @@ paths:
5578
5599
- Public Access Links
5579
5600
summary: Setting Actor Property Values on a Link
5580
5601
description: |-
5581
-
Sets or unsets actor property values on a Public Access Link. The body must contain a `properties` object mapping property names to string values or `null`. Sending `null` for a property unsets it. Property names must have been registered on the project via `POST /v1/projects/{projectId}/actor-properties` before they can be set.
5602
+
Sets or unsets pre-registered [Actor Property](/central-api-accounts-and-users/#actor-properties) values on a Public Access Link. The body must contain a `properties` object mapping property names to string values or `null`. Sending `null` for a property unsets it.
5582
5603
5583
5604
Returns the extended Public Link, including a `properties` object containing all currently set property values.
0 commit comments