Nordic Layers est une API REST sur HTTPS à l'adresse https://app.layers.nordicbyte.co.uk. Un projet est un document JSON de calques ; vous le modifiez avec des opérations et l'exportez sous forme d'image. L'éditeur du navigateur utilise la même API.
Authentification
Créez une clé d'API dans le panneau de votre compte et envoyez-la avec chaque requête /v1. Les clés commencent par nl_key_.
Authorization: Bearer nl_key_…
Le déroulement habituel
Importez chaque image avec POST /v1/assets et le fichier comme corps brut de la requête (PNG, JPEG, WebP, GIF, BMP ou TIFF). La réponse contient son id.
Créez un projet avec POST /v1/projects et un width, height et background. Vous pouvez passer les premiers steps dans le même appel.
Modifiez-le avec POST /v1/projects/{id}/run : une opération sous la forme {"op": …} ou plusieurs sous la forme {"steps": [...]}. Consultez-le avec GET /v1/projects/{id}/preview, qui est gratuit.
Exportez avec POST /v1/projects/{id}/export. La réponse contient l'URL du fichier, ou l'image elle-même avec "response": "image".
Une première requête
Créez un projet de 1080×1080 avec un dégradé et un titre, puis exportez-le en WebP :
Catalogue de toutes les opérations et de leurs paramètres (public)
POST
/v1/assets?name=photo.jpg
Importe une image ; le corps est le fichier
GET
/v1/assets
Liste vos images et indique si un projet les utilise
DELETE
/v1/assets/{id}
Supprime une image
POST
/v1/projects
Crée un projet (zone de travail, ou document complet, plus des étapes facultatives)
GET
/v1/projects
Liste vos projets
GET
/v1/projects/{id}
Un projet avec son document
PUT
/v1/projects/{id}/document
Remplace le document entier
POST
/v1/projects/{id}/run
Applique une opération ou une liste d'étapes
POST
/v1/projects/{id}/undo
Annule la dernière modification
POST
/v1/projects/{id}/redo
Rétablit
GET
/v1/projects/{id}/preview?size=1024
Aperçu PNG gratuit, grand côté jusqu'à size px
POST
/v1/projects/{id}/export
Exporte en PNG, JPEG ou WebP ; étapes facultatives pour ce seul fichier
POST
/v1/render
Rendu sans état d'un document entier
GET
/v1/exports
Liste vos exports
GET
/v1/exports/{id}/file
Télécharge un export
DELETE
/v1/projects/{id}
Supprime un projet
Opérations
Chaque opération est un objet avec op et ses paramètres. Les calques sont désignés par id ou par nom ; sans layer, le calque actif est utilisé. Les noms ignorent la casse et les espaces : "Linear Dodge (Add)" et "linearDodge" désignent donc le même mode de fusion. Avec steps, elles s'exécutent dans l'ordre et s'arrêtent à la première erreur (sauf avec "stopOnError": false) ; les étapes précédentes restent appliquées.
Passez steps à l'appel d'export et ils sont appliqués à une copie du projet pour ce seul fichier. Un modèle, de nombreux fichiers : changez le texte avec text.set et la photo avec layer.setImage, qui conserve la boîte du calque.
POST /v1/render prend un document entier (tel que renvoyé dans project.document), des steps facultatifs et les options d'export, et n'enregistre aucun projet. Avec "response": "image", la réponse est le fichier image.
Les erreurs sont renvoyées en JSON avec un code stable et un message detail dans la langue de votre compte. Une étape en échec indique quel paramètre était incorrect. Quand les rendus d'un forfait sont épuisés, l'API répond 402 avec quota_renders.
Limites
Imports jusqu'à 50 Mo et 12,000 px par côté.
Zone de travail jusqu'à 20,000 px par côté, dans la limite des mégapixels de votre forfait.
Jusqu'à 200 étapes par appel.
Aperçus jusqu'à 2,048 px sur le grand côté.
Les mégapixels, calques, projets, le stockage et les rendus par mois dépendent du forfait : voir Tarifs.