Sandbox Environments

Introduction

To make Procore's API as explorable as possible, we have provided the following sandbox environments you can use for testing:

  • 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.
  • Development Sandbox - generated by third-party developers from their Developer Portal account and includes seed project data that can be used for testing purposes. The Development Sandbox enviroment does not refresh with production data at any time.

"Blue/Green" Restore Architecture

Our Monthly Sandbox environment is set up 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

Environment URL Description
Monthly Sandbox https://api-sandbox-monthly.procore.com Self-contained, virtual testing environment which mimics the production environment approximately 7 days prior to the swap that occurs at 5am UTC on the 2nd of each month. In order to ensure that changes you make in your production environment are present in the next month's monthly sandbox instance, we recommend making those production changes by the 20th of the current month.
Development 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 Development Sandbox

Once you have successfully registered an account on the Procore Developer Portal, you have the ability to generate a Development Sandbox that you can use to test your application. Development 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 Development 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 Development 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_id and client_secret API 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.

Important Considerations

  • It is important to note that when making Procore API calls to your Development Sandbox, you'll need to ensure that the base URL for the endpoints you hit matches the https://sandbox.procore.com domain. For example, https://sandbox.procore.com/vapid/me
  • Development 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.

Development 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.

Development Sandbox Credentials

It is important to note that as you work in your Development 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.

Development 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., sandbox+arch@example.com)
  • Test Subcontractor (e.g., sandbox+sub@example.com)
  • API Support (e.g., sandbox+demo@example.com)

Development Sandbox Test Project

Your Development 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 Development 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 Development Sandbox, see Exploring the Procore API with Postman.

Additional Considerations for Sandbox Environments

  • After a monthly "blue/green" swap occurs, each server environment is independent of one another. Data created or updated in the monthly sandbox environment does not affect production.
  • The Production environment is best used to set up data which will eventually propagate to the monthly sandbox environment where you can safely manipulate it.
  • After an App is created in your Developer Portal Account, the client_id and client_secret credentials for your App will eventually propagate to the monthly sandbox environment.
  • Users created in production will eventually propagate to the monthly sandbox environment.
  • When working in your Development Sandbox environment, do not rely on authorization_code, access_token, or refresh_token from the production environment as those tokens will no longer align.