> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Node.js NPM

> Integra la API de Ayrshare en tu app de Node con el paquete NPM Social API

## Descripción general

El [paquete NPM Social API](https://www.npmjs.com/package/social-media-api) de Ayrshare te permite integrar la API de Ayrshare en tu app de Node.js.

### Instalación

Instala el paquete NPM Social API si usas Node en el lado del servidor.
El paquete simplifica las llamadas envolviendo las llamadas RESTful.

```bash theme={"system"}
npm i social-media-api
```

<Info>Obtén tu API Key secreta en el [dashboard de Ayrshare](https://app.ayrshare.com/).</Info>

### Uso general

Ejemplos de Post, History y Delete:

<Info>
  **¿Publicando en X/Twitter?** A partir del 31 de marzo de 2026, las operaciones de X/Twitter a través de Ayrshare requieren tus propias credenciales de X Developer App — Ayrshare lo aplica en todas las llamadas dirigidas a X. Añade las 2 cabeceras BYO a tu solicitud. Consulta la [guía de configuración](/dashboard/connect-social-accounts/x-twitter-byo-keys) para más detalles.
</Info>

Desde la v1.3.0, el SDK incluye un helper `setTwitterByo(apiKey, apiSecret)` que adjunta las dos cabeceras obligatorias `X-Twitter-OAuth1-*` a cada solicitud posterior:

```javascript theme={"system"}
const SocialPost = require("social-media-api");
const social = new SocialPost(API_KEY)
  .setTwitterByo(MY_X_API_KEY, MY_X_API_SECRET);

await social.post({
  post: "Hello from BYO",
  platforms: ["twitter"]
});
```

Utiliza `clearTwitterByo()` para eliminar las cabeceras — útil cuando reutilizas una instancia del SDK entre distintos tenants:

```javascript theme={"system"}
social.clearTwitterByo().setTwitterByo(nextTenant.key, nextTenant.secret);
```

```javascript theme={"system"}
const SocialPost = require("social-media-api");
const API_KEY = "API KEY"; // get an API Key at ayrshare.com
const social = new SocialPost(API_KEY);

const run = async () => {
  /** post */
  const post = await social
    .post({
      post: "One more time",
      platforms: ["twitter", "facebook", "linkedin"],
      profileKey: "DJKJDK-SKDJKDJF" // used with a User Profile
    })
    .catch(console.error);
  console.log(post);

  /** history */
  const history = await social.history().catch(console.error);
  console.log(history);

  /** delete */
  const deletePost = await social.delete({ id: post.id }).catch(console.error);
  console.log(deletePost);
};

run();
```

### Descripción en video del paquete NPM Social Media API

<div class="video-container">
  <iframe width="560" height="315" src="https://www.youtube.com/embed/OMtj2h6sW6U" title="Social Media API NPM Package" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</div>

Publicar en redes sociales a través de una API

### Profile Key

Puedes especificar la Profile Key de un User Profile en el body de un POST o en el query de un GET con el campo `profileKey`.

### Demo de Social API

Para ver una integración de ejemplo en Node.js (usando las llamadas RESTful de la API), consulta el repositorio de GitHub:

<Card title="Código de demo de Social API" icon="github" href="https://github.com/ayrshare/social-api-demo" horizontal>
  La demo de Social API es una aplicación web que permite a los usuarios redactar, programar y publicar contenido
  en varias plataformas de redes sociales simultáneamente.
</Card>

### Más información y documentación

<ul class="custom-bullets">
  <li>[Paquete NPM](https://www.npmjs.com/package/social-media-api)</li>
  <li>[Repositorio de GitHub](https://github.com/ayrshare/social-media-api)</li>
  <li>[Debate de issues](https://github.com/ayrshare/social-media-api/issues)</li>
</ul>
