Contactos

Listar contactos

Devuelve los contactos (clientes y proveedores) visibles para la clave, paginados por cursor.

GET
/api/v1/contacts

Ejemplos de petición

curl https://app.filmo.io/api/v1/contacts \
  --header "Authorization: Bearer $FILMO_API_KEY"
{
  "data": [
    {
      "id": "contact_9f3a2b",
      "name": "Example contact",
      "contactType": "person",
      "role": "client",
      "status": "active",
      "nif": "B00000000",
      "commercialName": "Example commercial name",
      "position": "Example position",
      "contactNumber": "2026-0001",
      "emails": [
        {
          "id": "email_9f3a2b",
          "label": "Main",
          "email": "ana.garcia@example.com",
          "isPrimary": true
        }
      ],
      "billingEmail": "ana.garcia@example.com",
      "phoneNumbers": [
        {
          "id": "phone_number_9f3a2b",
          "label": "Main",
          "number": "+34 600 000 000",
          "countryCode": "+34",
          "isPrimary": true
        }
      ],
      "websites": [
        {
          "id": "website_9f3a2b",
          "label": "Main",
          "url": "https://example.com/resource"
        }
      ],
      "addresses": [
        {
          "id": "address_9f3a2b",
          "label": "Main",
          "addressLine1": "Calle de Ejemplo 12",
          "addressLine2": "Calle de Ejemplo 12",
          "city": "Madrid",
          "province": "Madrid",
          "postcode": "28001",
          "country": "ES",
          "isMain": true
        }
      ],
      "folder": "Example folder",
      "discountPercentage": 1,
      "preferredLanguage": "es-ES",
      "currency": "EUR",
      "paymentMethod": {
        "type": "bank_transfer",
        "customValue": "Example custom value"
      },
      "paymentDays": [
        1
      ],
      "expirationDays": 1,
      "subscribedToMarketing": true,
      "isAppUser": true,
      "customFields": {
        "example": "example"
      },
      "createdAt": "2026-09-01T08:00:00.000Z",
      "updatedAt": "2026-09-01T08:00:00.000Z"
    }
  ],
  "pagination": {
    "nextCursor": "eyJvIjoyMH0",
    "hasMore": true,
    "total": 1
  }
}

Generado a partir del esquema

Aislamiento heredado de la cuenta principal: una cuenta de facturación ve también los contactos de su cuenta principal.

Autorizaciones

Clave de API como Bearer, con el permiso de abajo. contacts:read

Parámetros de consulta

limitintegerpredeterminado:50

Tamaño de página (1-500). Por defecto es 50.

Límites: mín. 1, máx. 500

cursorstring

Cursor opaco de la página que se devuelve. Pasa el valor de pagination.nextCursor de la respuesta anterior; trátalo como opaco.

Límites: longitud máx. 200

createdOnstring

La fecha de creación del recurso cae en esta fecha. Una fecha sin hora (YYYY-MM-DD, interpretada en la zona horaria del negocio) o un instante ISO 8601 con desplazamiento.

Límites: patrón ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

createdAfterstring

La fecha de creación del recurso es posterior a esta fecha. Una fecha sin hora (YYYY-MM-DD, interpretada en la zona horaria del negocio) o un instante ISO 8601 con desplazamiento.

Límites: patrón ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

createdBeforestring

La fecha de creación del recurso es anterior a esta fecha. Una fecha sin hora (YYYY-MM-DD, interpretada en la zona horaria del negocio) o un instante ISO 8601 con desplazamiento.

Límites: patrón ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

createdFromstring

La fecha de creación del recurso es igual o posterior a esta fecha. Una fecha sin hora (YYYY-MM-DD, interpretada en la zona horaria del negocio) o un instante ISO 8601 con desplazamiento.

Límites: patrón ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

createdTostring

La fecha de creación del recurso es igual o anterior a esta fecha. Una fecha sin hora (YYYY-MM-DD, interpretada en la zona horaria del negocio) o un instante ISO 8601 con desplazamiento.

Límites: patrón ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

updatedOnstring

La fecha de última actualización del recurso cae en esta fecha. Una fecha sin hora (YYYY-MM-DD, interpretada en la zona horaria del negocio) o un instante ISO 8601 con desplazamiento.

Límites: patrón ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

updatedAfterstring

La fecha de última actualización del recurso es posterior a esta fecha. Una fecha sin hora (YYYY-MM-DD, interpretada en la zona horaria del negocio) o un instante ISO 8601 con desplazamiento.

Límites: patrón ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

updatedBeforestring

La fecha de última actualización del recurso es anterior a esta fecha. Una fecha sin hora (YYYY-MM-DD, interpretada en la zona horaria del negocio) o un instante ISO 8601 con desplazamiento.

Límites: patrón ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

updatedFromstring

La fecha de última actualización del recurso es igual o posterior a esta fecha. Una fecha sin hora (YYYY-MM-DD, interpretada en la zona horaria del negocio) o un instante ISO 8601 con desplazamiento.

Límites: patrón ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

updatedTostring

La fecha de última actualización del recurso es igual o anterior a esta fecha. Una fecha sin hora (YYYY-MM-DD, interpretada en la zona horaria del negocio) o un instante ISO 8601 con desplazamiento.

Límites: patrón ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

sortstring

Orden: hasta 3 campos separados por comas, cada uno con un "-" inicial para descendente (p. ej. "-updatedAt,name"). Campos ordenables: createdAt, updatedAt, name, contactType, role, status, email. Por defecto, "-createdAt". Los empates se resuelven por id, así que el orden es estable entre páginas, y un cursor queda ligado al orden con el que se emitió.

Límites: longitud máx. 200

typestring

Filtra por tipo de contacto: person (persona física) o company (empresa).

Opciones disponibles: person, company

rolestring

Filtra por rol del contacto: client, provider, lead, debtor, creditor, student, teacher o unspecified.

Opciones disponibles: client, provider, lead, debtor, creditor, student, teacher, unspecified

emailstring

Filtra por email: coincide con las direcciones de email del contacto.

Límites: longitud máx. 200

phonestring

Filtra por teléfono: coincide con los números de teléfono del contacto.

Límites: longitud máx. 200

isAppUserboolean

Filtra según si el contacto tiene acceso a la app: "true" devuelve solo los usuarios de la app, "false" solo los que no lo son. Omítelo para no filtrar.

includeTotalbooleanpredeterminado:false

Ponlo en true para incluir pagination.total, el número de resultados que coinciden con los filtros en todas las páginas. Desactivado por defecto.

Respuesta

application/json

Respuesta correcta.

Esquema de la respuesta: ContactDto

Sobre: ContactList. meta.warnings solo aparece cuando la operación está obsoleta.

Cabeceras: X-Request-Id · RateLimit-Limit · RateLimit-Remaining · RateLimit-Reset

dataobject[]

Mostrar atributos hijos
data.idstring

Identificador único del contacto.

data.namestring

Nombre del contacto (persona o empresa).

data.contactTypestring

Tipo de contacto: person (particular) o company (negocio).

Opciones disponibles: person, company

data.rolestring

Rol del contacto: client, provider, lead, debtor, creditor, student, teacher o unspecified.

Opciones disponibles: client, provider, lead, debtor, creditor, student, teacher, unspecified

data.statusstring

Estado del contacto: active (operativo), inactive (desactivado) o archived (cerrado, conservado como histórico).

Opciones disponibles: active, inactive, archived

data.nifstring | null

NIF/CIF o número de identificación fiscal; null si no se ha registrado.

data.commercialNamestring | null

Nombre comercial; null si coincide con el nombre o no consta.

data.positionstring | null

Cargo o puesto de la persona de contacto; null si no está registrado.

data.contactNumberstring | null

Número de contacto asignado por la cuenta (referencia interna); null si no consta.

data.emailsobject[]

Lista de direcciones de correo electrónico del contacto.

Mostrar atributos hijos
data.emails.idstring

Identificador interno del correo electrónico dentro del contacto.

data.emails.labelstring | null

Etiqueta descriptiva del email; null si no tiene.

data.emails.emailstring

Dirección de email.

data.emails.isPrimaryboolean

Si este es el email principal del contacto.

data.billingEmailstring | null

Email de facturación dedicado; null significa que se usa el email principal.

data.phoneNumbersobject[]

Lista de teléfonos del contacto.

Mostrar atributos hijos
data.phoneNumbers.idstring

Identificador interno del teléfono dentro del contacto.

data.phoneNumbers.labelstring | null

Etiqueta descriptiva del teléfono; null si no tiene.

data.phoneNumbers.numberstring

Número de teléfono.

data.phoneNumbers.countryCodestring | null

Prefijo telefónico internacional del país (p. ej. "+34"); null si no consta.

data.phoneNumbers.isPrimaryboolean

Si este es el teléfono principal del contacto.

data.websitesobject[]

Lista de sitios web del contacto.

Mostrar atributos hijos
data.websites.idstring

Identificador interno del sitio web dentro del contacto.

data.websites.labelstring | null

Etiqueta descriptiva del sitio web; null si no tiene.

data.websites.urlstring

URL del sitio web.

data.addressesobject[]

Lista de direcciones del contacto.

Mostrar atributos hijos
data.addresses.idstring

Identificador interno de la dirección dentro del contacto.

data.addresses.labelstring | null

Etiqueta descriptiva de la dirección; null si no tiene.

data.addresses.addressLine1string | null

Primera línea de la dirección; null si no consta.

data.addresses.addressLine2string | null

Segunda línea de la dirección; null si no consta.

data.addresses.citystring | null

Ciudad; null si no consta.

data.addresses.provincestring | null

Provincia o región; null si no se ha registrado.

data.addresses.postcodestring | null

Código postal; null si no se ha registrado.

data.addresses.countrystring | null

País; null si no consta.

data.addresses.isMainboolean

Si esta es la dirección principal del contacto.

data.folderstring | null

Carpeta o agrupación organizativa; null si el contacto no está clasificado.

data.discountPercentagenumber | null

Porcentaje de descuento general del contacto (0-100); null si no hay descuento configurado.

data.preferredLanguagestring | null

Idioma preferido del contacto; null si no se ha registrado.

data.currencystring | null

Moneda por defecto del contacto como código ISO 4217; null si no consta.

data.paymentMethodobject | null

Método de pago preferido del contacto; null si no está configurado.

Mostrar atributos hijos
data.paymentMethod.typestring

Tipo de método de pago: bank_transfer, card, cash, sepa_direct_debit u other.

Opciones disponibles: bank_transfer, card, cash, other, sepa_direct_debit

data.paymentMethod.customValuestring | null

Detalle en texto libre cuando el tipo es "other" (por ejemplo, un método registrado antes de configurarse); null en caso contrario.

data.paymentDaysinteger[] | null

Días del mes en que el contacto hace pagos; null si no está configurado.

data.expirationDaysinteger | null

Días de vencimiento por defecto de las facturas del contacto; null si no está configurado.

data.subscribedToMarketingboolean

Si el contacto está suscrito a comunicaciones de marketing.

data.isAppUserboolean

Si el contacto tiene acceso a la app.

data.customFieldsobject<string, any>

Valores de los campos personalizados por identificador de campo personalizado; las definiciones están en /api/v1/custom-fields.

data.createdAtstring<date-time>

Fecha de creación en ISO 8601 con desplazamiento.

data.updatedAtstring<date-time>

Fecha de la última actualización en ISO 8601 con desplazamiento.

paginationobject

Metadatos de paginación por cursor opaco.

Mostrar atributos hijos
pagination.nextCursorstring | null

Cursor opaco de la página siguiente; null cuando no hay más resultados. Pásalo como cursor en la siguiente petición.

pagination.hasMoreboolean

Si existen más resultados después de esta página.

pagination.totalinteger

Número de resultados que coinciden con los filtros en todas las páginas. Solo aparece cuando la petición establece includeTotal=true.

Límites: mín. 0

metaobject

Información adicional sobre la respuesta.

Mostrar atributos hijos
meta.warningsobject[]

Avisos del ciclo de vida; solo aparecen cuando la operación está obsoleta.

Mostrar atributos hijos
meta.warnings.codestring

Código de aviso estable.

Opciones disponibles: deprecated

meta.warnings.messagestring

Para personas: qué está obsoleto, hasta cuándo y qué usar.

meta.warnings.sunsetstring

Día (YYYY-MM-DD) en que la operación deja de estar disponible.

meta.warnings.replacementstring | null

operationId de la operación que hay que usar en su lugar, o null si no hay ninguna.

Errores

EstadoCódigosSignificado
400validation_errorConsulta o cuerpo mal formados. errors[] enumera cada campo erróneo con su código estable.

401, 403, 429, 500 los puede devolver cualquier operación. Errores

Obsolescencia

Esta operación no está obsoleta. Las obsolescencias se anuncian con la cabecera Deprecation y una fecha de retirada. Política de versiones

  • CRM

    Contacto

    El contacto, tal como lo devuelve la API.

¿Te ha resultado útil esta página?