Crea sobre tarsiflow con una API REST sencilla
Lee y actualiza clientes, leads, proyectos y tareas, y lleva facturas y propuestas a tus informes. Crea un token en tu espacio de trabajo y haz tu primera petición en un minuto.
- REST y JSON
- Tokens personales
- Acceso de lectura o escritura
Primeros pasos
-
1. Crear un token
En la app, abre el menú de tu cuenta y elige Tokens de API. Elige solo lectura o lectura y escritura.
-
2. Llama a la API
Envía peticiones a la URL base de abajo con tu token en la cabecera Authorization.
-
3. Guárdalo bien
Un token actúa en tu nombre dentro de un espacio de trabajo. Revócalo cuando quieras desde la misma página.
URL base
https://tarsiflow.com/api/v1
Autenticación
Cada petición necesita un token bearer. Los tokens de lectura pueden llamar a todos los endpoints GET. Los de escritura también pueden crear y actualizar registros.
curl https://tarsiflow.com/api/v1/me \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"
Convenciones
- Las peticiones y respuestas son JSON. Envía Content-Type: application/json cuando mandes datos.
- El dinero siempre es un número entero de céntimos con un código de moneda de tres letras aparte, así que 125000 con USD son 1.250,00 dólares.
- Las fechas usan YYYY-MM-DD. Las marcas de tiempo usan ISO 8601 en UTC.
- Las listas van paginadas. Usa page y per_page (hasta 100). Cada respuesta incluye links y meta con los totales.
- Las actualizaciones usan PATCH y solo cambian los campos que envías.
Errores y límites
| Estado | Significado |
|---|---|
| 401 | Token ausente, caducado o revocado. |
| 403 | El token es de solo lectura, o ya no perteneces a su espacio de trabajo. |
| 404 | El registro no existe en este espacio de trabajo. |
| 422 | La validación ha fallado. El objeto errors indica cada campo y qué corregir. |
| 429 | Demasiadas peticiones. El límite es de 120 peticiones por minuto y token. |
{
"message": "The name field is required.",
"errors": {
"name": [
"The name field is required."
]
}
}
Cuenta
A quién pertenece el token, el espacio de trabajo en el que funciona, sus miembros y las etapas del embudo.
-
GET
/meEl propietario del token, el espacio de trabajo y los permisos del token. -
GET
/membersPersonas del espacio de trabajo, para los ids de responsable y propietario. -
GET
/lead-stagesEtapas del embudo, para lead_stage_id.
Clientes
Todos los clientes del espacio de trabajo con su contacto principal.
-
GET
/clientsLista los clientes. Filtros: search, status, tag. -
POST
/clientsCrea un cliente. -
GET
/clients/{id}Obtiene un cliente. -
PATCH
/clients/{id}Actualiza un cliente. Envía solo los campos que cambies.
Campos que puedes enviar
- name
- string
- Obligatorio al crear.
- status
- string
- active, inactive, archived
- email, phone, website, address
- string
- Datos de contacto opcionales.
- currency
- string
- Código de tres letras, como USD. Por defecto, la moneda del espacio de trabajo.
- tags
- array
- Lista de etiquetas cortas.
Ejemplo
curl -X POST https://tarsiflow.com/api/v1/clients \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"name":"Brightline Dental","email":"[email protected]","tags":["healthcare"]}'
{
"data": {
"id": 42,
"name": "Brightline Dental",
"status": "active",
"email": "[email protected]",
"currency": "USD",
"tags": [
"healthcare"
],
"primary_contact": null
}
}
Leads
Oportunidades de tu embudo. Los valores van en céntimos.
-
GET
/leadsLista los leads. Filtros: stage_id, search. -
POST
/leadsCrea un lead. Entra en la primera etapa abierta salvo que indiques lead_stage_id. -
GET
/leads/{id}Obtiene un lead. -
PATCH
/leads/{id}Actualiza un lead, incluido moverlo a otra etapa.
Campos que puedes enviar
- name
- string
- Obligatorio al crear. El proyecto o la persona, por ejemplo Rediseño web.
- company, email, phone, source, notes
- string
- Datos opcionales.
- value_cents
- integer
- Valor estimado en céntimos. 250000 equivale a 2.500,00.
- expected_close_date
- date
- YYYY-MM-DD
- lead_stage_id, owner_id
- integer
- Ids de /lead-stages y /members.
Proyectos
Proyectos de clientes. Los proyectos nuevos reciben una primera lista de tareas automáticamente.
-
GET
/projectsLista los proyectos. Filtros: client_id, status. -
POST
/projectsCrea un proyecto para un cliente. -
GET
/projects/{id}Obtiene un proyecto con sus listas de tareas. -
PATCH
/projects/{id}Actualiza un proyecto.
Campos que puedes enviar
- client_id, name
- obligatorio
- El cliente al que pertenece y su nombre.
- status
- string
- planning, active, on_hold, completed, cancelled
- start_date, due_date
- date
- YYYY-MM-DD
- budget_cents
- integer
- Presupuesto en céntimos.
Tareas
Tareas dentro de proyectos o sueltas. Asignar una tarea avisa a la persona.
-
GET
/tasksLista las tareas. Filtros: project_id, assignee_id, status, due_before. -
POST
/tasksCrea una tarea. -
GET
/tasks/{id}Obtiene una tarea. -
PATCH
/tasks/{id}Actualiza una tarea. Poner status en done registra la hora de finalización.
Campos que puedes enviar
- title
- string
- Obligatorio al crear.
- project_id, task_list_id
- integer
- Opcional. Sin lista, la tarea va a la primera lista del proyecto.
- assignee_id
- integer
- Un id de /members.
- status
- string
- todo, in_progress, review, done
- priority
- string
- low, medium, high
- due_date
- date
- YYYY-MM-DD
Ejemplo
curl -X PATCH https://tarsiflow.com/api/v1/tasks/318 \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"status":"done"}'
{
"data": {
"id": 318,
"title": "Homepage wireframes",
"status": "done",
"priority": "high",
"completed_at": "2026-10-26T14:05:11+00:00"
}
}
Facturas
Solo lectura. El endpoint de una factura incluye sus líneas y pagos.
-
GET
/invoicesLista las facturas. Filtros: status, client_id. -
GET
/invoices/{id}Obtiene una factura con líneas, pagos e importe pendiente.
Propuestas
Solo lectura. El endpoint de una propuesta incluye sus líneas.
-
GET
/proposalsLista las propuestas. Filtros: status, client_id. -
GET
/proposals/{id}Obtiene una propuesta con sus líneas.