ProductOSDocs

Entity reference · v1

modules

MOD-NNNNNNtable modulessoft delete

Sub-product groupings (e.g. Feedback Inbox, Roadmap).

A module is a slice of a product (Feedback Inbox, Roadmap). It belongs to one product through product_id, and feedback and Work items point at it through their own module_id.

People and roles

Team members can hold a role on a module, the same way as on a product: Owner, Product Manager, Engineering Lead, Design Lead, Stakeholder, Contributor, or any other role up to 60 characters, one per person.

MethodPathBodyDoes
GET/api/v1/modules/{id}/links/membersThe people on the module, each with role.
POST/api/v1/modules/{id}/links/members{ "ids": [...], "extra": { "role": "Engineering Lead" } }Gives them that role, or updates it.
DELETE/api/v1/modules/{id}/links/members/{teamMemberId}Takes them off the module.

See Products entity for the rules, and code attached to a module.

Endpoints

GET/api/v1/modules
POST/api/v1/modules
GET/api/v1/modules/{id}
PATCH/api/v1/modules/{id}
DELETE/api/v1/modules/{id}
POST/api/v1/modules/{id}/restore
GET/api/v1/modules/{id}/links/personas
POST/api/v1/modules/{id}/links/personas
DELETE/api/v1/modules/{id}/links/personas/{targetId}
GET/api/v1/modules/{id}/links/members
POST/api/v1/modules/{id}/links/members
DELETE/api/v1/modules/{id}/links/members/{targetId}

Writable fields

* required on create. PATCH treats every field as optional.

FieldTypeConstraintsNotes
name*string
product_iduuid
descriptiontext
is_draftboolean
metadatajson

Listing & filtering

  • Pagination: ?limit=50&offset=0 · max limit 200
  • Default sort: ?sort=name&order=asc
  • Sortable fields: created_at · updated_at · name · id_number
  • Search (?q=): name, description
  • Filters: ?product_id= ?is_draft= , repeat any filter to OR multiple values
  • Trash: hidden by default; pass ?include_deleted=true
  • Expand: ?expand=personas,members

Examples

curlbash
curl 'https://productos.ca/api/v1/modules?limit=10' \
  -H "Authorization: Bearer $TOKEN"

Try it out

Paste a token and hit a real endpoint. The request goes from your browser straight to /api/v1/modules. The token is held in this page only for the request and is never stored.

Try it out

Issue tokens in Settings → API tokens. Token never leaves this page.

GET/api/v1/modules?limit=3

Generated from the API's entity configuration. This page is rebuilt on every deploy, so it always matches the live API.