## Get an objective task by ID `objectives.tasks.retrieve(id, **kwargs) -> ObjectiveTask` **get** `/v1/workspaces/{workspaceId}/objectives/{objectiveId}/tasks/{id}` Retrieves a task by ID from an objective ### Parameters - `workspace_id: String` - `objective_id: String` - `id: String` ### Returns - `class ObjectiveTask` ObjectiveTask represents a task within an objective, typically created and managed by an AI agent to track progress toward completing the objective. - `data: ObjectiveTaskData` - `completed: bool` Whether the task has been completed - `number: Integer` The sequential number of this task within the objective (auto-assigned, 1-based) - `task: String` Description of the task to be completed - `completed_at: Time` Timestamp when the task was marked as completed - `metadata: BareMetadata` BareMetadata contains the minimal metadata for a resource: the ID and an optional human-readable name. These are used for reference fields where the full metadata (account scoping, timestamps, labels, external IDs) is not needed — e.g., the tool references inside an agent variation spec or the tools assigned to an objective. Both fields are server-populated; clients provide IDs through sibling fields rather than by constructing a BareMetadata themselves. - `id: String` - `name: String` Human-readable name of the referenced resource, populated by the server on reads for convenience. Absent on references to resources that do not have a name (e.g., objective tasks). ### Example ```ruby require "cadenya" cadenya = Cadenya::Client.new(api_key: "My API Key") objective_task = cadenya.objectives.tasks.retrieve("id", workspace_id: "workspaceId", objective_id: "objectiveId") puts(objective_task) ``` #### Response ```json { "data": { "completed": true, "number": 0, "task": "task", "completedAt": "2019-12-27T18:11:19.117Z" }, "metadata": { "id": "id", "name": "name" } } ```