Saltar al contenido
Iniciar sesión

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. 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. 2. Llama a la API

    Envía peticiones a la URL base de abajo con tu token en la cabecera Authorization.

  3. 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

EstadoSignificado
401Token ausente, caducado o revocado.
403El token es de solo lectura, o ya no perteneces a su espacio de trabajo.
404El registro no existe en este espacio de trabajo.
422La validación ha fallado. El objeto errors indica cada campo y qué corregir.
429Demasiadas 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 /me El propietario del token, el espacio de trabajo y los permisos del token.
  • GET /members Personas del espacio de trabajo, para los ids de responsable y propietario.
  • GET /lead-stages Etapas del embudo, para lead_stage_id.

Clientes

Todos los clientes del espacio de trabajo con su contacto principal.

  • GET /clients Lista los clientes. Filtros: search, status, tag.
  • POST /clients Crea 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 /leads Lista los leads. Filtros: stage_id, search.
  • POST /leads Crea 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 /projects Lista los proyectos. Filtros: client_id, status.
  • POST /projects Crea 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 /tasks Lista las tareas. Filtros: project_id, assignee_id, status, due_before.
  • POST /tasks Crea 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 /invoices Lista 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 /proposals Lista las propuestas. Filtros: status, client_id.
  • GET /proposals/{id} Obtiene una propuesta con sus líneas.

Tu privacidad, tu decisión

Usamos cookies esenciales para que este sitio funcione y mantener tu sesión. Con tu permiso, también queremos usar cookies opcionales para entender cómo se usa el sitio. Lee nuestra política de cookies.