An overnight batch of a few thousand files fails for boring reasons: a dropped connection at three in the morning, an agency that quietly discards a half-written file, a queue with no retry and no record of what got through. The tools that survive a run like that all share three traits — they upload in the background, they keep a history, and they let you re-send only what failed.
What actually breaks in an overnight run
Very little goes wrong with a ten-file upload. The failure modes only appear at volume, and they are rarely dramatic. A laptop sleeps mid-transfer. A router renegotiates its connection. An agency's ingestion queue is busy and the session times out. The transfer itself is not the fragile part — the fragile part is knowing, the next morning, exactly which files landed and which did not.
That is why upload history matters more than raw transfer speed. A tool that moves files fast but cannot tell you what it moved forces you to reconcile a folder against six agency dashboards by hand, which is exactly the work you were trying to avoid. Practically, the things that go wrong in a large nightly batch fall into four groups:
- Interrupted transfers that leave a truncated file on the agency's server, which then fails review for a reason that has nothing to do with the image.
- Credential and session expiry mid-run, which tends to hit the agencies scheduled last in the queue.
- Metadata that is valid for one agency and rejected by the next, so the same file lands cleanly in three places and bounces from two.
- Silent success — the transfer completed, but the agency has not ingested the batch yet, and you cannot tell the difference from the outside.
What the agencies themselves document
Most advice about overnight uploads is folklore. The agencies publish less than people assume, and where they do publish, the details differ enough to matter when you are running one job across several destinations. Here is what their own contributor documentation states.
Shutterstock
Shutterstock's contributor help documents FTP over TLS on port 21 at ftps.shutterstock.com, and states that uploaded files can take up to 72 hours to appear on the site. That single number changes how you should read an empty dashboard the morning after a run — nothing appearing is not evidence of failure. Their FTPS upload article also carries an ordering rule that trips up scripted workflows: do not send the CSV alongside the media over FTPS. It has to be attached separately on the Submit page.
Adobe Stock
Adobe states plainly that you can upload as many files as you want and that there are no data limits, and FTP credentials are generated per account inside the Contributor portal rather than published as a fixed host. On interrupted transfers, Adobe's guidance is reassuring and specific: files that have already uploaded successfully are available in the portal, and you can continue with the rest once you reconnect. The browser upload path carries a 45 MB per-file ceiling, which is the usual reason people move to FTP for video in the first place.
Alamy
Alamy documents plain FTP on port 21 at upload.alamy.com. Their contributor upload guide states that the very first submission must be exactly three images and that after that there are no limits, that images go on sale within 24 hours on average once they clear QC, and that submissions cannot be deleted while they are queued for QC. The detail that breaks automated runs is the destination folder: Live News, Stock, Archive stock and Vectors are separate, and vector files need an accompanying JPEG carrying the IPTC caption and keywords under a matching filename in the same batch.
Pond5, Depositphotos and 123RF
Pond5 uses ftp.pond5.com and requires a dedicated FTP password of at least eight characters that must differ from your login password — set separately under Account. Their FTP uploader documentation asks you to allow at least a few hours for files to appear on the Uploads page, and a system-level rejection surfaces there as "Processing Failed" rather than as a transfer error, so a clean transfer log does not mean a clean batch.
Depositphotos is the most permissive of the three on paper: it uses ftp.depositphotos.com and states outright that there are no restrictions or limitations on the number of images you can upload per day or on the frequency. 123RF splits by content type — ftp.123rf.com for stills and footage.ftp.123rf.com for video — and publishes hard technical ceilings: photos up to 30 MB and at least 6 megapixels at 80% JPEG quality or better, video up to 4 GB, up to 120 seconds, at 720p or above.
123RF also has a two-step ingestion that catches people out: transferring the files is not the end of it, because the batch has to be pulled in from the Contributor Dashboard under Upload Content before it enters the processing queue. An unattended script that finishes its transfer and exits will leave that batch sitting untouched until someone logs in.
One thing worth stating plainly, because it is repeated so often as fact: none of these agencies publishes a recommended off-peak upload window. Advice about uploading at 4am to catch an idle queue is third-party guesswork. What the agencies do publish is ingestion time — up to 72 hours at Shutterstock, roughly 24 hours to on-sale at Alamy, a few hours at Pond5 — and those figures are the ones worth planning around.
Six tools, and what each is actually good at
These are the options contributors realistically choose between for large recurring batches. None of them is best at everything, and the honest differences are mostly about where the work runs and who holds the credentials.
A scripted FTP client (lftp, rclone, FileZilla)
- Best for: raw transfer reliability. Nothing beats a scripted job with parallel connections, automatic retry and a written log — and it costs nothing.
- Pricing model: free and open source.
- Main limitation: it knows nothing about metadata, per-agency field rules or folder conventions. You are responsible for embedding IPTC, for Alamy's paired vector JPEGs, for 123RF's dashboard pull-in step, and for reconciling results yourself.
Xpiks
- Best for: contributors who want a desktop tool they own outright, with metadata editing and uploading in one window.
- Pricing model: their pricing page lists a free Basic tier limited to 15 files per session with unlimited sessions, a one-time €49 Pro licence covering a year of unlimited files, and a €99-a-year Pro+ tier. Background upload, upload history and custom FTP directories are Pro features; Pro+ adds 48 GB of cloud upload at 4 GB a month.
- Main limitation: it runs on your machine, so an overnight batch needs a computer that stays awake and connected. The cloud upload allowance is capped monthly, which puts a ceiling on how much of a large run can be handed off.
StockSubmitter
- Best for: breadth of destinations. Their site states support for 40 agencies and lists them by group, which is more than most competitors attempt.
- Pricing model: tiered monthly subscription counted in submissions, from a free tier upward. Their own footnote defines a submission as filling the metadata fields of a single file and sending it for review, counted separately for every agency — so ten agencies multiply your allowance rather than consume it. Transferring the files themselves is free and unlimited.
- Main limitation: the desktop app is Windows only — their download page specifies Windows 10 or newer, 64-bit. Not every agency reports approval or rejection status back, so the dashboard is not a complete picture. No revenue share and no ownership claim over your files.
Microstock+
- Best for: the same publisher's browser-based route, which is the practical answer for macOS and Linux users shut out of the Windows desktop app. Because it runs in the cloud, a long batch does not depend on your laptop staying awake.
- Pricing model: subscription, with free cloud storage included and paid expansion above it. Unpaid storage overage blocks further uploading.
- Main limitation: agency credentials are stored encrypted on their servers rather than on your machine, which is a real trade-off to weigh rather than a flaw. Their own pages give inconsistent agency counts, so verify that your specific destinations are supported before committing a large archive.
Managed distribution services
- Best for: contributors who would rather hand files over than run a pipeline at all. Wirestock and similar services take the files, handle keywording and distribution, and deal with the agencies on your behalf.
- Pricing model: historically a share of royalties rather than a flat subscription. Terms in this category change often enough that the only responsible advice is to read the current agreement on the vendor's own site before you commit a portfolio.
- Main limitation: you give up direct control of the pipeline and, depending on the agreement, a slice of every sale for as long as the file earns. That can still be the right trade if your time is worth more than the percentage, but it is a permanent cost rather than a fixed one.
Rastock AI
- Best for: runs where the metadata and the delivery are the same job. Metadata is generated against each agency's own field rules, embedded as IPTC, and then delivered over FTP or SFTP to 10+ agencies with per-destination delivery status.
- Pricing model: flat monthly subscription with no revenue share and no ownership claim over your files; IPTC and CSV export stay open. Plans start at $9 a month, and the 14-day trial covers a real FTP delivery rather than just keywording.
- Main limitation: it is a managed pipeline, not a general-purpose FTP client. If you want to script the transfer yourself against an arbitrary host, a plain client is the better fit, and if your only problem is transfer reliability rather than metadata, you do not need it.
When to use which
Use a scripted FTP client when your metadata is already correct and embedded, your destinations are few, and what you actually need is a transfer that retries by itself and writes a log. This is the strongest option for a single high-volume destination and the weakest for six destinations with different field rules.
Use Xpiks when you work on one machine, prefer a one-time purchase to a subscription, and want fine manual control of keywords. Use StockSubmitter when destination breadth is the deciding factor and you are on Windows; use Microstock+ instead when you are not on Windows, or when you want the batch to keep running with your laptop shut.
Use a managed service when you would genuinely rather not think about any of this and the royalty share is acceptable to you. Use a metadata-and-delivery platform like Rastock when the nightly batch is large, the destinations differ in what they will accept, and the failure you keep hitting is metadata rejection rather than transfer failure — those are different problems and they need different tools.
A checklist for the night before
- Confirm the machine will not sleep, and that any VPN or firewall rule survives the whole window.
- Verify per-agency credentials individually, especially Pond5's separate FTP password, which is the one most people forget they set.
- Check the files against the strictest destination's technical ceiling before the run rather than after — 123RF's 30 MB and 6 MP limits are usually the binding constraint for stills.
- Keep CSV out of the media transfer where the agency requires it separately, and keep vector JPEG pairs together where the agency requires them together.
- Write the batch manifest somewhere you can diff against in the morning. Whatever tool you use, the manifest is what turns a failed run into a ten-minute fix instead of an afternoon.
For the per-agency mechanics, we have step-by-step walkthroughs for uploading to Shutterstock via FTP and uploading to Adobe Stock via FTP, both of which cover the folder conventions a scripted run has to respect.
If you are designing the pipeline rather than fixing one run, our explainer on automatic upload to multiple stock agencies covers the architecture, and avoiding duplicate uploads across agencies covers the failure mode that a retry-happy nightly job tends to create.
Frequently asked questions
Is there a best time of night to run a large FTP batch?
None of the major agencies publishes a recommended off-peak window, so any specific hour you see quoted is third-party guesswork. What they do publish is ingestion time. Shutterstock says files can take up to 72 hours to appear, Alamy says images go on sale within roughly 24 hours after QC, and Pond5 asks for at least a few hours. Plan around those windows rather than around a supposed quiet hour.
My files transferred but nothing shows in the dashboard. Did the run fail?
Probably not. Ingestion is a separate stage from transfer at every major agency, and the published delays are long enough that an empty dashboard the next morning is normal. 123RF is the exception worth checking first: after the FTP transfer you have to pull the batch in from the Contributor Dashboard before it enters processing at all, so an unattended script leaves it sitting.
Can I send my metadata CSV over FTP with the images?
It depends on the agency, and Shutterstock explicitly says no. Their help documentation instructs contributors not to upload the CSV with the media over FTPS or the web uploader, and to attach it separately on the Submit page instead. Adobe also handles CSV through the Contributor portal rather than the FTP drop. Check each destination before scripting a single combined transfer.
Do I need SFTP rather than plain FTP?
Where an agency offers it, encrypted transfer is the safer default, but you do not always get the choice. Shutterstock documents explicit FTP over TLS on port 21, while Alamy and several others document plain FTP. Since the agency defines what its server accepts, the practical rule is to use the most secure option each destination publishes rather than to standardise on one protocol.
What happens to a file if the connection drops mid-transfer?
It usually leaves a truncated file that then fails review for reasons unrelated to the image. Adobe states that files already uploaded successfully remain available in the portal and that you can continue with the remainder after reconnecting. Most other agencies do not document resume behaviour, which is the strongest practical argument for a tool that keeps an upload history and can re-send only the incomplete files.
Is a free scripted FTP client good enough for a nightly batch?
For pure transfer reliability, yes, and often better than paid tools: lftp or rclone will retry, parallelise and log without complaint. What a script cannot do is handle per-agency metadata rules, Alamy's paired vector JPEGs, or the reconciliation afterwards. If your failures are transfer failures, a script solves them. If your failures are metadata rejections, it will not.