Shutterstock CSV Template: Download + How to Use It
The exact Shutterstock CSV template columns, formatting rules, and upload steps — plus the mistakes that get your metadata file rejected.
[{"_key":"c1","_type":"block","children":[{"_key":"cs1","_type":"span","marks":[],"text":"If you are still typing descriptions and keywords into the Shutterstock web form one image at a time, you are doing hours of unnecessary work. The Shutterstock CSV template lets you attach complete metadata to an entire batch in a single upload — hundreds of files at once. The catch is that Shutterstock's parser is strict: get a column header or a delimiter wrong and the whole file is rejected with a vague error. This guide covers the exact column structure, the formatting rules that actually matter, and how the CSV fits into an FTP workflow."}],"markDefs":[],"style":"normal"},{"_key":"c2","_type":"block","children":[{"_key":"cs2","_type":"span","marks":[],"text":"The exact Shutterstock CSV template columns"}],"markDefs":[],"style":"h2"},{"_key":"c3","_type":"block","children":[{"_key":"cs3","_type":"span","marks":[],"text":"The template uses seven columns in a fixed order. Columns A through D are required; E through G are optional flags you can include or omit."}],"markDefs":[],"style":"normal"},{"_key":"c4","_type":"block","children":[{"_key":"cs4","_type":"span","marks":[],"text":"Column A — Filename. The exact file name including extension (image_001.jpg). This is the key that links the row to your uploaded file, so it must match precisely."}],"markDefs":[],"style":"normal"},{"_key":"c5","_type":"block","children":[{"_key":"cs5","_type":"span","marks":[],"text":"Column B — Description. A natural-language sentence describing the image. This becomes your title on the site, so write it for a human buyer, not as a keyword dump."}],"markDefs":[],"style":"normal"},{"_key":"c6","_type":"block","children":[{"_key":"cs6","_type":"span","marks":[],"text":"Column C — Keywords. Comma-separated terms, up to 50, ordered with the most relevant first."}],"markDefs":[],"style":"normal"},{"_key":"c7","_type":"block","children":[{"_key":"cs7","_type":"span","marks":[],"text":"Column D — Categories. One or two categories, comma-separated, chosen strictly from Shutterstock's predefined list. Invented category names will fail."}],"markDefs":[],"style":"normal"},{"_key":"c8","_type":"block","children":[{"_key":"cs8","_type":"span","marks":[],"text":"Columns E, F, G — Illustration, Mature Content, and Editorial. Each takes Yes or No. Mark Illustration for renders, vectors, and composites; Editorial for newsworthy content without releases (which also requires the strict editorial caption format)."}],"markDefs":[],"style":"normal"},{"_key":"c9","_type":"block","children":[{"_key":"cs9","_type":"span","marks":[],"text":"Formatting rules that decide whether your file is accepted"}],"markDefs":[],"style":"h2"},{"_key":"c10","_type":"block","children":[{"_key":"cs10","_type":"span","marks":[],"text":"Column headers must match Shutterstock's sample exactly — same spelling, same order. If the file is not formatted precisely as shown, the uploader rejects it wholesale with an error about invalid contents rather than telling you which row is wrong. Save as true CSV (UTF-8), not XLSX renamed. Because keywords are themselves comma-separated, any field containing commas must be wrapped in double quotes, which spreadsheet software normally handles automatically — but verify by opening the saved file in a plain text editor before uploading."}],"markDefs":[],"style":"normal"},{"_key":"c11","_type":"block","children":[{"_key":"cs11","_type":"span","marks":[],"text":"Two further traps catch people regularly. Special characters and smart quotes pasted from Word can break parsing, so keep text plain. And filenames are matched literally: IMG_2841.JPG and img_2841.jpg are not treated as the same file. Exporting metadata programmatically rather than hand-typing filenames eliminates most of these failures."}],"markDefs":[],"style":"normal"},{"_key":"c12","_type":"block","children":[{"_key":"cs12","_type":"span","marks":[],"text":"How to upload the CSV (and where people go wrong)"}],"markDefs":[],"style":"h2"},{"_key":"c13","_type":"block","children":[{"_key":"cs13","_type":"span","marks":[],"text":"This is the single most common mistake: do not send the CSV alongside your images. Upload your files first — via FTP or the web uploader — then go to the Submit page and use the dedicated CSV button at the top to attach the metadata file. A CSV pushed through FTP with your images is simply ignored, and contributors often conclude the template is broken when the file was never read at all."}],"markDefs":[],"style":"normal"},{"_key":"c14","_type":"block","children":[{"_key":"cs14","_type":"span","marks":[],"text":"The order matters because Shutterstock matches rows to already-received files by filename. Upload images, wait for them to appear in your Submit queue, then apply the CSV. Any row whose filename has no match is skipped silently — so if metadata appears on some files but not others, mismatched filenames are almost always the cause."}],"markDefs":[],"style":"normal"},{"_key":"c15","_type":"block","children":[{"_key":"cs15","_type":"span","marks":[],"text":"CSV vs embedded IPTC metadata"}],"markDefs":[],"style":"h2"},{"_key":"c16","_type":"block","children":[{"_key":"cs16a","_type":"span","marks":[],"text":"There are two ways to deliver metadata to Shutterstock, and the strongest workflow uses both. Embedded IPTC metadata lives inside the JPEG itself and travels with the file to every agency, which makes it ideal for multi-platform submission. A CSV, by contrast, is Shutterstock-specific but handles things IPTC cannot — notably category assignment and the Editorial and Mature flags. Embed IPTC for portability, then layer a CSV on top for the Shutterstock-only fields. Our guide on "},{"_key":"cs16b","_type":"span","marks":["cl1"],"text":"how to write metadata for stock photos"},{"_key":"cs16c","_type":"span","marks":[],"text":" covers the underlying fields in more depth."}],"markDefs":[{"_key":"cl1","_type":"link","href":"https://rastock.ai/blog/how-to-write-metadata-for-stock-photos"}],"style":"normal"},{"_key":"c17","_type":"block","children":[{"_key":"cs17","_type":"span","marks":[],"text":"Automating CSV metadata upload for stock photos"}],"markDefs":[],"style":"h2"},{"_key":"c18","_type":"block","children":[{"_key":"cs18a","_type":"span","marks":[],"text":"Building the CSV is only half the labour — you still have to write 50 keywords and a description for every row, and a spreadsheet does not help with that. This is where the workflow is worth automating end to end. Rastock AI "},{"_key":"cs18b","_type":"span","marks":["cl2"],"text":"generates the metadata, exports a correctly formatted CSV per agency, and delivers files over FTP"},{"_key":"cs18c","_type":"span","marks":[],"text":", so filenames always match and headers are never malformed. Since each platform wants a different template — Shutterstock's seven columns look nothing like Adobe's — generating them automatically removes an entire category of rejected uploads. Plans are listed by monthly volume on the "},{"_key":"cs18d","_type":"span","marks":["cl3"],"text":"pricing page"},{"_key":"cs18e","_type":"span","marks":[],"text":"."}],"markDefs":[{"_key":"cl2","_type":"link","href":"https://rastock.ai/features"},{"_key":"cl3","_type":"link","href":"https://rastock.ai/pricing"}],"style":"normal"},{"_key":"c19","_type":"block","children":[{"_key":"cs19","_type":"span","marks":[],"text":"Used properly, the CSV template turns metadata from a per-image chore into a single step at the end of your export. Get the seven columns right, upload images before the CSV, keep filenames exact, and a 500-file batch takes about as long to describe as a handful did before."}],"markDefs":[],"style":"normal"}]