A program is a 'project type', or a configuration of project that is unique to a particular vendor. All projects created in Scope are tied to one of the vendor's programs. Programs determine various aspects of the projects created within that program, such as the set of requirements, and whether or not the project requires the customer to cover the cost.

Programs have the following fields:

  • id: A unique id for the program.
  • name: A locally unique label (i.e. - within a vendor) of a program.
  • requirements: An array of requirement objects that are associated with the particular program.

Note: Not all requirements of a program are actually required to create a project. See the Create Project endpoint to learn more.


Requirements are questions we ask when a project is created, and the requirements that are associated with a program are essentially the default set of requirements for a project created within that program.

See below for an example of a requirement object:

  "id": "361c2bea-971c-41c0-a7e7-81f8a9ad0063",
  "name": "Customer Budget",
  "type": "TEXT",
  "placeholder": null,
  "options": [],
  "extra": null

The fields for a requirement are as follows:

  • id: A unique id for the requirement.
  • name: A label for the requirement. (i.e. what the question looks like in the Scope app)
  • type: The requirement type. This is an enum with values such as TEXT, CURRENCY, DATE_RANGE, RADIO, and mroe.
  • placeholder: The placeholder in the requirement input within the Scope app.
  • options: An array to place options for specific requirements type's, such as RADIO (radio buttons).
  • extra: A miscellaneous field to add in other attributes of the requirement, such as rules.