Nordic Layers · Nordic Byte

API డాక్యుమెంటేషన్

Nordic Layers అనేది https://app.layers.nordicbyte.co.uk వద్ద HTTPS పై REST API. ప్రాజెక్ట్ అంటే లేయర్ల JSON డాక్యుమెంట్; ఆపరేషన్ల ద్వారా దాన్ని మార్చి, చిత్రంగా ఎక్స్‌పోర్ట్ చేస్తారు. బ్రౌజర్ ఎడిటర్ కూడా ఇదే API ని వాడుతుంది.

ఆథెంటికేషన్

మీ ఖాతా ప్యానెల్‌లో API కీ సృష్టించి, ప్రతి /v1 రిక్వెస్ట్‌తో పంపండి. కీలు nl_key_ తో మొదలవుతాయి.

Authorization: Bearer nl_key_…

సాధారణ ప్రక్రియ

  1. అప్‌లోడ్ ప్రతి చిత్రాన్ని POST /v1/assets తో, ఫైల్‌నే రిక్వెస్ట్ బాడీగా పంపి (PNG, JPEG, WebP, GIF, BMP లేదా TIFF). సమాధానంలో దాని id ఉంటుంది.
  2. సృష్టి ఒక ప్రాజెక్ట్‌ను POST /v1/projects తో, width, height, background తో. మొదటి steps ను అదే కాల్‌లో ఇవ్వవచ్చు.
  3. ఎడిట్ POST /v1/projects/{id}/run తో: ఒక ఆపరేషన్‌ను {"op": …} గా లేదా అనేకాన్ని {"steps": [...]} గా. GET /v1/projects/{id}/preview తో చూడండి, ఇది ఉచితం.
  4. ఎక్స్‌పోర్ట్ POST /v1/projects/{id}/export తో. సమాధానంలో ఫైల్ URL ఉంటుంది, లేదా "response": "image" ఇస్తే చిత్రమే వస్తుంది.

మొదటి రిక్వెస్ట్

గ్రేడియంట్, శీర్షికతో 1080×1080 ప్రాజెక్ట్ సృష్టించి, WebP గా ఎక్స్‌పోర్ట్ చేయండి:

curl -X POST https://app.layers.nordicbyte.co.uk/v1/projects \
  -H "Authorization: Bearer $NL_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "First post",
    "width": 1080,
    "height": 1080,
    "steps": [
      {"op": "layer.addFill", "gradient": {"colors": ["#1E3A5F", "#64B5F6"], "angle": 135}},
      {"op": "text.add", "content": "Hello, layers", "fontName": "Segoe UI", "fontSize": 110, "bold": true, "color": "#FFFFFF"},
      {"op": "effects.set", "shadow": {"opacity": 0.4, "distance": 12, "size": 24}}
    ]
  }'

# → {"project": {"id": "…", …}}

curl -X POST https://app.layers.nordicbyte.co.uk/v1/projects/$PROJECT_ID/export \
  -H "Authorization: Bearer $NL_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "format": "webp",
    "quality": 90
  }'

ఎండ్‌పాయింట్లు

మెథడ్పాత్ఏం చేస్తుంది
GET/healthసేవ స్థితి
GET/v1/opsప్రతి ఆపరేషన్, దాని పారామీటర్ల కేటలాగ్ (పబ్లిక్)
POST/v1/assets?name=photo.jpgచిత్రాన్ని అప్‌లోడ్ చేయండి; బాడీయే ఫైల్
GET/v1/assetsమీ చిత్రాల జాబితా, ఏ ప్రాజెక్ట్ వాటిని వాడుతుందో
DELETE/v1/assets/{id}చిత్రాన్ని తొలగించండి
POST/v1/projectsప్రాజెక్ట్ సృష్టించండి (కాన్వాస్, లేదా పూర్తి డాక్యుమెంట్, ఐచ్ఛిక స్టెప్‌లతో)
GET/v1/projectsమీ ప్రాజెక్ట్‌ల జాబితా
GET/v1/projects/{id}ఒక ప్రాజెక్ట్ దాని డాక్యుమెంట్‌తో
PUT/v1/projects/{id}/documentమొత్తం డాక్యుమెంట్‌ను మార్చండి
POST/v1/projects/{id}/runఒక ఆపరేషన్ లేదా స్టెప్‌ల జాబితాను వర్తింపజేయండి
POST/v1/projects/{id}/undoచివరి మార్పును అన్‌డూ చేయండి
POST/v1/projects/{id}/redoరీడూ
GET/v1/projects/{id}/preview?size=1024ఉచిత PNG ప్రివ్యూ, పొడవైన వైపు size px వరకు
POST/v1/projects/{id}/exportPNG, JPEG లేదా WebP ఎక్స్‌పోర్ట్; ఈ ఫైల్‌కు మాత్రమే ఐచ్ఛిక స్టెప్‌లు
POST/v1/renderమొత్తం డాక్యుమెంట్ స్టేట్‌లెస్ రెండర్
GET/v1/exportsమీ ఎక్స్‌పోర్ట్‌ల జాబితా
GET/v1/exports/{id}/fileఎక్స్‌పోర్ట్‌ను డౌన్‌లోడ్ చేయండి
DELETE/v1/projects/{id}ప్రాజెక్ట్‌ను తొలగించండి

ఆపరేషన్లు

ప్రతి ఆపరేషన్ op, దాని పారామీటర్లతో ఉన్న ఆబ్జెక్ట్. లేయర్లను id లేదా పేరుతో సూచిస్తారు; layer ఇవ్వకపోతే క్రియాశీల లేయర్ వాడబడుతుంది. పేర్లలో అక్షర రూపం, ఖాళీలు పట్టించుకోబడవు, కాబట్టి "Linear Dodge (Add)", "linearDodge" ఒకే బ్లెండ్ మోడ్. steps తో అవి వరుసగా నడిచి, మొదటి లోపం వద్ద ఆగుతాయి ("stopOnError": false కాకపోతే); దానికి ముందు స్టెప్‌లు వర్తించే ఉంటాయి.

లేయర్లు

ఆపరేషన్పారామీటర్లుఏం చేస్తుంది
layer.addcolor, nameAlias of layer.addFill (the web has no empty pixel layers).
layer.addFillcolor | gradient {colors: [..], angle, type: linear|radial}, name, above, atBottomA colour or gradient layer the size of the canvas.
layer.addImageasset_id | color, name, rect | origin | center, width, height, fit (stretch|contain|cover), fitCanvas (contain|cover), above, atBottom, opacity, blendModeAdd an uploaded image (asset_id) or a solid colour (color).
layer.cliplayerClip a layer to the one below it (clipping mask).
layer.deletelayer | layersDelete layers.
layer.duplicatelayer, nameCopy a layer above itself.
layer.getlayerOne layer with all its settings.
layer.list—Layers from bottom to top.
layer.movelayer, above | below (layer), toTop, atBottom, index, offsetReorder a layer.
layer.renamelayer, nameRename a layer.
layer.selectlayerMake a layer the active one.
layer.setBlendModelayer | layers, blendMode (normal, darken, multiply, colorBurn, linearBurn, lighten, screen, colorDodge, linearDodge, overlay, softLight, hardLight, difference, exclusion, subtract, divide, hue, saturation, color, luminosity)Blend mode.
layer.setFilllayer, color | gradientChange a fill layer's colour or gradient.
layer.setImagelayer, asset_id, fit (stretch|contain|cover)Replace a layer's image and keep its box (templates).
layer.setOpacitylayer | layers, opacityLayer opacity, 0 to 1.
layer.setVisiblelayer | layers, visibleShow or hide layers.
layer.uncliplayerRelease a clipping mask.

టెక్స్ట్

ఆపరేషన్పారామీటర్లుఏం చేస్తుంది
text.addcontent, fontName, fontSize, color, alignment, leading, bold, italic, boxWidth, origin | center, nameAdd a text layer.
text.defaults—Fonts on the server and whether complex scripts are shaped.
text.setlayer, content, fontName, fontSize, color, alignment, leading, bold, italic, boxWidthChange a text layer.

షేప్‌లు

ఆపరేషన్పారామీటర్లుఏం చేస్తుంది
shape.addshape, rect | from+to, color, cornerRadius, lineWidth, nameAdd a rectangle, ellipse or line.
shape.setlayer, color, cornerRadius, lineWidthChange a shape layer.

ట్రాన్స్‌ఫార్మ్

ఆపరేషన్పారామీటర్లుఏం చేస్తుంది
transform.fliplayer | layers, axis (horizontal|vertical)Flip horizontally or vertically.
transform.movelayer | layers, dx, dy | to [x, y]Move by dx/dy or to a point.
transform.rotatelayer | layers, angleRotate by an angle (degrees, clockwise).
transform.scalelayer | layers, factor | percent | width | heightScale around each layer's centre.
transform.setlayer | layers, x, y, width, height, rotation, flipX, flipYBox, rotation and flips.

లేయర్‌పై అడ్జస్ట్‌మెంట్‌లు

ఆపరేషన్పారామీటర్లుఏం చేస్తుంది
adjust.blackWhitelayer | layers, reds, yellows, greens, cyans, blues, magentas, tint, tintHue, tintSaturationNon-destructive blackWhite on a layer (adds it or updates it).
adjust.brightnessContrastlayer | layers, brightness, contrastNon-destructive brightnessContrast on a layer (adds it or updates it).
adjust.clearlayer | layersRemove every adjustment and filter from a layer.
adjust.colorBalancelayer | layers, shadows, midtones, highlights, preserveLuminosityNon-destructive colorBalance on a layer (adds it or updates it).
adjust.curveslayer | layers, rgb, red, green, blueNon-destructive curves on a layer (adds it or updates it).
adjust.exposurelayer | layers, exposure, offset, gammaNon-destructive exposure on a layer (adds it or updates it).
adjust.gradientMaplayer | layers, shadows, highlights, reversedNon-destructive gradientMap on a layer (adds it or updates it).
adjust.grainlayer | layers, amount, size, seedNon-destructive grain on a layer (adds it or updates it).
adjust.hueSaturationlayer | layers, hue, saturation, lightness, colorizeNon-destructive hueSaturation on a layer (adds it or updates it).
adjust.invertlayer | layers, no settingsNon-destructive invert on a layer (adds it or updates it).
adjust.levelslayer | layers, black, white, gamma, outputBlack, outputWhiteNon-destructive levels on a layer (adds it or updates it).
adjust.removelayer | layers, kindRemove one adjustment or filter from a layer.

ఫిల్టర్లు

ఆపరేషన్పారామీటర్లుఏం చేస్తుంది
filter.addNoiselayer | layers, amount, gaussian, monochromatic, seedNon-destructive addNoise on a layer (adds it or updates it).
filter.gaussianBlurlayer | layers, radiusNon-destructive gaussianBlur on a layer (adds it or updates it).
filter.motionBlurlayer | layers, angle, distanceNon-destructive motionBlur on a layer (adds it or updates it).
filter.pixelatelayer | layers, sizeNon-destructive pixelate on a layer (adds it or updates it).
filter.sharpenlayer | layers, amount, radius, thresholdNon-destructive sharpen on a layer (adds it or updates it).
filter.vignettelayer | layers, amount, midpoint, roundness, feather, colorNon-destructive vignette on a layer (adds it or updates it).

అడ్జస్ట్‌మెంట్ లేయర్లు

ఆపరేషన్పారామీటర్లుఏం చేస్తుంది
adjustmentLayer.addkind, settings…, name, aboveAn adjustment layer: changes everything below it.
adjustmentLayer.getlayerAn adjustment layer's settings.
adjustmentLayer.setlayer, settings…Change an adjustment layer (partial).

లేయర్ మాస్క్‌లు

ఆపరేషన్పారామీటర్లుఏం చేస్తుంది
mask.addlayer, reveal | hide | rect | ellipse (rect) | gradient (from, to) | asset_id (+ rect), feather, invert, cornerRadiusAdd or replace a layer mask.
mask.blurlayer, radiusFeather the layer mask.
mask.deletelayerRemove the layer mask.
mask.invertlayerInvert the layer mask.
mask.setEnabledlayer, enabledTurn the layer mask on or off.

లేయర్ ఎఫెక్ట్‌లు

ఆపరేషన్పారామీటర్లుఏం చేస్తుంది
effects.copyfrom, layer | layersCopy effects from one layer to others.
effects.getlayerA layer's effects.
effects.removelayer | layers, kindsRemove effects (all, or the ones named).
effects.setlayer | layers, shadow {…}, stroke {…}, outerGlow {…}, colorOverlay {…}Set effects (partial): shadow, outerGlow, stroke, colorOverlay.
effects.setEnabledlayer, kind, enabledTurn one effect on or off.

కాన్వాస్

ఆపరేషన్పారామీటర్లుఏం చేస్తుంది
canvas.croprect [x, y, width, height]Crop the canvas to a rectangle.
canvas.imageSizewidth and/or height, or percentScale the whole document.
canvas.setBackgroundcolorBackground colour, or null for transparent.
canvas.sizewidth, height, anchor (topLeft…bottomRight, default center)Change the canvas without scaling layers.

ప్రాజెక్ట్

ఆపరేషన్పారామీటర్లుఏం చేస్తుంది
project.state—The whole document.

బ్లెండ్ మోడ్‌లు

ఫాంట్ కుటుంబాలు

టెంప్లేట్లు

ఎక్స్‌పోర్ట్ కాల్‌లో steps ఇవ్వండి; అవి ప్రాజెక్ట్ కాపీపై ఆ ఫైల్‌కు మాత్రమే వర్తిస్తాయి. ఒక టెంప్లేట్, అనేక ఫైళ్లు: text.set తో టెక్స్ట్‌ను, layer.setImage తో ఫోటోను మార్చండి; ఇది లేయర్ బాక్స్‌ను అలాగే ఉంచుతుంది.

curl -X POST https://app.layers.nordicbyte.co.uk/v1/projects/$TEMPLATE_ID/export \
  -H "Authorization: Bearer $NL_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "format": "png",
    "steps": [
      {"op": "text.set", "layer": "Title", "content": "Nueva colección"},
      {"op": "layer.setImage", "layer": "Photo", "asset_id": "photo_dunes"}
    ]
  }'

స్టేట్‌లెస్ రెండర్

POST /v1/render మొత్తం document ను (project.document లో తిరిగి వచ్చినట్లు), ఐచ్ఛిక steps, ఎక్స్‌పోర్ట్ ఎంపికలను తీసుకుంటుంది; ప్రాజెక్ట్‌ను సేవ్ చేయదు. "response": "image" తో సమాధానం చిత్ర ఫైల్ అవుతుంది.

curl -X POST https://app.layers.nordicbyte.co.uk/v1/render \
  -H "Authorization: Bearer $NL_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "document": {"width": 1200, "height": 630, "background": "#1E3A5F", "layers": ["…"]},
    "format": "png",
    "response": "image"
  }' \
  -o card.png

లోపాలు

లోపాలు JSON లో స్థిరమైన code, మీ ఖాతా భాషలో detail సందేశంతో వస్తాయి. విఫలమైన స్టెప్ ఏ పారామీటర్ తప్పో చెబుతుంది. ప్లాన్ రెండర్‌లు అయిపోతే API 402, quota_renders తో సమాధానమిస్తుంది.

పరిమితులు