Project members

Team membership. role 0=Manager, 1=Member, 2=Viewer.

The object#

FieldTypeDescription
idread-onlyintegerNolaPro id.
teamprojectidintegerReference to teamprojects, by id. Write either this or teamproject.
teamprojectstring(30)Code for the referenced teamproject, instead of the id.
genuseridintegerGenuserid. Id only - genuser is read-only or has no code key.
genuserstring(50)Login name of the member. Send this or genuserid, not both unless they agree.
rolestringRole. Labels are Teamprojectuser_model::$roles; stored as an int and never exposed or accepted as one (D35). One of manager, member, viewer.
cancelbooleanCancelled. NolaPro cancels rather than deletes, so a cancelled row is still readable.
entrydateread-onlystringWhen the record was created.
lastchangedateread-onlystringLast modification. Drives modifiedsince.
externalidstring(100)Your own key. Scoped to your company.

Endpoints#

POST/teamprojectmembers/batch 207

Create many.

Requires scope projects:write.

Parameters
NameInTypeNotes
Body array
FieldTypeDescription
idread-onlyintegerNolaPro id.
teamprojectidintegerReference to teamprojects, by id. Write either this or teamproject.
teamprojectstring(30)Code for the referenced teamproject, instead of the id.
genuseridintegerGenuserid. Id only - genuser is read-only or has no code key.
genuserstring(50)Login name of the member. Send this or genuserid, not both unless they agree.
rolestringRole. Labels are Teamprojectuser_model::$roles; stored as an int and never exposed or accepted as one (D35). One of manager, member, viewer.
cancelbooleanCancelled. NolaPro cancels rather than deletes, so a cancelled row is still readable.
entrydateread-onlystringWhen the record was created.
lastchangedateread-onlystringLast modification. Drives modifiedsince.
externalidstring(100)Your own key. Scoped to your company.
curl -X POST \
  'https://acme.nolapro.com/!/api/v2/teamprojectmembers/batch' \
  -H 'Authorization: Bearer $NP_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: your-unique-key' \
  -d '[
    {
        "role": "manager"
    }
]'
GET/teamprojectmembers 200403

List project members.

Requires scope projects:read.

Parameters
NameInTypeNotes
genuseridquerystringRestrict to one genuserid.
cancelquerystringDefaults to false. Pass true or any.
modifiedsincequerystringRFC 3339 UTC timestamp. Returns only records changed since then, including cancelled ones - so cancel defaults to any rather than false when this is used. The response carries _meta.synced_through; store it and send it back next time.
externalidquerystringExact match on your own key.
teamprojectidquerystringFilter to one .
includequerystringComma-separated extras to embed. Only custom_fields is available: the extra fields this install has defined on the record. Off by default, and an unrecognised value is refused rather than ignored. See Conventions.
When it fails
StatusCodeMeaning
403insufficient_scopeToken lacks read scope.
curl \
  'https://acme.nolapro.com/!/api/v2/teamprojectmembers' \
  -H 'Authorization: Bearer $NP_TOKEN'
POST/teamprojectmembers 201400

Create.

Requires scope projects:write.

Parameters
NameInTypeNotes
Body
FieldTypeDescription
idread-onlyintegerNolaPro id.
teamprojectidintegerReference to teamprojects, by id. Write either this or teamproject.
teamprojectstring(30)Code for the referenced teamproject, instead of the id.
genuseridintegerGenuserid. Id only - genuser is read-only or has no code key.
genuserstring(50)Login name of the member. Send this or genuserid, not both unless they agree.
rolestringRole. Labels are Teamprojectuser_model::$roles; stored as an int and never exposed or accepted as one (D35). One of manager, member, viewer.
cancelbooleanCancelled. NolaPro cancels rather than deletes, so a cancelled row is still readable.
entrydateread-onlystringWhen the record was created.
lastchangedateread-onlystringLast modification. Drives modifiedsince.
externalidstring(100)Your own key. Scoped to your company.
When it fails
StatusCodeMeaning
400invalid_requestA required field was missing.
curl -X POST \
  'https://acme.nolapro.com/!/api/v2/teamprojectmembers' \
  -H 'Authorization: Bearer $NP_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: your-unique-key' \
  -d '{
    "role": "manager"
}'
Response 201
{
    "role": "manager"
}
GET/teamprojectmembers/{id} 200404

Retrieve one record.

Requires scope projects:read.

Parameters
NameInTypeNotes
idrequiredpathintegerThe record id.
includequerystringComma-separated extras to embed. Only custom_fields is available: the extra fields this install has defined on the record. Off by default, and an unrecognised value is refused rather than ignored. See Conventions.
When it fails
StatusCodeMeaning
404not_foundNo record with that id.
curl \
  'https://acme.nolapro.com/!/api/v2/teamprojectmembers/104' \
  -H 'Authorization: Bearer $NP_TOKEN'
Response 200
{
    "role": "manager"
}
PATCH/teamprojectmembers/{id} 200404

Update.

Requires scope projects:write.

Parameters
NameInTypeNotes
idrequiredpathintegerThe record id.
Body
FieldTypeDescription
idread-onlyintegerNolaPro id.
teamprojectidintegerReference to teamprojects, by id. Write either this or teamproject.
teamprojectstring(30)Code for the referenced teamproject, instead of the id.
genuseridintegerGenuserid. Id only - genuser is read-only or has no code key.
genuserstring(50)Login name of the member. Send this or genuserid, not both unless they agree.
rolestringRole. Labels are Teamprojectuser_model::$roles; stored as an int and never exposed or accepted as one (D35). One of manager, member, viewer.
cancelbooleanCancelled. NolaPro cancels rather than deletes, so a cancelled row is still readable.
entrydateread-onlystringWhen the record was created.
lastchangedateread-onlystringLast modification. Drives modifiedsince.
externalidstring(100)Your own key. Scoped to your company.
When it fails
StatusCodeMeaning
404not_foundNo record with that id.
curl -X PATCH \
  'https://acme.nolapro.com/!/api/v2/teamprojectmembers/104' \
  -H 'Authorization: Bearer $NP_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: your-unique-key' \
  -d '{
    "role": "manager"
}'
Response 200
{
    "role": "manager"
}
DELETE/teamprojectmembers/{id} 200404

Cancel.

Requires scope projects:cancel.

Parameters
NameInTypeNotes
idrequiredpathintegerThe record id.
When it fails
StatusCodeMeaning
404not_foundNo record with that id.
curl -X DELETE \
  'https://acme.nolapro.com/!/api/v2/teamprojectmembers/104' \
  -H 'Authorization: Bearer $NP_TOKEN'
Response 200
{
    "role": "manager"
}