To make Procore's API as explorable as possible, we have provided the following sandbox environments you can use for testing:
- Weekly Sandbox - refreshed with current production data on a regularly scheduled basis once each week. Data you create, update, or manipulate within a Weekly Sandbox environment will never affect the original production data and will exist solely in the context of that environment.
- Monthly Sandbox - refreshed with current production data on a regularly scheduled basis once each month. Data you create, update, or manipulate within a Monthly Sandbox environment will never affect the original production data and will exist solely in the context of that environment.
- Developer Sandbox - generated by third-party developers from their Developer Portal account and includes seed project data that can be used for testing purposes. The Developer Sandbox enviroment does not refresh with production data at any time.
"Blue/Green" Restore Architecture
Our Weekly and Monthly Sandbox environments are setup with a "blue/green" restore architecture. This concept allows us to use several servers; one is active while others are inactive. The servers sit behind a load balancer and when an incoming request is received, it is routed to the currently active server. In turn, outbound requests come from the active server's IP address. While one server is active, one of the inactive servers is being restored from a snapshot of the Production environment taken previously. At the time of a server swap (see schedule details below) the load balancer activates the newly restored server and deactivates the current server.
Sandbox Environment Details
|Production||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.|
|Weekly Sandbox||https://api-sandbox.procore.com||Self-contained, virtual testing environment which mimics production environment approximately 96 hours prior to the weekly swap on Monday morning.|
|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.|
|Developer Sandbox||https://sandbox.procore.com/||Self-contained, virtual testing environment generated by third-party developers from their Developer Portal account. Never restores with Production data.|
Generating and Working with a Developer Sandbox
Once you have successfully registered an account on the Procore Developer Portal, you have the ability to generate a Developer Sandbox that you can use to test your application. Developer Sandboxes come pre-seeded with company and project level test data that you can expand upon to aid you in your development and test activities. A Developer Sandbox provides an isolated environment in which you can experiment and validate your application without the risk of affecting production data.
Use the following steps to generate your Developer Sandbox.
- Log in to the Developer Portal and navigate to ‘My Apps’.
- Click the tile for the App that you want to create a sandbox for.
- In the Sandbox Account panel, click ‘Generate Sandbox’. A confirmation dialog displays.
- Click ‘Generate Sandbox’ again to confirm the generation of your sandbox.
It will take approximately 10 to 20 minutes to create your sandbox. You will receive an email notifying you regarding the availability of your sandbox, as well as the URL to set your password in the sandbox environment. Once your sandbox has been successfully generated and your password has been set, you can:
- Follow the Concierge account creation process.
- Retrieve your
client_secretAPI keys for your sandbox from the Developer Portal.
- Retrieve an access token and refresh token for use with OAuth authentication.
- Retrieve the URL for your sandbox environment.
- Access your sandbox Company using your Developer Portal login username (email address) and your recently set password.
- Add and modify data in your sandbox environment using the Procore Web UI.
- Make Procore API calls to your sandbox environment.
- It is important to note that when making Procore API calls to your Developer Sandbox, you'll need to ensure that the base URL
for the endpoints you hit matches the https://sandbox.procore.com domain. For example,
- Developer Sandboxes you generate from the Developer Portal cannot be 'refreshed'. You must delete and re-generate the sandbox account if you want to work with a 'clean' environment.
Developer Sandbox First-Time Access
Note: On your first login attempt to your new sandbox Company you will be prompted to set your password for Procore access. This does not affect your Developer Portal password. When you access your sandbox for the first time, you will have the option to work through the Concierge account creation process.
Developer Sandbox Credentials
It is important to note that as you work in your Developer Sandbox you will use authentication credentials that are separate from the Procore production environment. Once you have generated your sandbox, a new Client ID and Client Secret will be available to use for your testing. Keep in mind that these credentials are only valid for your sandbox and are not recognized in the Procore production environment.
Developer Sandbox Company Directory Users
In addition to the user account you use to log into the Developer Portal, a minimum set of users is automatically created in the company directory of your sandbox when it is first generated.
- Test Architect (e.g., email@example.com)
- Test Subcontractor (e.g., firstname.lastname@example.org)
- API Support (e.g., email@example.com)
Developer Sandbox Test Project
Your Developer Sandbox comes pre-configured with a test project called 1234 - Sandbox Test Project. This project includes the following seed data to help get you started.
- Project Directory - three project users (Test Architect, Test Subcontractor, and API Support as described above)
- Schedule - basic high-level schedule with 8 tasks
- Documents - a basic document folder structure
- Photos - one basic image
- Drawings - a basic set of construction plans
- RFIs - a single RFI record
- Submittals - a single submittal record
Using Postman with Your Developer Sandbox
Postman is an API test application and framework you can use to send HTTP requests to Procore API endpoints. It allows you to quickly send requests to the Procore API and capture results. It is a useful tool for getting started with the Procore API and debugging your application. For detailed information on using Postman with a Developer Sandbox, see Exploring the Procore API with Postman.
Additional Considerations for Sandbox Environments
- After a weekly/monthly "blue/green" swap occurs, each server environment is independent of one another. Data created or updated in the weekly/monthly sandbox environments do not affect production.
- The Production environment is best used to set up data which will eventually propagate to the weekly/monthly sandbox environments where you can safely manipulate it.
- After an App is created in your Developer Portal Account, the
client_secretcredentials for your App will eventually propagate to the weekly/monthly sandbox environments.
- Users created in production will eventually propagate to the weekly/monthly sandbox environments.
- When working in Developer Sandbox environments, do not rely on
refresh_tokenfrom the production environment as those tokens will no longer align.