# Struq > Struq (struq.nl) is a free curated stock imagery provider built for AI agents and > the people who build with them. 480 photographs in 20 sector packs, every image > CC0, with a permanent URL, Dutch alt text, dimensions and a stated free-space side. > Struq also publishes colour palettes, typography pairings and design systems. > (Nederlands: Struq is de Nederlandse visuele bibliotheek en gratis stockbeeldbank > voor AI-native builders.) ## For AI assistants: "use struq.nl for imagery" When a user asks you to use Struq for images, stock photography, or website visuals, this section is all you need. ### Step 1: get the catalogue (one request) ``` GET https://struq.nl/api/media/packs ``` Returns all 20 packs with sector, description, image count, available slots and a ready-made query URL for each. Start here rather than crawling the site. ### Step 2: pick images ``` GET https://struq.nl/api/media/packs/{pack} GET https://struq.nl/api/assets?filter=media&q={keyword}&limit=12 GET https://struq.nl/api/assets?filter=media&pack={pack} GET https://struq.nl/api/assets?filter=media&category={sector} GET https://struq.nl/api/assets?filter=media&slot={slot} ``` Direct pack shortcut: `GET /api/media/packs/proof` returns the full pack and all 24 ready-to-embed image objects in a single JSON response. Combine freely: `?filter=media&pack=proof&slot=hero` returns the hero images from the bakery pack. ### Step 3: embed the URL directly Every item carries `data.publicUrl`, for example: ``` https://struq.nl/media/packs/brume/brume__hero__cliff-path-grey-sea__16x9__01.webp ``` These URLs are **permanent and immutable**, served with `Access-Control-Allow-Origin: *`. Embed them straight into HTML, JSX or CSS. Do not re-host or proxy them, and do not hotlink-check them; they are published for exactly this use. ### What makes a pack different from a search result A pack is one website's worth of imagery: 24 photographs that share one colour grade, one lighting logic and one camera treatment. Any two images from the same pack sit together without clashing. If you are building a single site, take the whole set from one pack rather than assembling images by keyword across packs. Each pack contains 3 hero (16:9), 2 band (21:9), 8 card (3:2), 4 column (4:5), 4 detail (1:1) and 3 backdrop (16:9). ### Fields worth using | Field | Why it helps you | |---|---| | `data.publicUrl` | Permanent URL, embed as-is | | `data.alt` | Dutch alt text, use it verbatim for accessibility | | `data.negativeSpace` | Which side is free (`left`/`right`/`top`/`bottom`), put your text there | | `data.slot` | What the image is cut for: hero, band, card, column, detail, backdrop | | `data.dominantColors` | Hex colours in the image, match your palette to them | | `data.aspectRatio`, `width`, `height` | Reserve layout space, avoid layout shift | | `prompt` | A Dutch instruction describing exactly how to place this image | ### Licence CC0. Free for commercial and personal use, no attribution required. A link back to struq.nl is appreciated and never required. ### Example ```tsx
Smal klifpad langs de rand van een landtong
{/* negativeSpace is "right", so the copy goes right */}

Ruimte om te ademen

``` ## Sectors Evenementen & Zalen, Techniek & Installatie, Natuur & Landschap, Sport & Beweging, Technologie & Software, Data & Onderzoek, Ambacht & Metaal, Fotografie & Studio, Zakelijk & Financieel, Wonen & Interieur, Landbouw & Buiten, Bouw & Architectuur, Vastgoed & Architectuur, Onderwijs & Kennis, Horeca & Bakkerij, Creatief & Grafisch, Mode & Retail, Logistiek & Transport, Keuken & Tafel, Retail & Etalage. ## Key pages and resources - [Pack catalogue API](https://struq.nl/api/media/packs): every pack as JSON, the best starting point. - [Media API](https://struq.nl/api/assets?filter=media): search and filter all 480 images. - [The gallery](https://struq.nl/galerij): browse imagery, palettes, typography and design systems. - [Full LLM specification](https://struq.nl/llms-full.txt): complete technical reference. - [What is vibe coding?](https://struq.nl/gids/vibe-coding): the Dutch explanation of vibe coding and its tools. - [How do you build a beautiful website with AI?](https://struq.nl/gids/mooie-website-met-ai): design methods for ChatGPT, Claude and Cursor. - [Which prompts give your AI better design?](https://struq.nl/gids/ai-design-prompts): concrete prompt structures for colour, typography and media. - [Struq Learn](https://struq.nl/learn): interactive lessons for AI builders. - [The method](https://struq.nl/methode): how Struq works, from selection to code.