Conexión
Conecta una cuenta social o un sitio: manda al usuario a la URL y Marsial lo devuelve a tu redirectUrl.
Empezar a conectar una cuenta
Sección titulada «Empezar a conectar una cuenta»/v1/connect/{platform}Devuelve la URL a la que mandar al usuario. Al terminar, Marsial vuelve a redirectUrl con connected=<platform>&accountId=…, con error=… si falló, o con select=<sessionId> cuando el usuario debe elegir página, organización, tablero, ficha o perfil (Facebook, LinkedIn, Pinterest, Google Business, Snapchat) un canal (Slack) o un número (WhatsApp). Shopify necesita shop (el dominio myshopify.com de la tienda). wordpress aquí conecta sitios de WordPress.com; los autoalojados usan POST /connect/wordpress. Las conexiones de anuncios (meta-ads, google-ads…) también empiezan aquí.
Parámetros
platformstringobligatorioprofileIdstringobligatorioEl perfil al que pertenecerá la cuenta.
redirectUrlstring (uri)obligatorioA dónde vuelve el usuario cuando termina la conexión.
shopstringSolo para Shopify, y ahí obligatorio: el dominio myshopify.com de la tienda (o su prefijo).
Respuesta 200
data
urlstring (uri)obligatorioManda aquí al usuario para que autorice la red.
curl "https://api.marsial.dev/v1/connect/instagram?profileId=prf_8f2k4d&redirectUrl=https%3A%2F%2Fapp.acme.com%2Fconnected" \ -H "Authorization: Bearer $MARSIAL_API_KEY"const res = await fetch('https://api.marsial.dev/v1/connect/instagram?profileId=prf_8f2k4d&redirectUrl=https%3A%2F%2Fapp.acme.com%2Fconnected', { headers: { Authorization: `Bearer ${process.env.MARSIAL_API_KEY}`, },});const { data } = await res.json();import os, requests
res = requests.get( "https://api.marsial.dev/v1/connect/instagram?profileId=prf_8f2k4d&redirectUrl=https%3A%2F%2Fapp.acme.com%2Fconnected", headers={"Authorization": f"Bearer {os.environ['MARSIAL_API_KEY']}"},)data = res.json()["data"]Conectar un WordPress autoalojado
Sección titulada «Conectar un WordPress autoalojado»/v1/connect/wordpressUn WordPress autoalojado no tiene OAuth: crea una contraseña de aplicación en el perfil de WordPress del usuario que publicará (Usuarios → Perfil → Contraseñas de aplicación) y envíala con su nombre de usuario. Marsial comprueba el sitio y los permisos antes de guardarlo. Marsial no guarda la contraseña; revócala en WordPress para cortar el acceso.
Cuerpo
profileIdstringobligatorioEl perfil al que pertenecerá el sitio.
siteUrlstring (starts_with)obligatorioLa raíz pública del sitio, por ejemplo https://example.com.
usernamestringobligatorioEl nombre de usuario de WordPress de quien publicará.
applicationPasswordstringobligatorioUna contraseña de aplicación creada en el perfil de WordPress de ese usuario.
Respuesta 201
data
idstringobligatorioprofileIdstringobligatorioplatformstringobligatoriousernamestringdisplayNamestringavatarUrlstring (uri)statusstringobligatorioconnectedAtstring (date-time)obligatorioupdatedAtstring (date-time)obligatorio
curl -X POST "https://api.marsial.dev/v1/connect/wordpress" \ -H "Authorization: Bearer $MARSIAL_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "profileId": "prf_8f2k4d", "siteUrl": "https://blog.acme.com", "username": "editor", "applicationPassword": "abcd efgh ijkl mnop qrst uvwx" }'const res = await fetch('https://api.marsial.dev/v1/connect/wordpress', { method: 'POST', headers: { Authorization: `Bearer ${process.env.MARSIAL_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ "profileId": "prf_8f2k4d", "siteUrl": "https://blog.acme.com", "username": "editor", "applicationPassword": "abcd efgh ijkl mnop qrst uvwx" }),});const { data } = await res.json();import os, requests
res = requests.post( "https://api.marsial.dev/v1/connect/wordpress", headers={"Authorization": f"Bearer {os.environ['MARSIAL_API_KEY']}"}, json={ "profileId": "prf_8f2k4d", "siteUrl": "https://blog.acme.com", "username": "editor", "applicationPassword": "abcd efgh ijkl mnop qrst uvwx" },)data = res.json()["data"]Listar lo que el usuario puede elegir
Sección titulada «Listar lo que el usuario puede elegir»/v1/connect/sessions/{id}/optionsEl id es el valor de select que Marsial añadió a tu redirectUrl. Las sesiones caducan a la hora.
Parámetros
idstringobligatorio
Respuesta 200
data
platformstringobligatoriooptionsobject[]obligatoriooptions
idstringobligatorionamestringobligatoriodetailstringimageUrlstring (uri)
curl "https://api.marsial.dev/v1/connect/sessions/cs_5t2y8u/options" \ -H "Authorization: Bearer $MARSIAL_API_KEY"const res = await fetch('https://api.marsial.dev/v1/connect/sessions/cs_5t2y8u/options', { headers: { Authorization: `Bearer ${process.env.MARSIAL_API_KEY}`, },});const { data } = await res.json();import os, requests
res = requests.get( "https://api.marsial.dev/v1/connect/sessions/cs_5t2y8u/options", headers={"Authorization": f"Bearer {os.environ['MARSIAL_API_KEY']}"},)data = res.json()["data"]Elegir una opción y terminar la conexión
Sección titulada «Elegir una opción y terminar la conexión»/v1/connect/sessions/{id}/selectParámetros
idstringobligatorio
Cuerpo
optionIdstringobligatorio
Respuesta 201
data
idstringobligatorioprofileIdstringobligatorioplatformstringobligatoriousernamestringdisplayNamestringavatarUrlstring (uri)statusstringobligatorioconnectedAtstring (date-time)obligatorioupdatedAtstring (date-time)obligatorio
curl -X POST "https://api.marsial.dev/v1/connect/sessions/cs_5t2y8u/select" \ -H "Authorization: Bearer $MARSIAL_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "optionId": "1042…" }'const res = await fetch('https://api.marsial.dev/v1/connect/sessions/cs_5t2y8u/select', { method: 'POST', headers: { Authorization: `Bearer ${process.env.MARSIAL_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ "optionId": "1042…" }),});const { data } = await res.json();import os, requests
res = requests.post( "https://api.marsial.dev/v1/connect/sessions/cs_5t2y8u/select", headers={"Authorization": f"Bearer {os.environ['MARSIAL_API_KEY']}"}, json={ "optionId": "1042…" },)data = res.json()["data"]© 2026 Marsial by TWOFACES ·marsial.dev ·Panel ·soporte@twofacesco.com