Nordic Layers es una API REST sobre HTTPS en https://app.layers.nordicbyte.co.uk. Un proyecto es un documento JSON de capas; lo modificas con operaciones y lo exportas como imagen. El editor del navegador usa la misma API.
Autenticación
Crea una clave de API en el panel de tu cuenta y envíala en cada petición a /v1. Las claves empiezan por nl_key_.
Authorization: Bearer nl_key_…
El flujo habitual
Sube cada imagen con POST /v1/assets y el archivo como cuerpo de la petición (PNG, JPEG, WebP, GIF, BMP o TIFF). La respuesta incluye su id.
Crea un proyecto con POST /v1/projects y un width, height y background. Puedes pasar los primeros steps en la misma llamada.
Edítalo con POST /v1/projects/{id}/run: una operación como {"op": …} o varias como {"steps": [...]}. Míralo con GET /v1/projects/{id}/preview, que es gratis.
Exporta con POST /v1/projects/{id}/export. La respuesta trae la URL del archivo, o la propia imagen con "response": "image".
Una primera petición
Crea un proyecto de 1080×1080 con un degradado y un título, y expórtalo como WebP:
Catálogo de todas las operaciones y sus parámetros (público)
POST
/v1/assets?name=photo.jpg
Sube una imagen; el cuerpo es el archivo
GET
/v1/assets
Lista tus imágenes y si algún proyecto las usa
DELETE
/v1/assets/{id}
Elimina una imagen
POST
/v1/projects
Crea un proyecto (lienzo, o un documento completo, y pasos opcionales)
GET
/v1/projects
Lista tus proyectos
GET
/v1/projects/{id}
Un proyecto con su documento
PUT
/v1/projects/{id}/document
Sustituye el documento completo
POST
/v1/projects/{id}/run
Aplica una operación o una lista de pasos
POST
/v1/projects/{id}/undo
Deshace el último cambio
POST
/v1/projects/{id}/redo
Rehace
GET
/v1/projects/{id}/preview?size=1024
Vista previa PNG gratuita, lado largo de hasta size px
POST
/v1/projects/{id}/export
Exporta PNG, JPEG o WebP; pasos opcionales solo para este archivo
POST
/v1/render
Render sin estado de un documento completo
GET
/v1/exports
Lista tus exportaciones
GET
/v1/exports/{id}/file
Descarga una exportación
DELETE
/v1/projects/{id}
Elimina un proyecto
Operaciones
Cada operación es un objeto con op y sus parámetros. Las capas se referencian por id o por nombre; sin layer, se usa la capa activa. Los nombres ignoran mayúsculas y espacios, así que "Linear Dodge (Add)" y "linearDodge" son el mismo modo de fusión. Con steps, se ejecutan en orden y se detienen en el primer error (salvo "stopOnError": false); los pasos anteriores quedan aplicados.
Pasa steps a la llamada de exportación y se aplican a una copia del proyecto solo para ese archivo. Una plantilla, muchos archivos: cambia el texto con text.set y la foto con layer.setImage, que conserva la caja de la capa.
POST /v1/render recibe un document completo (tal como lo devuelve project.document), steps opcionales y las opciones de exportación, y no guarda ningún proyecto. Con "response": "image" la respuesta es el archivo de imagen.
Los errores llegan como JSON con un code estable y un mensaje detail en el idioma de tu cuenta. Un paso que falla indica qué parámetro era incorrecto. Cuando se agotan los renders de un plan, la API responde 402 con quota_renders.
Límites
Subidas de hasta 50 MB y 12,000 px por lado.
Lienzo de hasta 20,000 px por lado, dentro de los megapíxeles de tu plan.
Hasta 200 pasos por llamada.
Vistas previas de hasta 2,048 px en el lado largo.
Los megapíxeles, capas, proyectos, almacenamiento y renders al mes dependen del plan: consulta Precios.