What are data shares?

Learn how to enable, use, and publish Fulcrum Data Shares for public viewing.

Cory MacVie avatar
Written by Cory MacVie
Updated over a week ago

If you are interested in data sharing check out Shared views , its better!

Data shares allow you to create publicly available URLs for accessing data you have in your Fulcrum account, to share with clients, management team members, or even publicly via your website. 

When a data share is enabled for an App in Fulcrum, you’ll be able to select the data format type you want to use, and Fulcrum will display a URL for accessing that App’s data in that format. This URL can then be copied and shared with anyone. 

Anyone that has this URL will be able to access the data with in the app the data share is associated with as long as the data share is enabled. When the data share is disabled, the URL will not longer function. If you were to enable the data share on the same app in the future, the old data share URL will not work and the newly created URL will need to be used.

Accessing The Data Shares Tab

Data Shares can be enabled through an app's dashboard page

The ability to see and access this tab will depend on the role that your user account has. With the included system roles, only user accounts that have the owner role can enabled data shares. If you are leveraging custom roles, a role that should have access to data shares should contain the Change Organization Profile and Manage Apps permissions.

Data Share URLs

Once Data Shares have been enabled on an app the URL can be obtained through the data share tab on the app's dashboard page. If a data share is disabled the URL will no longer work. Enabling data shares on that app again will create a new data share URL that will need to be used. 

There are four file formats available for data share URLs. GeoJSON, CSV, KML, and JSON. There is a fifth option called Map Embed that can be used to place a embedded map on a website.

If your app has repeatable sections, you will see separate URLs for the each repeatable section.

Apps With Data Shares Enabled 

When enabled, you can quickly see which apps have data shares enabled by looking for the green shared icon next to the app name on the app's dashboard page and the homepage. 

Note: Apps that are inactive can still have enabled data shares.

Filtering Data Obtained Through A Data Share  

You can filter the data obtained through a data share URL by leveraging query params can be added to the end of the data share URL to filter what data is obtained. 

All of the parameters may be used together to filter the data for more accurate results. Parms are added to the end of the URL. The first param is lead with a ? and any additional params are lead with a  & 

https://web.fulcrumapp.com/shares/a5b23def801cc4a9.csv?project_id=12345&per_page=5000&page=2

Note: These filters are not intended to be used to prevent people from accessing data within an app. The person with the URL can simply modify the URL to obtain all the data within the app.

assigned_to

  • Type: String

  • Email address of a user who belongs to the organization owning the App. 

  • Returns only record assigned to this user. 

  • The @ sign must be URL encoded as %40. 

project_id

  • Type: String

  • The project id for which to filter the records. 

  • Only records tagged with this project will be returned. 

bounding_box

  • Type: String

  • Default empty string. 

  • Bounding box of the records requested. 

  • Format should be: lat,long,lat,long (bottom, left, top, right). 

child

  • Type: String

  • Return the child records of the Repeatable section with this data_name. 

  • Not applicable to the JSON format. 

  • Leaving this blank defaults to the root record level. 

fulcrum_id 

  • Type: String

  • ID of the single record to return. 

  • When blank, it will return all applicable records. 

human_friendly 

  • Type: Boolean

  • Default false. 

  • When false, return the data_name values for the columns. 

  • When true, return the label values for the columns, or a more readable version of the system columns. 

  • Useful for displaying the data in a way that’s more natural for humans to read. 

  • Not applicable to the JSON format. 

newest_first 

  • Including this parameter with any non-blank value will return records ordered by last updated time in descending order. 

  • Leaving this parameter blank or omitting it completely will return records ordered by last update time in ascending order. 

  • Using this for child records will sort by the root record’s last updated time. 

page

  • Type: Integer

  • Default 1. 

  • Which page of records to fetch. 

  • For use with per_page.

per_page 

  • Type: Integer

  • Default and hard cap of 20000. 

  • Number of records to return per page. 

skip_system_columns 

  • Type: Boolean

  • Default false. 

  • When false, include user columns and system columns added by Fulcrum. 

  • When true, skip Fulcrum’s system columns and only include user-defined columns. 

  • Useful for quickly creating a web map that shows only user-generated data. 

  • Not applicable to the JSON format. 

updated_since 

  • Type: Integer

  • Date since epoch in seconds: 2012-04-24 15:05:22 -0400 = 1335294322. 

  • Leaving this blank will query against all of the records. 

  • Using this for child records will look at the root record’s last updated time.

Limitations

The maximum amount of records that you can pull through a data share URL will vary based on the size of a record. If your records are small 20,000 records is the maximum that you can pull.

So to pull 30,000 records from an app, you will need to access the normal URL, as well as, use a secondary URL with '?page=2' added to the end of the original URL to pull the last 10,000 records.

Below is an example of pulling the second page to obtain the additional records.

https://web.fulcrumapp.com/shares/a5b23def801cc4a9.csv?page=2

If your records are large and contain a lot of data then you can run into timeout issues when leveraging data shares. When this happens you will need to leverage multiple URLs that have a record count less than the default number of records (20,000) using the per_page  page and the page  param to obtain your data. 

Below is an example of braking up 20,000 records into 4 separate URLs with 5,000 records each. 

https://web.fulcrumapp.com/shares/a5b23def801cc4a9.csv?per_page=5000&page=1
https://web.fulcrumapp.com/shares/a5b23def801cc4a9.csv?per_page=5000&page=2
https://web.fulcrumapp.com/shares/a5b23def801cc4a9.csv?per_page=5000&page=3
https://web.fulcrumapp.com/shares/a5b23def801cc4a9.csv?per_page=5000&page=4
Did this answer your question?