Name and id
Every project has a display name and a fixed project id. The name is yours to change whenever you like - it is what the project picker shows. The id is derived from the name when the project is created and can never be changed afterwards. That is not a limitation we forgot to lift: every stored item and log is filed under the id, each job’s storage path begins with it, and every image we build is tagged with it. Renaming it would leave all of that behind a path nothing looks up any more, while the dashboard carried on looking correct. If you truly need a different id, create a new project.Environment variables
Set under Settings → Environment variables, oneKEY=value per line, or as key/value fields. They are handed to every job in the project.
Use them for what your own spider code reads: a database URI your pipeline connects to, an API key a parser needs, a flag your settings.py checks.
Names beginning with SU_CLOUD_, SU_UNBLOCK, SU_API_, SU_S3_ or SU_RUNNER_ are reserved and dropped. They configure the platform’s own side of the container - where items are sent, which key routed traffic uses - and a project that could redefine them could point its own item sink somewhere else.
Scrapy settings
Scrapy settings are a separate layer from environment variables, and the difference is not cosmetic. They are set as JSON under Run options → Scrapy settings, on a single run or on a schedule:- your project’s own
settings.py, as Scrapy loads it; - settings saved as the project’s defaults;
- settings on the job or schedule.
cmdline priority, the same priority scrapy crawl -s KEY=value uses, which outranks the settings module.
Which one does your project actually read?
The rule of thumb:
If you are unsure which case you are in, set it in both. They do not conflict.
The ScrapeUnblocker key
Each project stores the ScrapeUnblocker API key its routed jobs run on. It is taken from your account when the project is created, so nobody has to type a key they already have, and traffic counts against your quota rather than ours or another customer’s. Under Settings → ScrapeUnblocker key you see whether one is stored - never the key itself, which is held encrypted and is never shown again anywhere - and three actions:
A job set to
marked or all with no usable key fails immediately with the reason on the row, instead of sitting in the queue looking like congestion. See routing modes.
Concurrency
Your organisation has a number of concurrency slots - how many jobs may run at once across the whole fleet. Beyond that, jobs wait inpending until one of your running jobs finishes. A queue of your own making looks exactly like a queue caused by capacity, so check what else of yours is running before assuming the fleet is full.
Retention
Items and logs are kept for the retention period of your plan and then deleted. A job whose data has passed that point still exists, with its stats and history intact; its Items view says the stored data has been deleted rather than showing an empty list. If you need the data to outlive that window, add a destination.Deleting and restoring a project
Deleting is reversible for 24 hours. In that window:- queued jobs are cancelled immediately - the point of deleting is that work stops;
- schedules are left exactly as they were, so restoring gives back the project you deleted rather than one with its automation quietly switched off. While the project is deleted the schedule’s clock keeps moving and the runs are skipped, so restoring resumes the normal rhythm instead of firing every missed run at once;
- the project stays visible in the picker, marked deleted, with the time left and a Restore button.
Next steps
Deploys and refs
Connecting the repository, building a branch, and what each build records.
Jobs
Run options, job states, items and crawl statistics.

