# Tareas

Da a tu software y a tus agentes de IA acceso a la ejecución en el mundo real: solicitudes estructuradas de trabajo físico, realizadas por la red de proveedores de Ryde y devueltas con evidencia. Una Tarea es un recurso propio con su propio ciclo de vida; cómo Ryde la asigna internamente no forma parte del contrato y puede cambiar.

Da a tu software y a tus agentes de IA acceso a la ejecución en el mundo real: solicitudes estructuradas de trabajo físico, realizadas por la red de proveedores de Ryde y devueltas con evidencia. Una Tarea es un recurso propio con su propio ciclo de vida; cómo Ryde la asigna internamente no forma parte del contrato y puede cambiar.

## Ciclo de vida

```
  QUOTED
     |
  CREATED
     |
  PROVIDER ASSIGNED     (matched on skill, territory and availability)
     |
  STARTED
     |
  EVIDENCE COLLECTED    (photos with content hashes, capture GPS,
     |                   device timestamps, checklist answers)
  COMPLETED             (or CANCELLED, before work begins)
```

## Operaciones

### `GET /v1/tasks/types`

Los tipos de tarea que este mercado puede ejecutar realmente, con la evidencia que recoge cada uno. Solo se listan los tipos que Ryde puede cubrir con personal.

- operation: `list_task_types`
- scope: `tasks.read`
- entitlement: none
- creates a transaction: no
- idempotency key: not required
- MCP tool: `list_task_types`
- status: planned

```bash
curl -s 'https://sandbox-api.ryde.us.com/v1/tasks/types' \
  -H "Authorization: Bearer $RYDE_ACCESS_TOKEN"
```

### `POST /v1/tasks/quote`

Cotiza una tarea y confirma que podría encontrarse un proveedor calificado antes de comprometerse.

- operation: `quote_task`
- scope: `tasks.read`
- entitlement: none
- creates a transaction: no
- idempotency key: not required
- MCP tool: `quote_task`
- status: planned

```bash
curl -sX POST 'https://sandbox-api.ryde.us.com/v1/tasks/quote' \
  -H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{ … }'
```

### `POST /v1/tasks`

Despacha trabajo del mundo real con requisitos estructurados y reglas de evidencia.

- operation: `create_task`
- scope: `tasks.create`
- entitlement: ryde_one
- creates a transaction: yes
- idempotency key: required
- MCP tool: `create_task`
- status: planned

```bash
curl -sX POST 'https://sandbox-api.ryde.us.com/v1/tasks' \
  -H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H 'Content-Type: application/json' \
  -d '{ … }'
```

### `GET /v1/tasks/{task_id}`

Estado de la tarea, el proveedor asignado y la evidencia recogida hasta el momento.

- operation: `get_task`
- scope: `tasks.read`
- entitlement: none
- creates a transaction: no
- idempotency key: not required
- MCP tool: `get_task`
- status: planned

```bash
curl -s 'https://sandbox-api.ryde.us.com/v1/tasks/$task_id' \
  -H "Authorization: Bearer $RYDE_ACCESS_TOKEN"
```

### `GET /v1/tasks/{task_id}/evidence`

La evidencia recogida para una tarea: fotos con sus hashes de contenido, GPS de captura, marcas de tiempo del dispositivo y las respuestas de cualquier lista de verificación.

- operation: `get_task_evidence`
- scope: `tasks.read`
- entitlement: none
- creates a transaction: no
- idempotency key: not required
- MCP tool: `get_task_evidence`
- status: planned

```bash
curl -s 'https://sandbox-api.ryde.us.com/v1/tasks/$task_id/evidence' \
  -H "Authorization: Bearer $RYDE_ACCESS_TOKEN"
```

### `POST /v1/tasks/{task_id}/cancel`

Cancela una tarea que no ha comenzado.

- operation: `cancel_task`
- scope: `tasks.read`
- entitlement: none
- creates a transaction: no
- idempotency key: supported
- MCP tool: `cancel_task`
- status: planned

```bash
curl -sX POST 'https://sandbox-api.ryde.us.com/v1/tasks/$task_id/cancel' \
  -H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{ … }'
```
