← VOLVER A LA GALAXIA ← GALAXIA OVERNIGHTERS
EN ES
PARA MAKERS · JSON SOBRE HTTPS

La API del Maker

Agrega y actualiza tus Listings desde un script o un agente, con los mismos campos que tiene el Editor. Un Listing nuevo siempre llega como Borrador; publicar queda dentro del tope de tus Listings.

Tu token

Envía tu token en cada llamada. Cada Maker tiene uno; al rotarlo, el anterior deja de funcionar de inmediato.

Authorization: Bearer YOUR_TOKEN

Hasta 60 llamadas por minuto. Tu token solo llega a tu propio Catálogo.

Crea o rota tu token en Ajustes

El paquete

Un Listing viaja como un archivo JSON más sus medios. La API lee y devuelve la misma forma, así que un paquete que descargas se puede enviar de vuelta tal cual.

Campos del paquete
CAMPOTIPONOTA
slugstringÚnico dentro de tu Catálogo. Se vuelve overnighters.app/@tu/apps/slug.
kindexternalSiempre External para los Makers. Solo las apps del Operador son Alojadas.
external_urlurlDónde corre el Listing.
categorykeyUna clave de las Categorías compartidas.
name_enstringLos textos necesitan al menos inglés o español; el otro usa el que exista.
name_esstringLa misma regla que name_en.
tagline_enstringHasta 70 caracteres.
tagline_esstringHasta 70 caracteres.
description_entextTexto simple. Una línea en blanco empieza un párrafo.
description_estextTexto simple. Una línea en blanco empieza un párrafo.
tagsarrayUna lista de palabras cortas.
ships_inarrayIdiomas que habla el Listing: es, en.
tech_stackstringTexto libre.
launched_ondateAAAA-MM-DD.
for_salebooleanAbre la Consulta de interés de compra.
asking_priceintegerDólares enteros. Omítelo para Abierto a ofertas.
featuredbooleanMáximo uno por Catálogo; destacar uno reemplaza al anterior.
acquiredbooleanPara apps Externas que cambiaron de manos.
statusdraft|published|retiredSe ignora al crear. Al actualizar: draft, published o retired. El Listing debe estar completo para publicarse.
retired_modefarewell|redirectfarewell (por omisión) o redirect. Se usa cuando status es retired.
redirect_urlurlAdónde van los visitantes tras un retiro con redirección.

Medios

Envía los archivos como partes multipart llamadas cover, shot-1, shot-2, shot-3, loop. Imágenes de hasta 10 MB; el loop es un MP4 o WebM corto y sin sonido.

{
  "slug": "lonchera",
  "kind": "external",
  "external_url": "https://lonchera.app",
  "category": "kitchen",
  "name_en": "Lonchera",
  "tagline_en": "A week of school lunches, planned on Sunday.",
  "tagline_es": "Una semana de loncheras, planeada el domingo.",
  "ships_in": ["es", "en"],
  "for_sale": true,
  "asking_price": 1200
}

Endpoints

GET/maker/api/listings/:slug

Devuelve el paquete de uno de tus Listings, con las URL de sus medios.

curl https://overnighters.app/maker/api/listings/lonchera \
  -H "Authorization: Bearer $OVERNIGHTERS_TOKEN"

POST/maker/api/listings

Crea un Borrador a partir de un paquete y sus archivos. Nunca publica.

curl https://overnighters.app/maker/api/listings \
  -H "Authorization: Bearer $OVERNIGHTERS_TOKEN" \
  -F "package=@lonchera/package.json;type=application/json" \
  -F "cover=@lonchera/cover.png" \
  -F "shot-1=@lonchera/shot-1.png" \
  -F "loop=@lonchera/loop.mp4"

PATCH/maker/api/listings/:slug

Cambia solo los campos y archivos que envíes. Envía status published para publicar.

curl -X PATCH https://overnighters.app/maker/api/listings/lonchera \
  -H "Authorization: Bearer $OVERNIGHTERS_TOKEN" \
  -F 'package={"asking_price": 900, "status": "published"};type=application/json'

Cuando algo falla

400
No hay paquete, o no es JSON válido.
401
No hay token, el token ya se rotó o la cuenta está suspendida.
403
Llegaste a tu límite de Listings, así que este Listing no se puede publicar. Los Borradores se siguen guardando; despublica o retira un Listing, o pide más espacio.
404
No hay un Listing con ese slug en tu Catálogo.
409
El slug ya está ocupado en tu Catálogo. La respuesta trae el paquete existente para que compares.
422
El paquete no es válido. La respuesta indica qué falla.
429
Demasiadas llamadas. Espera un minuto.