CRM

Listar oportunidades

Devuelve las oportunidades de venta con su embudo, su etapa y su importe ponderado por la probabilidad de la etapa.

GET
/api/v1/crm/opportunities

Ejemplos de petición

curl https://app.filmo.io/api/v1/crm/opportunities \
  --header "Authorization: Bearer $FILMO_API_KEY"
{
  "data": [
    {
      "opportunityId": "opportunity_9f3a2b",
      "identifier": "Example identifier",
      "name": "Example opportunity",
      "status": "open",
      "amount": "120.00",
      "currency": "EUR",
      "pipelineId": "pipeline_9f3a2b",
      "pipelineName": "Example pipeline name",
      "stageId": "stage_9f3a2b",
      "stageName": "Example stage name",
      "stageType": "open",
      "effectiveProbability": 1,
      "weightedAmount": "120.00",
      "daysInStage": 1,
      "expectedCloseDate": "2026-09-01T10:00:00+02:00",
      "contactName": "Example contact name",
      "companyName": "Example company name",
      "ownerName": "Example owner name",
      "source": "inbound_email",
      "createdAt": "2026-09-01T10:00:00+02:00",
      "updatedAt": "2026-09-01T10:00:00+02:00"
    }
  ],
  "pagination": {
    "nextCursor": "eyJvIjoyMH0",
    "hasMore": true,
    "total": 1
  }
}

Generado a partir del esquema

Por defecto solo las abiertas: pasa status=won, lost o all para el resto. Pagina con un cursor propio del servicio de CRM.

Autorizaciones

Clave de API como Bearer, con el permiso de abajo. crm: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

sortstring

Orden: hasta 3 campos separados por comas, cada uno con un "-" inicial para descendente (p. ej. "-updatedAt,name"). Campos ordenables: createdAt, updatedAt, name, identifier, status, amount, expectedCloseDate. 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

pipelineIdstring

Devuelve solo las oportunidades de este embudo.

stageIdstring

Devuelve solo las oportunidades de esta etapa.

statusstring

Estado comercial: open (el valor por defecto), won, lost o all.

Opciones disponibles: open, won, lost, all

contactIdstring

Devuelve solo las oportunidades de este contacto.

qstring

Búsqueda de texto libre en el nombre y el identificador.

expectedCloseFromstring

Fecha de cierre prevista desde esta fecha (ISO 8601).

expectedCloseTostring

Fecha de cierre prevista hasta esta fecha (ISO 8601).

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: OpportunityDto

Sobre: OpportunityList. 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.opportunityIdstring

data.identifierstring

data.namestring

data.statusstring

Opciones disponibles: open, won, lost

data.amountstring

data.currencystring

data.pipelineIdstring

data.pipelineNamestring

data.stageIdstring

data.stageNamestring

data.stageTypestring

Opciones disponibles: open, won, lost

data.effectiveProbabilitynumber

data.weightedAmountstring

data.daysInStageinteger

data.expectedCloseDatestring<date-time>

data.contactNamestring

data.companyNamestring

data.ownerNamestring

data.sourcestring

Opciones disponibles: inbound_email, website_form, referral, cold_outreach, event, social, existing_customer, partner, other

data.createdAtstring<date-time>

data.updatedAtstring<date-time>

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.
402addon_requiredEl plan de la cuenta no incluye el add-on que necesita esta operación; requiredAddon lo nombra.

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

    Oportunidad

    Oportunidad del CRM: en qué embudo y etapa está, por cuánto, con quién y con qué probabilidad.