
Configuration rapide
Installez le package avec npm, créez un routeur et recevez des articles en quelques minutes. Compatible avec Express et les frameworks Node.js.
Langue

Connectez Monok à votre CMS personnalisé, votre application Express ou tout backend Node.js. Recevez des articles sous forme de brouillons via notre API simple à intégrer.
Contenu livré à


























Le package @monok/server simplifie la connexion de votre backend à Monok. Installez-le via npm, configurez votre endpoint et recevez du contenu automatiquement.

Installez le package avec npm, créez un routeur et recevez des articles en quelques minutes. Compatible avec Express et les frameworks Node.js.
Tout ce qu'il vous faut pour intégrer Monok à votre application Express :
Install the package
1npm install @monok/server expressCreate the router
1import express from "express";2import { createMonokRouter } from "@monok/server";3 4const app = express();5 6app.use(7 "/monok",8 createMonokRouter({9 apiKey: process.env.MONOK_API_KEY!,10 onArticle: async (article, { saveThumbImage, action }) => {11 const imagePath = await saveThumbImage();12 13 if (action === "publish") {14 // publish immediately in your CMS15 } else {16 // save as draft (default)17 }18 }19 })20);21 22app.listen(3000);Add your endpoint URL to Monok settings: https://yoursite.com/monok

Le package @monok/server configure automatiquement ces endpoints pour communiquer avec Monok
/monok/push?action=draft|publishMonok envoie les nouveaux articles à cet endpoint. Votre callback onArticle traite chaque article.
token: <your-api-key>action— Définissez draft ou publish selon le choix de l'utilisateur dans l'interface Monok/monok/info?apikey=<your-api-key>Monok récupère les informations de votre site pour connaître votre identité de marque, vos catégories, vos tags et vos auteurs, afin de mieux recommander du contenu.
apikey— Votre clé API Monok pour l'authentificationgetSiteInfogetSiteInfo n'est pas fourniComprendre les données JSON envoyées par Monok
Les articles sont envoyés sous forme d'objets JSON avec la structure suivante
| Field | Type | Description |
|---|---|---|
title | String | Titre de l'article |
shortTitle | String | Titre court pour les balises meta, préremplit Yoast/RankMath |
description | String | Méta-description SEO, préremplit Yoast/RankMath |
content | String | Article au format HTML prêt pour WordPress |
text | String | Article en Markdown avec des widgets JSON |
slug | String | Slug d'URL généré à partir du titre, préremplit Yoast/RankMath |
id | String | Identifiant unique, accessible sur monok.com/puff/ID |
thumbImageData | String | Image à la une au format PNG encodé en base64 |
thumbImageDescription | String | Texte alternatif de l'image à la une |
language | String | Langue/locale cible (par ex. "fr", "fr-ca") |
type | String | "blog" ou "news" |
keywords | [String] | Tableau de mots-clés SEO |
tags | [String] | Tableau des tags de l'article |
vfImage | Object | Métadonnées détaillées de l'image à la une |
sections | String | Nom de la catégorie de l'article |
Le champ text contient du Markdown avec des widgets JSON intégrés pour les tweets, publications Instagram, vidéos YouTube et citations.
JSON Widget in Article Text
1{2 "data": [3 {4 "name": "Phil Spencer",5 "text": "Had good calls this week with leaders at Sony..."6 }7 ],8 "id": "1484273335139651585",9 "type": "twitter",10 "url": "https://twitter.com/XboxP3/status/1484273335139651585",11 "username": "XboxP3"12}Séparez le texte aux sauts de ligne (\n) et vérifiez si chaque ligne contient du Markdown ou du JSON. Convertissez le Markdown en HTML avec une bibliothèque comme Drawdown (~4 Ko).
Pour Twitter/YouTube, insérez directement le champ URL : WordPress reconnaît ces contenus intégrés. Pour Instagram, utilisez une iframe. Vous pouvez aussi utiliser le champ content pour obtenir du HTML prêt à l'emploi.
Pour la plupart des intégrations (WordPress, Strapi, etc.), utilisez le champ content qui fournit du HTML prêt pour WordPress. C'est plus simple que d'analyser vous-même le Markdown et les widgets JSON.
Indiquez à Monok où vos articles sont publiés pour activer les campagnes sur les réseaux sociaux et améliorer les liens internes des futurs contenus
Exemple de notification de publication
1import { sendMonokLinkback } from "@monok/server";2 3await sendMonokLinkback({4 monokId: article.id,5 publicUrl: "https://example.com/blog/" + (article.slug ?? article.id),6 title: article.title,7 articleTextSample: article.text?.slice(0, 500),8 thumbnailUrl: "https://example.com/uploads/" + imageFile9});Partagez automatiquement les articles publiés sur les réseaux sociaux lorsque Monok reçoit leur lien
Monok apprend la structure de vos contenus publiés et propose de meilleurs liens internes pour vos futurs articles
Suivez les résultats de vos articles et consultez les indicateurs d'engagement de vos contenus
Appelez simplement sendMonokLinkback() après publication : Monok s'occupe du reste
Provide your site information to Monok for better content matching. Monok will automatically align categories, authors, and tags with your existing structure.
Advanced Setup with Site Info
1import express from "express";2import {3 createMonokRouter,4 sendMonokLinkback,5 type MonokArticle6} from "@monok/server";7 8const app = express();9 10app.use(11 "/monok",12 createMonokRouter({13 apiKey: process.env.MONOK_API_KEY!,14 imageDir: "./uploads", // optional15 // Optional: provide site info if you want Monok to query it16 getSiteInfo: {17 js_scripts: "Enabled",18 version: "1.0.0",19 name: "My Site",20 logo: "https://example.com/logo.png",21 categories: ["Content", "News Articles", "Uncategorized"],22 post_types: ["post", "page"],23 tags: ["Tech", "Health", "News"],24 authors: [25 {26 name: "Jane Doe",27 profile: "Editor-in-chief",28 id: "1",29 avatar: "https://example.com/avatars/jane.png",30 roles: ["administrator"]31 }32 ]33 },34 onArticle: async (article: MonokArticle, { saveThumbImage, action }) => {35 const imagePath = await saveThumbImage();36 console.log("Received article:", article.title);37 38 if (action === "publish") {39 // publish immediately40 } else {41 // save as draft42 }43 44 // when you publish later, notify Monok:45 // await sendMonokLinkback({46 // monokId: article.id,47 // publicUrl: "https://example.com/blog/" + (article.slug ?? article.id),48 // title: article.title,49 // articleTextSample: article.text?.slice(0, 500),50 // thumbnailUrl: imagePath51 // ? "https://example.com/uploads/" + require("path").basename(imagePath)52 // : undefined53 // });54 }55 })56);57 58app.listen(3000);Monok learns your existing categories and automatically assigns articles to the most relevant ones based on content analysis.
Provide your author list so Monok can suggest or assign the appropriate author to each article based on topic and expertise.
Monok uses your existing tag taxonomy to suggest relevant tags for each article, maintaining consistency across your content.
Share your site name and logo with Monok to ensure all generated content aligns with your brand identity and guidelines.
The getSiteInfo configuration is entirely optional. However, providing this information significantly improves content quality and relevance by allowing Monok to understand your site's structure and existing content organization.




























Installez @monok/server via npm. Créez un endpoint POST pour recevoir les articles de Monok. Enregistrez les images automatiquement. Publiez immédiatement ou enregistrez des brouillons. Envoyez une notification de publication avec le lien de l'article. Monok s'occupe du reste.
Les problèmes courants et leurs solutions
De nombreux serveurs limitent la quantité de données reçues. Le champ thumbImageData peut dépasser cette limite et provoquer une erreur 413 Payload Too Large.
Solution:
Vérifiez que la valeur Nginx de client_max_body_size est supérieure à 5 Mo.
Certains sites limitent les appels POST et GET en restreignant l'accès aux endpoints dans Nginx.
Autorisez les endpoints suivants :
website.com/wp-json/monok/* (pour WordPress)website.com/monok/* (pour l'intégration API)Le caractère générique couvre les deux chemins ; adaptez votre configuration Nginx en conséquence.
Si votre configuration Nginx restreint les adresses IP, autorisez le serveur de Monok.
Solution:
Autorisez cette adresse : 51.158.177.191
Ce que disent nos clients
Je pense que c'est très bon ! Je l'ai utilisé pour ma SaaS en chinois, la langue était excellente
Xunzhu Tang, PhD
Fondateur, NoahCode

Travailler avec Monok est l'une des choses les plus innovantes qu'on ait faites et c'est clairement un game changer pour nous. Monok est notre arme secrète et l'avenir !
Ivan Mackenzie
Responsable, Plumjobs

Travailler avec Monok a été l'une de nos meilleures expériences avec un fournisseur. La roadmap de Monok anticipe constamment les besoins du marché.
Matt Kovelan
Fondateur, SportsWriters
Monok s'est avéré être le partenaire idéal et, d'un coup, nous a propulsés des années en avance et a transformé radicalement la flexibilité de notre offre client.
Michael Davids
CEO, Splendor
Je pense que c'est très bon ! Je l'ai utilisé pour ma SaaS en chinois, la langue était excellente
Xunzhu Tang, PhD
Fondateur, NoahCode

Travailler avec Monok est l'une des choses les plus innovantes qu'on ait faites et c'est clairement un game changer pour nous. Monok est notre arme secrète et l'avenir !
Ivan Mackenzie
Responsable, Plumjobs

Travailler avec Monok a été l'une de nos meilleures expériences avec un fournisseur. La roadmap de Monok anticipe constamment les besoins du marché.
Matt Kovelan
Fondateur, SportsWriters
Monok s'est avéré être le partenaire idéal et, d'un coup, nous a propulsés des années en avance et a transformé radicalement la flexibilité de notre offre client.
Michael Davids
CEO, Splendor
Couvrez des sujets au-delà de votre domaine, à faible ou haut volume.
Tarifs
Chaque formule garde votre production flexible. Mettez en pause quand vous voulez et payez seulement les contenus livrés.
Devise
Mise à jour des taux…
Basic

Starter

Sur mesure

Questions fréquentes
@monok/server est un package Node.js qui fournit un middleware Express pour recevoir les articles de Monok. Il gère l'authentification, le stockage des images et propose des fonctions de publication et de notification avec le lien de l'article.
Oui, un développeur doit mettre en place l'intégration initiale. Le package @monok/server simplifie cette tâche : installez-le via npm, configurez votre clé API et définissez le traitement des articles reçus.
Deux endpoints principaux : POST /monok/push reçoit les articles (avec le paramètre facultatif ?action=draft ou ?action=publish), et GET /monok/info renvoie les informations du site si elles sont configurées (catégories, tags, auteurs).
Les images à la une sont envoyées en base64. Utilisez la fonction saveThumbImage() du callback onArticle pour les enregistrer automatiquement dans le répertoire imageDir de votre serveur.
Oui. Passez l'option imageDir à createMonokRouter() pour définir le dossier de stockage. Par défaut, les images sont enregistrées dans './uploads'.
Elle informe Monok lorsqu'un article est publié sur votre site. Utilisez sendMonokLinkback() pour envoyer son URL publique, son titre et son image à la une. Monok peut ainsi suivre ses performances et fournir des statistiques.
Oui ! Le package inclut des déclarations TypeScript. Vous bénéficiez de l'autocomplétion et de la vérification des types pour les articles, les options de configuration et les fonctions utilitaires.
Actuellement, @monok/server est conçu pour Express. Vous pouvez adapter le principe à d'autres frameworks en créant des endpoints POST et GET conformes à la spécification de l'API.
Votre clé API Monok se trouve dans les paramètres de votre compte. Conservez-la dans des variables d'environnement (comme process.env.MONOK_API_KEY) et ne l'ajoutez jamais au contrôle de version.
L'objet article contient id, title, text, content (HTML), slug, les tags, la catégorie, les informations sur l'auteur, les données de l'image, la langue et d'autres métadonnées. Les types TypeScript complets sont disponibles dans le package.
Non. Elle est incluse dans votre abonnement Monok sans frais supplémentaires. Le package @monok/server est gratuit et open source.
Oui. Lancez votre application Express en local et utilisez un outil comme ngrok pour l'exposer temporairement sur Internet. Ajoutez l'URL ngrok dans les paramètres Monok pour vos tests.
Connectez Monok à votre plateforme en quelques minutes avec notre API.