# Properties Properties are user defined key-value pairs used to label resources such as {class}`tket:pytket.circuit.Circuit`, {ref}`jobs` and {class}`tket:pytket.backends.backendresult.BackendResult`. This enables users to search through their resources using this custom defined metadata. There are four property value types: ```{eval-rst} .. list-table:: :widths: 100 100 :header-rows: 1 * - Property Type - Description * - String - Text value such as "Carbon" * - Boolean - True or False * - Float - Floating point number i.e. 0.237 * - Int - Integer value i.e. 56, 1024 ``` Most nexus API endpoints offer the ability to filter resources by property value. :::{note} Properties are currently scoped to {ref}`projects` and must be created before they are used. They can be created in the Nexus UI under the 'resource properties' tab within a project. ::: ## Auto Labelling If a job creates a resource, Nexus will set the same property from the job onto the resource it creates. For example, if an execute job was created with the property {code}`parameter1: 0.5`, the result would also have it. ```{image} ./images/property_inheritance.png :width: 500 ``` ## Required Properties Properties can be made non-optional (required) which ensures all project collaborators label their resources. If a user fails to set a value for a required property, the API will return with an error.