YBOT · Partner Data API · v1

EN

La API de Social Listening de Vídeo

Consulta el análisis propio de YBOT del vídeo público en YouTube, TikTok e Instagram como JSON de solo lectura — cuota de voz competitiva, alcance, sentimiento, temas e insights de creadores. Datos propios y derivados de YBOT; los mismos números que muestra el dashboard de YBOT. Alojada en la UE, pensada para partners y sus agentes.

BASE https://partners.yourbrandontime.com AUTH X-API-Key FORMAT JSON · read-only HOSTED EU · Scaleway

01 Visión general

La YBOT Partner Data API sirve el dataset propio de social listening de vídeo de YBOT — las menciones de marca y producto que YBOT detecta y analiza en vídeo disponible públicamente en YouTube, TikTok e Instagram — como un pequeño conjunto de operaciones JSON de solo lectura. Recibes los insights derivados de YBOT, no los datos de las plataformas. Tus propios sistemas, o un agente de IA que use las operaciones como tools, la llaman directamente; nadie tiene que abrir un dashboard.

Todo vive bajo /v1, acepta y devuelve JSON, y está protegido por una API key con el scope data:search. La salida está siempre agregada y filtrada por lista de permitidos: los datos personales — nombres, citas literales, fechas de nacimiento — nunca se devuelven.

Qué es esta API — y qué no es. Cada cifra es análisis propio y propietario de YBOT sobre vídeo disponible públicamente. Esta API no revende, redistribuye ni proporciona acceso a datos, contenido o APIs de YouTube, TikTok o Instagram — los nombres de las plataformas identifican únicamente dónde se observó el contenido público. Las métricas son señales medidas por YBOT y agregados derivados, proporcionados bajo los términos de servicio de YBOT. YBOT es un servicio independiente, no afiliado a esas plataformas ni respaldado o patrocinado por ellas.

POST /v1/aggregate

Agrupa por una dimensión, clasifica por una métrica.

POST /v1/search

Documentos de ejemplo, con lista de permitidos y tope.

POST /v1/creators

Clasifica creadores con demografía agregada.

POST /v1/co-mentions

Vídeos/creadores que mencionan N marcas juntas.

POST /v1/sector

Cuota de voz competitiva a lo largo del tiempo.

GET /v1/schema

Esquema autodescriptivo de cada operación.

02 Inicio rápido

Tres pasos hasta tu primer resultado de cuota de voz competitiva.

Consigue una API key

Pide a tu contacto en YBOT una key con scope data:search. Lleva asociados el límite de peticiones y la cuota mensual de tu plan.

Llama a una operación

Envía un POST con JSON a cualquier endpoint /v1 con tu key en la cabecera X-API-Key.

Lee el JSON

Cada respuesta es JSON agregado y filtrado por lista de permitidos — llévalo directamente a tu modelo, dashboard o agente.

curl · tu primera petición
curl -X POST https://partners.yourbrandontime.com/v1/sector \
  -H "X-API-Key: pk_live_your_key_here" -H "Content-Type: application/json" \
  -d '{ "brands": [ {"label":"Repsol","terms":["Repsol"]},
                {"label":"Iberdrola","terms":["Iberdrola"]} ],
       "from_date":"2026-01-01", "to_date":"2026-06-30" }'

03 Autenticación

Envía tu key en la cabecera X-API-Key en cada petición. Las keys llevan un scope y un plan; el plan fija un límite de peticiones por ventana fija y una cuota mensual de peticiones. Una key ausente o sin el scope adecuado se rechaza antes de ejecutar ninguna consulta.

curl · petición autenticada
curl https://partners.yourbrandontime.com/v1/schema \
  -H "X-API-Key: pk_live_your_key_here"

Algunas keys son access_level: "raw" (conjuntos de resultados de search más grandes); la mayoría son aggregate (ejemplos con tope de 10).

04 Modelo de datos

Tres índices respaldan todas las operaciones. Filtras, agrupas y clasificas sobre sus campos declarados; una consulta que nombre un campo fuera de la lista de permitidos se rechaza. La salida es siempre un subconjunto depurado.

siv_business_ideas

Menciones de marca y producto que YBOT extrae con un LLM de vídeo disponible públicamente — el dataset analítico principal de YBOT (sentimiento, marcas, componentes, temas, oportunidades).

Filtro
brand_namecomponentstopicscategoryplatformsentimentchannel_nameupload_date
Agrupar por
brand_namecategorycomponentschannel_nameplatformsentimentvideo_id
Métricas
sentiment_scoreestimated_value_usd

siv_content_creator

Perfiles de creador/canal: tamaño de audiencia, engagement, nichos y demografía de audiencia agregada (género/edad/país/idioma). Sin PII a nivel individual.

Filtro
platformcountrycategoriesdominant_genderdominant_age_rangesubscriber_countengagement_rate_viewers
Agrupar por
platformcountrycategoriesdominant_genderdominant_age_range
Métricas
subscriber_countview_countengagement_rate_viewersaudience_sentiment

siv_info

El catálogo de referencia de vídeos de YBOT — las señales de alcance y engagement que YBOT registra por vídeo (views, likes, comentarios, duración, tags), usadas para ponderar el alcance. La marca y el sentimiento viven en siv_business_ideas.

Filtro
channel_nameplatformcategorytagsvideo_idupload_date
Agrupar por
channel_nameplatformcategorytags
Métricas
viewslikescommentsduration

Tipos de filtro: term (exacto), range (numérico {gte,lte}), date_range (fechas ISO {gte,lte}). Las métricas combinan un tipo — count · sum · avg · min · max — con un campo de métrica.

05 aggregate

La primitiva central para «preguntas abiertas»: agrupa un índice por una dimensión y clasifica los buckets por una métrica. «¿Qué creadores hablan más de retinol?» → agrupa siv_business_ideas por channel_name, filtra components: "retinol", cuenta.

POST/v1/aggregatescope: data:search
CampoTipoDescripción
indexstringobligatorioUno de los tres índices.
group_bystringobligatorioUna dimensión de agrupación declarada para el índice.
metricobjectopcional{ "type": "count" } (por defecto) o { "type":"avg|sum|min|max", "field":"<metric_field>" }.
filtersobjectopcionalCampo → valor (term), {gte,lte} (range/date).
sizenumberopcionalNúmero de buckets. Por defecto 10.
order"asc"|"desc"opcionalPor defecto desc.
curl · top creadores sobre retinol, por sentimiento
curl -X POST https://partners.yourbrandontime.com/v1/aggregate \
  -H "X-API-Key: pk_live_your_key_here" -H "Content-Type: application/json" \
  -d '{ "index":"siv_business_ideas", "group_by":"channel_name",
       "filters":{ "components":"retinol" },
       "metric":{ "type":"avg", "field":"sentiment_score" }, "size":10 }'

 { "matched_documents":1284, "buckets":[
     { "key":"Hyram", "count":61, "metric":0.42, "metric_type":"avg:sentiment_score" } ] }

07 creators

Un wrapper de conveniencia sobre search en siv_content_creator: creadores clasificados con demografía de audiencia agregada. Filtra por nicho, geografía o tamaño; ordena por cualquier métrica de creador.

POST/v1/creatorsscope: data:search
CampoTipoDescripción
filtersobjectopcionalp. ej. { "categories":"beauty", "subscriber_count":{"gte":100000} }.
sort_fieldstringopcionalPor defecto subscriber_count. Cualquier métrica de creador.
sort_order"asc"|"desc"opcionalPor defecto desc.
sizenumberopcionalPor defecto 10 (con el mismo tope que search).

Devuelve perfiles de creador con subscriber_count, engagement_rate_viewers y las distribuciones agregadas viewer_age_distribution / viewer_gender_distribution / viewer_country_distribution.

08 co-mentions

Encuentra vídeos o canales que mencionan todas las marcas indicadas juntas — la primitiva de co-ocurrencia detrás de «quién habla de A y de B». Devuelve solo IDs + recuentos (una agregación), nunca documentos en bruto.

POST/v1/co-mentionsscope: data:search
CampoTipoDescripción
valuesstring[]obligatorioDe 2 a 5 valores que deben co-ocurrir todos.
indexstringopcionalPor defecto siv_business_ideas.
fieldstringopcionalCampo en el que viven los valores. Por defecto brand_name.
group_bystringopcionalDimensión de bucket. Por defecto channel_name (usa video_id para vídeos).
sizenumberopcionalPor defecto 10.
curl · vídeos que mencionan ambas marcas
curl -X POST https://partners.yourbrandontime.com/v1/co-mentions \
  -H "X-API-Key: pk_live_your_key_here" -H "Content-Type: application/json" \
  -d '{ "values":["Nike","IKEA"], "group_by":"video_id" }'

 { "results":[ { "key":"vid_88", "total_mentions":7, "matched_values":2 } ] }

09 sector · Share of Voice

Clasifica un conjunto competitivo de marcas según la presencia de cada una en vídeo frente al resto, mes a mes — volumen, alcance, sentimiento y temas. Este es el endpoint detrás del informe sectorial de Share of Voice (cuota de voz).

POST/v1/sectorscope: data:search
CampoTipoDescripción
brandsarrayobligatorioEl conjunto competitivo — de 1 a 30 marcas.
brands[].labelstringobligatorioNombre para mostrar en la salida.
brands[].termsstring[]obligatorioFrases que cuentan como mención de esta marca.
brands[].must_contextstring[]opcionalDesambigua un término ruidoso (p. ej. ["energy","fuel"] para «BP»).
brands[].exactbooleanopcionalExige coincidencia exacta de la frase.
from_date / to_datestringobligatorioYYYY-MM-DD. Ventana ≤ 24 meses.
200 · application/json (recortado)
{ "brands":[ {
    "label":"Repsol", "coverage":"ok", "low_confidence":false,
    "totals":{ "unique_videos":760, "views":26900000 },
    "series":[ { "month":"2026-01",
      "unique_videos":152,   // 1 por vídeo
      "mentions":158,        // cada mención (100 en un vídeo = 100)
      "views":8673694, "sentiment":0.061,
      "volume_sov":76.38,     // % de cuota por vídeos únicos
      "reach_sov":97.27,      // % de cuota por views
      "top_topics":[ { "topic":"energy", "count":50 } ] } ] } ],
  "meta":{ "from":"2026-01-01", "to":"2026-06-30",
    "caps":{ "max_brands":30, "video_cap":3000, "low_coverage":20 } } }
Las cuotas no tienen por qué sumar el 100 %. El denominador es la suma sobre el conjunto monitorizado, y un vídeo que co-menciona dos marcas cuenta para ambas. Vigila coverage: "low" (menos de caps.low_coverage vídeos) antes de citar una marca pequeña.

10 schema

Una descripción legible por máquina de cada operación, los índices consultables, sus campos y valores permitidos — la API se autodocumenta en tiempo de ejecución y un agente puede usar las operaciones como tools sin codificar el contrato a mano.

GET/v1/schemascope: data:search

11 Uso de la API desde un agente de IA

La API es deliberadamente amigable para agentes: un puñado de operaciones tipadas y de solo lectura con guardarraíles estrictos y un contrato legible por máquina. El cableado previsto — el mismo patrón que usa el DAI de Epsilon — es:

Arranca desde /v1/schema

Al inicio de la sesión, haz GET /v1/schema y genera un tool por operación a partir de él. El esquema lista cada índice, campo filtrable, dimensión de agrupación y métrica — sin contrato codificado a mano que pueda quedarse obsoleto.

Expón las operaciones como tools

Cinco tools cubren toda la superficie: aggregate (preguntas abiertas), search (ejemplos), creators, co_mentions y sector (cuota de voz competitiva). Las respuestas son agregados compactos, así que caben cómodamente en la ventana de contexto de un LLM.

Deja que los errores guíen la autocorrección

Los rechazos de los guardarraíles vuelven como 400 con un mensaje que nombra el campo exacto y los valores permitidos (p. ej. «index 'x' is not allowed. Allowed: […]»). Devuelve el mensaje al modelo y reintenta — el bucle converge sin ayuda humana.

ejemplo · definición de tool que un agente puede derivar del esquema
{
  "name": "sector_share_of_voice",
  "description": "Rank a set of brands by share of voice in video (volume, reach, sentiment, topics) over a date window.",
  "input_schema": {
    "type": "object",
    "properties": {
      "brands": { "type": "array", "maxItems": 30,
        "items": { "type": "object", "required": ["label","terms"] } },
      "from_date": { "type": "string", "format": "date" },
      "to_date":   { "type": "string", "format": "date" }
    },
    "required": ["brands","from_date","to_date"]
  }
}  // handler del tool = POST /v1/sector con el input del tool como cuerpo JSON
Consejos operativos para constructores de agentes. Todas las operaciones son de solo lectura e idempotentes — es seguro reintentar ante un 503 con backoff. Ante un 429, para y muestra la cuota; no entres en bucle. Cachea /v1/schema por sesión, no por llamada. Una petición por pregunta gana a muchas sondas pequeñas: aggregate con el group_by adecuado suele responder en una sola llamada, y sector devuelve la foto competitiva completa de una vez.

12 Recetas

Preguntas habituales y la llamada que responde a cada una.

Share of Voice sectorial /v1/sector

Clasifica un conjunto competitivo por presencia en vídeo a lo largo del tiempo — la respuesta en vídeo a «¿quién es dueño de la conversación en nuestra categoría?»

brands[]from_dateto_date

Top creadores para un tema /v1/aggregate

Agrupa siv_business_ideas por channel_name, filtra por components o topics, clasifica por recuento o sentimiento medio.

group_by: channel_namefilters: {topics}

Creadores por nicho y audiencia /v1/creators

Filtra siv_content_creator por categoría, país o tamaño; obtén distribuciones agregadas de edad/género/país para targeting.

filters: {categories, subscriber_count}

Sentimiento a lo largo del tiempo /v1/aggregate

Filtra una marca, agrupa por sentiment (o usa el series[].sentiment mensual de /v1/sector) para ver la tendencia de percepción en la ventana.

filters: {brand_name, upload_date}

Patrones de partnership y co-mención /v1/co-mentions

Encuentra los vídeos o canales que mencionan dos o más marcas juntas — colaboraciones, comparativas, encuadre competitivo.

values: [A, B]group_by: video_id

Profundiza en las marcas de un vídeo /v1/aggregate

Agrupa por brand_name con un filtro de video_id para ver todas las marcas que menciona un vídeo concreto.

group_by: brand_namefilters: {video_id}

13 Glosario

Share of Voice (SoV)
La presencia de una marca como porcentaje del conjunto monitorizado durante un periodo — su «cuota de voz». Se reporta de dos formas: por volumen y por alcance.
SoV por volumen
Cuota medida por vídeos únicos — cada vídeo cuenta una vez, aparezca la marca las veces que aparezca.
SoV por alcance
Cuota medida por views — pondera cada mención por cuántas personas han podido verla.
Mención vs. vídeo único
Una mention cuenta cada aparición (100 en un vídeo = 100); un unique_video cuenta el vídeo una sola vez.
Puntuación de sentimiento
Tono medio de las menciones, de −1 (negativo) a +1 (positivo).
Co-mención
Dos o más marcas apareciendo juntas en el mismo vídeo o canal — una señal de comparación, colaboración o encuadre competitivo.
Coverage (cobertura)
low cuando una marca tiene demasiado pocos vídeos para que sus porcentajes sean estadísticamente fiables.
Tema (topic)
Un tema extraído por LLM y asociado a una mención (p. ej. energy, oil-and-gas), con un recuento de frecuencia.

14 Preguntas frecuentes

¿Son estos datos de YouTube, TikTok o Instagram?
No. Todo lo que devuelve la API es el análisis derivado propio de YBOT sobre vídeo disponible públicamente: insights agregados, no los datos, el contenido ni el acceso a las APIs de las plataformas. Los nombres de las plataformas identifican únicamente dónde se observó el contenido público. YBOT no está afiliado a esas plataformas ni cuenta con su respaldo o patrocinio.
¿Qué es la API de Social Listening de Vídeo de YBOT?
Una API JSON de solo lectura que expone las menciones de marca y producto detectadas en vídeo en YouTube, TikTok e Instagram — con cuota de voz, alcance, sentimiento, temas y datos de creadores — para que los partners puedan consultar los datos de forma programática en lugar de usar un dashboard.
¿Qué plataformas cubre?
YouTube, TikTok e Instagram. Las menciones se extraen de las transcripciones del audio de los vídeos mediante un LLM y se agregan por marca, creador y vídeo.
¿Cómo se calcula la cuota de voz (Share of Voice)?
Para cada mes, la API divide la presencia de una marca entre la suma del conjunto monitorizado. La cuota de voz por volumen usa vídeos únicos (cada vídeo cuenta una vez); la cuota de voz por alcance usa views. Como un vídeo que co-menciona dos marcas cuenta para ambas, las cuotas no tienen por qué sumar el 100 %.
¿Dónde se alojan los datos? ¿Cumple con el RGPD?
Todos los datos se calculan y almacenan en la UE, en Scaleway — sin nube estadounidense en el camino. La API devuelve únicamente agregados y campos de una lista de permitidos; nunca se devuelven datos personales en bruto como nombres, citas literales o fechas de nacimiento.
¿Puedo obtener transcripciones de vídeo en bruto o datos personales?
No. La salida está agregada y pasa por una lista de permitidos. Obtienes recuentos, cuotas, sentimiento, temas, campos de documento permitidos y un contexto de mención parafraseado — nunca transcripciones literales ni PII a nivel individual.
¿Cómo consigo una API key?
Las keys se aprovisionan por partner con el scope data:search. Pide a tu contacto en YBOT que emita una para tu plan; el plan determina tu límite de peticiones y tu cuota mensual.
¿Puedo usarla con un agente de IA?
Sí. GET /v1/schema devuelve una descripción legible por máquina de cada operación y campo, de modo que un agente puede usar las operaciones como tools sin codificar el contrato a mano.

15 Errores

Los errores son JSON con un message legible. Las violaciones de guardarraíl nombran el campo exacto que hay que corregir.

EstadoCuándoSolución
400Falló un guardarraíl — índice/campo no válido, >30 marcas, ventana >24 meses, faltan terms.Lee message; corrige el campo indicado.
401Falta la cabecera X-API-Key.Envía la cabecera.
403La key no tiene el scope data:search.Usa una key con scope de datos.
429Límite de peticiones o cuota mensual superados.Aplica backoff; mejora el plan.
503Backend de datos temporalmente no disponible.Reintenta con backoff.

16 Límites y cuota

LímiteValor
Marcas por petición de sector≤ 30
Ventana de fechas de sector≤ 24 meses
Buckets / tamaño de resultadotope por plan (search ≤ 10 para keys no raw)
Límite de peticiones y cuota mensualPor plan (ventana fija + tope mensual)
Timeout de la petición de sector~20 s

Los datos se calculan y almacenan en la UE (Scaleway) — sin nube estadounidense en el camino. La API devuelve únicamente agregados y campos de la lista de permitidos; los datos personales en bruto nunca salen.