## Get task field definitions `client.Task.Definitions(ctx) (*TaskDefinitionsResponse, error)` **get** `/v1/tasks/definitions` Returns the schema for the field and relationship definitions available on tasks. Useful for understanding the shape of task data before creating or updating records. See [Fields and relationships](/using-the-api/fields-and-relationships/) for more details. **[Required scope](/using-the-api/scopes/):** `tasks:read` **[Rate limit category](/using-the-api/rate-limits/):** Read ### Returns - `type TaskDefinitionsResponse struct{…}` - `FieldDefinitions map[string, TaskDefinitionsResponseFieldDefinition]` Map of field keys to their definitions, including both system and custom fields. - `Description string` Description of the field, or null. - `Label string` Human-readable display name of the field. - `TypeConfiguration TaskDefinitionsResponseFieldDefinitionTypeConfiguration` Type-specific configuration (e.g. select options, currency code). - `Currency string` ISO 4217 3-letter currency code. - `HandleService string` Social platform associated with this handle field. - `const TaskDefinitionsResponseFieldDefinitionTypeConfigurationHandleServiceTwitter TaskDefinitionsResponseFieldDefinitionTypeConfigurationHandleService = "TWITTER"` - `const TaskDefinitionsResponseFieldDefinitionTypeConfigurationHandleServiceLinkedin TaskDefinitionsResponseFieldDefinitionTypeConfigurationHandleService = "LINKEDIN"` - `const TaskDefinitionsResponseFieldDefinitionTypeConfigurationHandleServiceFacebook TaskDefinitionsResponseFieldDefinitionTypeConfigurationHandleService = "FACEBOOK"` - `const TaskDefinitionsResponseFieldDefinitionTypeConfigurationHandleServiceInstagram TaskDefinitionsResponseFieldDefinitionTypeConfigurationHandleService = "INSTAGRAM"` - `MultipleValues bool` Whether this field accepts multiple values. - `Options []TaskDefinitionsResponseFieldDefinitionTypeConfigurationOption` Available options for select fields. - `ID string` Unique identifier of the select option. - `Label string` Human-readable display name of the option. - `Description string` Description of the option, or null. - `Unique bool` Whether values for this field must be unique. - `ValueType string` Data type of the field. - `const TaskDefinitionsResponseFieldDefinitionValueTypeAddress TaskDefinitionsResponseFieldDefinitionValueType = "ADDRESS"` - `const TaskDefinitionsResponseFieldDefinitionValueTypeCheckbox TaskDefinitionsResponseFieldDefinitionValueType = "CHECKBOX"` - `const TaskDefinitionsResponseFieldDefinitionValueTypeCurrency TaskDefinitionsResponseFieldDefinitionValueType = "CURRENCY"` - `const TaskDefinitionsResponseFieldDefinitionValueTypeDatetime TaskDefinitionsResponseFieldDefinitionValueType = "DATETIME"` - `const TaskDefinitionsResponseFieldDefinitionValueTypeEmail TaskDefinitionsResponseFieldDefinitionValueType = "EMAIL"` - `const TaskDefinitionsResponseFieldDefinitionValueTypeFullName TaskDefinitionsResponseFieldDefinitionValueType = "FULL_NAME"` - `const TaskDefinitionsResponseFieldDefinitionValueTypeMarkdown TaskDefinitionsResponseFieldDefinitionValueType = "MARKDOWN"` - `const TaskDefinitionsResponseFieldDefinitionValueTypeMultiSelect TaskDefinitionsResponseFieldDefinitionValueType = "MULTI_SELECT"` - `const TaskDefinitionsResponseFieldDefinitionValueTypeNumber TaskDefinitionsResponseFieldDefinitionValueType = "NUMBER"` - `const TaskDefinitionsResponseFieldDefinitionValueTypeSingleSelect TaskDefinitionsResponseFieldDefinitionValueType = "SINGLE_SELECT"` - `const TaskDefinitionsResponseFieldDefinitionValueTypeSocialHandle TaskDefinitionsResponseFieldDefinitionValueType = "SOCIAL_HANDLE"` - `const TaskDefinitionsResponseFieldDefinitionValueTypeTelephone TaskDefinitionsResponseFieldDefinitionValueType = "TELEPHONE"` - `const TaskDefinitionsResponseFieldDefinitionValueTypeText TaskDefinitionsResponseFieldDefinitionValueType = "TEXT"` - `const TaskDefinitionsResponseFieldDefinitionValueTypeURL TaskDefinitionsResponseFieldDefinitionValueType = "URL"` - `ID string` Unique identifier of the field definition. - `ReadOnly bool` `true` for fields that are not writable via the API (e.g. AI-generated summaries). `false` or absent for writable fields. - `ObjectType string` The object type these definitions belong to (e.g. `account`). - `RelationshipDefinitions map[string, TaskDefinitionsResponseRelationshipDefinition]` Map of relationship keys to their definitions. - `Cardinality string` Whether this is a `has_one` or `has_many` relationship. - `const TaskDefinitionsResponseRelationshipDefinitionCardinalityHasOne TaskDefinitionsResponseRelationshipDefinitionCardinality = "HAS_ONE"` - `const TaskDefinitionsResponseRelationshipDefinitionCardinalityHasMany TaskDefinitionsResponseRelationshipDefinitionCardinality = "HAS_MANY"` - `Description string` Description of the relationship, or null. - `Label string` Human-readable display name of the relationship. - `ObjectType string` The type of the related object (e.g. `account`, `contact`). - `ID string` Unique identifier of the relationship definition. ### Example ```go package main import ( "context" "fmt" "github.com/Lightfld/lightfield-go" "github.com/Lightfld/lightfield-go/option" ) func main() { client := githubcomlightfldlightfieldgo.NewClient( option.WithAPIKey("My API Key"), ) taskDefinitionsResponse, err := client.Task.Definitions(context.TODO()) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", taskDefinitionsResponse.FieldDefinitions) } ``` #### Response ```json { "fieldDefinitions": { "foo": { "description": "description", "label": "label", "typeConfiguration": { "currency": "currency", "handleService": "TWITTER", "multipleValues": true, "options": [ { "id": "id", "label": "label", "description": "description" } ], "unique": true }, "valueType": "ADDRESS", "id": "id", "readOnly": true } }, "objectType": "objectType", "relationshipDefinitions": { "foo": { "cardinality": "HAS_ONE", "description": "description", "label": "label", "objectType": "objectType", "id": "id" } } } ```