DEVELOPMENT ENVIRONMENTS

Overview

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.

Blue/Green Restore

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.

Provided Environments

Server URL Description
Daily Sandbox https://api-sandbox.procore.com Self-contained, virtual testing environment which mimics production environment 72 hours prior to the daily 5am UTC swap.
Monthly Sandbox https://api-sandbox-monthly.procore.com 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 https://app.procore.com Production environment with live data out of which client's work. Environment is best used for reading data and setting up data for sandboxes.

General Information

  • 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 authorization_code, access_token or refresh_token from 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_id and client_secret credentials 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.