> For the complete documentation index, see [llms.txt](https://timetackle.gitbook.io/tackle/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://timetackle.gitbook.io/tackle/api-categories/properties.md).

# Properties

## Create new properties

> Creates primary and secondary properties.

```json
{"openapi":"3.0.3","info":{"title":"Tackle API","version":"1.0.0"},"servers":[{"url":"https://api.timetackle.com/external-api/v1"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"X-Tackle-Api-Key"}},"schemas":{"PropertiesRequest":{"type":"object","properties":{"primary":{"type":"array","items":{"$ref":"#/components/schemas/PrimaryProperty"},"description":"Primary properties can only be nested to a depth of 1."},"secondary":{"type":"array","items":{"$ref":"#/components/schemas/SecondaryProperty"},"description":"Secondary properties can only support 1-level nesting."}}},"PrimaryProperty":{"type":"object","required":["name"],"properties":{"name":{"type":"string","uniqueItems":true,"description":"Name must be unique at each level and cannot contain ':' or ','."},"color":{"$ref":"#/components/schemas/Color"},"children":{"type":"array","items":{"$ref":"#/components/schemas/PrimaryChildProperty"},"nullable":true,"description":"Children can only be nested to a depth of 1."}}},"Color":{"type":"string","enum":["Tomato","Flamingo","Tangerine","Banana","Sage","Basil","Peacock","Blueberry","Lavender","Grape","Graphite"]},"PrimaryChildProperty":{"type":"object","required":["name"],"properties":{"name":{"type":"string","uniqueItems":true},"color":{"$ref":"#/components/schemas/Color"}}},"SecondaryProperty":{"type":"object","required":["name"],"properties":{"name":{"type":"string","uniqueItems":true,"description":"Name must be unique at each level and cannot contain ':' or ','."},"color":{"$ref":"#/components/schemas/Color"},"variety":{"$ref":"#/components/schemas/Variety","nullable":true},"children":{"type":"array","items":{"$ref":"#/components/schemas/SecondaryChildProperty"},"nullable":true,"description":"Children can only be nested to a depth of 1."}}},"Variety":{"type":"string","enum":["MULTI_SELECT","NUMBER","RATING","SINGLE_SELECT","CHECKBOX","TEXT"],"nullable":true},"SecondaryChildProperty":{"type":"object","required":["name"],"properties":{"name":{"type":"string","uniqueItems":true},"color":{"$ref":"#/components/schemas/Color"}}},"PropertiesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","properties":{"primary":{"type":"array","items":{"$ref":"#/components/schemas/PrimaryPropertyWithId"}},"secondary":{"type":"array","items":{"$ref":"#/components/schemas/SecondaryPropertyWithId"}}}},"error":{"type":"object","nullable":true}}},"PrimaryPropertyWithId":{"allOf":[{"$ref":"#/components/schemas/PrimaryProperty"},{"type":"object","properties":{"id":{"type":"string"},"children":{"type":"array","items":{"$ref":"#/components/schemas/PrimaryChildPropertyWithId"},"nullable":true}}}]},"PrimaryChildPropertyWithId":{"allOf":[{"$ref":"#/components/schemas/PrimaryChildProperty"},{"type":"object","properties":{"id":{"type":"string"}}}]},"SecondaryPropertyWithId":{"allOf":[{"$ref":"#/components/schemas/SecondaryProperty"},{"type":"object","properties":{"id":{"type":"string"},"children":{"type":"array","items":{"$ref":"#/components/schemas/SecondaryChildPropertyWithId"},"nullable":true}}}]},"SecondaryChildPropertyWithId":{"allOf":[{"$ref":"#/components/schemas/SecondaryChildProperty"},{"type":"object","properties":{"id":{"type":"string"}}}]}}},"paths":{"/properties/create":{"post":{"summary":"Create new properties","description":"Creates primary and secondary properties.","operationId":"createProperties","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertiesRequest"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertiesResponse"}}}}}}}}}
```

## Get list of properties

> Retrieves all primary and secondary properties.

```json
{"openapi":"3.0.3","info":{"title":"Tackle API","version":"1.0.0"},"servers":[{"url":"https://api.timetackle.com/external-api/v1"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"X-Tackle-Api-Key"}},"schemas":{"PropertiesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","properties":{"primary":{"type":"array","items":{"$ref":"#/components/schemas/PrimaryPropertyWithId"}},"secondary":{"type":"array","items":{"$ref":"#/components/schemas/SecondaryPropertyWithId"}}}},"error":{"type":"object","nullable":true}}},"PrimaryPropertyWithId":{"allOf":[{"$ref":"#/components/schemas/PrimaryProperty"},{"type":"object","properties":{"id":{"type":"string"},"children":{"type":"array","items":{"$ref":"#/components/schemas/PrimaryChildPropertyWithId"},"nullable":true}}}]},"PrimaryProperty":{"type":"object","required":["name"],"properties":{"name":{"type":"string","uniqueItems":true,"description":"Name must be unique at each level and cannot contain ':' or ','."},"color":{"$ref":"#/components/schemas/Color"},"children":{"type":"array","items":{"$ref":"#/components/schemas/PrimaryChildProperty"},"nullable":true,"description":"Children can only be nested to a depth of 1."}}},"Color":{"type":"string","enum":["Tomato","Flamingo","Tangerine","Banana","Sage","Basil","Peacock","Blueberry","Lavender","Grape","Graphite"]},"PrimaryChildProperty":{"type":"object","required":["name"],"properties":{"name":{"type":"string","uniqueItems":true},"color":{"$ref":"#/components/schemas/Color"}}},"PrimaryChildPropertyWithId":{"allOf":[{"$ref":"#/components/schemas/PrimaryChildProperty"},{"type":"object","properties":{"id":{"type":"string"}}}]},"SecondaryPropertyWithId":{"allOf":[{"$ref":"#/components/schemas/SecondaryProperty"},{"type":"object","properties":{"id":{"type":"string"},"children":{"type":"array","items":{"$ref":"#/components/schemas/SecondaryChildPropertyWithId"},"nullable":true}}}]},"SecondaryProperty":{"type":"object","required":["name"],"properties":{"name":{"type":"string","uniqueItems":true,"description":"Name must be unique at each level and cannot contain ':' or ','."},"color":{"$ref":"#/components/schemas/Color"},"variety":{"$ref":"#/components/schemas/Variety","nullable":true},"children":{"type":"array","items":{"$ref":"#/components/schemas/SecondaryChildProperty"},"nullable":true,"description":"Children can only be nested to a depth of 1."}}},"Variety":{"type":"string","enum":["MULTI_SELECT","NUMBER","RATING","SINGLE_SELECT","CHECKBOX","TEXT"],"nullable":true},"SecondaryChildProperty":{"type":"object","required":["name"],"properties":{"name":{"type":"string","uniqueItems":true},"color":{"$ref":"#/components/schemas/Color"}}},"SecondaryChildPropertyWithId":{"allOf":[{"$ref":"#/components/schemas/SecondaryChildProperty"},{"type":"object","properties":{"id":{"type":"string"}}}]}}},"paths":{"/properties":{"get":{"summary":"Get list of properties","description":"Retrieves all primary and secondary properties.","operationId":"getProperties","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertiesResponse"}}}}}}}}}
```

## Update a property

> Updates a specific property by ID.

```json
{"openapi":"3.0.3","info":{"title":"Tackle API","version":"1.0.0"},"servers":[{"url":"https://api.timetackle.com/external-api/v1"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"X-Tackle-Api-Key"}},"schemas":{"Color":{"type":"string","enum":["Tomato","Flamingo","Tangerine","Banana","Sage","Basil","Peacock","Blueberry","Lavender","Grape","Graphite"]},"SuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string","nullable":true}}}}},"paths":{"/property/{id}/update":{"post":{"summary":"Update a property","description":"Updates a specific property by ID.","operationId":"updateProperty","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"color":{"$ref":"#/components/schemas/Color"}}}}}},"responses":{"200":{"description":"Successful update","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}}}}}}}
```

## Delete a property

> Deletes a specific property by ID.

```json
{"openapi":"3.0.3","info":{"title":"Tackle API","version":"1.0.0"},"servers":[{"url":"https://api.timetackle.com/external-api/v1"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"X-Tackle-Api-Key"}},"schemas":{"SuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string","nullable":true}}}}},"paths":{"/property/{id}/delete":{"post":{"summary":"Delete a property","description":"Deletes a specific property by ID.","operationId":"deleteProperty","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful deletion","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}}}}}}}
```
