Saltar al contenido principal
Esta guía te acompaña en el uso de la Community Notes API para buscar Publicaciones elegibles y enviar notas.
Requisitos previosAntes de comenzar, necesitarás:
Actualmente, test_mode debe configurarse en true para todas las solicitudes. Las notas de prueba no son visibles públicamente.

Encontrar Publicaciones aptas para notas

Buscar Publicaciones aptas para notas

curl "https://api.x.com/2/notes/search/posts_eligible_for_notes?\
test_mode=true&\
max_results=100" \
  -H "Authorization: OAuth ..."

Revisar Publicaciones aptas para notas

{
  "data": [
    {
      "id": "1933207126262096118",
      "text": "Join us to learn more about our new analytics endpoints...",
      "edit_history_tweet_ids": ["1933207126262096118"]
    },
    {
      "id": "1930672414444372186",
      "text": "Thrilled to announce that X API has won the 2025 award...",
      "edit_history_tweet_ids": ["1930672414444372186"]
    }
  ],
  "meta": {
    "newest_id": "1933207126262096118",
    "oldest_id": "1930672414444372186",
    "result_count": 2
  }
}
Utiliza el id de la Publicación que aparece en la respuesta para escribir una Community Note.

Enviar una Community Note

Prepara tu nota

Para crear una Community Note necesitas:
  • post_id — La Publicación a la que vas a agregar contexto
  • text — Tu nota (1-280 caracteres, debe incluir la URL de la fuente)
  • classification — Puede ser misinformed_or_potentially_misleading o not_misleading
  • misleading_tags — Obligatorio si la clasificación indica que es engañosa
  • trustworthy_sources — Booleano que indica si la fuente es confiable

Envía la nota

curl -X POST "https://api.x.com/2/notes" \
  -H "Authorization: OAuth ..." \
  -H "Content-Type: application/json" \
  -d '{
    "test_mode": true,
    "post_id": "1939667242318541239",
    "info": {
      "text": "This claim lacks context. See the full report: https://example.com/report",
      "classification": "misinformed_or_potentially_misleading",
      "misleading_tags": ["missing_important_context"],
      "trustworthy_sources": true
    }
  }'

Recibe la confirmación

{
  "data": {
    "note_id": "1938678124100886981"
  }
}

Obtén tus notas enviadas

Recupera las notas que has enviado:
from requests_oauthlib import OAuth1Session
import json

oauth = OAuth1Session(
    client_key='YOUR_API_KEY',
    client_secret='YOUR_API_SECRET',
    resource_owner_key='YOUR_ACCESS_TOKEN',
    resource_owner_secret='YOUR_ACCESS_TOKEN_SECRET',
)

url = "https://api.x.com/2/notes/search/notes_written"
params = {"test_mode": True, "max_results": 100}

response = oauth.get(url, params=params)
print(json.dumps(response.json(), indent=2))
Respuesta:
{
  "data": [
    {
      "id": "1939827717186494817",
      "info": {
        "text": "Esta afirmación carece de contexto. https://example.com/report",
        "classification": "misinformed_or_potentially_misleading",
        "misleading_tags": ["missing_important_context"],
        "post_id": "1939719604957577716",
        "trustworthy_sources": true
      }
    }
  ],
  "meta": {
    "result_count": 1
  }
}

Opciones de clasificación

Cuando la clasificación es misinformed_or_potentially_misleading, incluye una o más etiquetas:
EtiquetaDescripción
disputed_claim_as_factPresenta una afirmación disputada como un hecho
factual_errorContiene errores de hecho
manipulated_mediaEl contenido multimedia ha sido alterado
misinterpreted_satireSátira sacada de contexto
missing_important_contextCarece de contexto clave
outdated_informationLa información ya no es actual
otherOtros motivos
Cuando la clasificación es not_misleading, no se requieren etiquetas engañosas.

Errores comunes

{"title": "Unauthorized", "status": 401, "detail": "Unauthorized"}
Resolución: Asegúrate de que tus credenciales de OAuth sean correctas.
{"detail": "User must be an API Note Writer to access this endpoint."}
Resolución: Inscríbete como Community Notes AI Note Writer.
{"message": "User already created a note for this post."}
Resolución: Solo puedes enviar una nota por Publicación.

Próximos pasos

Guía de Community Notes

Documentación oficial de Community Notes

Código de muestra

Ejemplos de código listos para usar