To make Procore's API as explorable as possible, we have provided sandbox development environments which restore with Production data on a regular basis. Data created, updated, or manipulated using the API within our sandbox environments will never affect production data and exist solely in the sandbox environments.
Currently our daily environment has been setup for a blue/green restore. This concept allows us to use several servers, one is active while others will be inactive. These servers sit behind a load balancer and when an incoming request is received, it is routed to the active server. In turn, outbound requests come from the active server's IP.
While one server is active, one of the inactive servers will be restoring from a snapshot of Production taken previously. At the time of the swap, which occurs at 5am UTC, the load balancer will activate the newly restored server and deactivate the other. This way there is virtually no downtime since it is a simple swap of the servers at the designated time listed in the table below.
||Self-contained, virtual testing environment which mimics production environment 72 hours prior to the daily 5am UTC swap.|
||Self-contained, virtual testing environment which mimics production environment 120 hours prior to the swap that occurs at 5am UTC on the 2nd of each month.|
|Production - Live||
||Production environment with live data out of which client's work. Environment is best used for reading data and setting up data for sandboxes.|
- After the swap occurs, each server environment is independent of one another. Data created or updated in the sandbox environments do not affect production.
- When on sandbox environments, do not rely on
refresh_tokenfrom the production environment as those tokens may no longer align.
- Production is best used to set up data which will eventually propagate to the sandbox environments where you can safely manipulate it.
- After an app is created, the
client_secretcredentials will eventually propagate to the sandbox environments.
- Users created in production will eventually propagate to the sandbox environments.
Generate a Development Sandbox
In addition to the daily and monthly sandboxes described above, you can generate your own development sandbox for each application you manage in the Developer Portal. See Development Sandbox Generation for additional information.