Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/procore:procore-gps-positions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Procore REST Gps Positions API
version: v1.0/v2.0
description: Merged from the per-resource OpenAPI documents Procore publishes through its developer portal (https://developers.procore.com/api/v1/resource_groups). Originals are kept verbatim in openapi/_original/resources/.
x-source: https://developers.procore.com/api/v1/resource_groups
servers:
- url: https://api.procore.com
description: Production
security:
- bearerAuth: []
tags:
- name: Gps Positions
paths:
/rest/v1.0/companies/{company_id}/gps_positions:
parameters:
- name: Procore-Company-Id
in: header
description: Unique company identifier associated with the Procore User Account.
required: true
schema:
type: integer
x-compliance-level: full
get:
x-doc:
visibility: public
stage: ga
exposure: public
summary: List Gps Positions
description: Return a list of all Gps Positions.
tags:
- Gps Positions
parameters:
- name: company_id
in: path
description: Unique identifier for the company.
required: true
schema:
type: integer
- name: filters[id]
in: query
description: Return item(s) with the specified IDs.
required: false
style: form
explode: false
schema:
type: array
items:
type: integer
- name: filters[created_by_id]
in: query
description: Returns item(s) created by the specified User IDs.
style: form
explode: false
schema:
type: array
items:
type: integer
- name: filters[updated_at]
in: query
description: 'Return item(s) last updated within the specified ISO 8601 datetime range.
Formats:
`YYYY-MM-DD`...`YYYY-MM-DD` - Date
`YYYY-MM-DDTHH:MM:SSZ`...`YYYY-MM-DDTHH:MM:SSZ` - DateTime with UTC Offset
`YYYY-MM-DDTHH:MM:SS+XX:00`...`YYYY-MM-DDTHH:MM:SS+XX:00` - Datetime with Custom Offset'
required: false
schema:
type: string
format: date
- name: page
in: query
description: Page
schema:
type: integer
- name: per_page
in: query
description: Elements per page
schema:
type: integer
responses:
'200':
description: OK
headers:
Per-Page:
description: Number of items retrieved per page
schema:
type: integer
Total:
description: Total number of items to be retrieved
schema:
type: integer
Link:
description: Link headers for the first, prev, next, and last link
schema:
type: string
content:
application/json:
schema:
type: array
description: Array of Gps Positions
items:
type: object
properties:
id:
type: integer
description: Unique identifier of the GPS position record.
company_id:
type: integer
description: Identifier of the company that owns this GPS position record.
latitude:
type: number
description: The latitude in degrees.
example: 34.196411
longitude:
type: number
description: The longitude in degrees.
example: -119.170898
altitude:
type: number
description: The altitude, measured in meters.
example: 52
horizontal_accuracy:
type: number
description: The horizontal radius of uncertainty for the location, measured in meters.
example: 100
vertical_accuracy:
type: number
description: The vertical radius of uncertainty for the location, measured in meters.
example: 100
timestamp:
type: string
format: date-time
description: The time at which this location was determined.
example: '2015-11-12T21:26:28Z'
created_by:
type: object
properties:
id:
type: integer
description: Unique identifier of the user who recorded this GPS position.
example: 160586
login:
type: string
description: Email address of the user who recorded this GPS position.
example: carl.contractor@example.com
name:
type: string
description: Full name of the user who recorded this GPS position.
example: Carl Contractor
created_at:
type: string
format: date-time
description: Date and time the gps position was created.
example: '2015-05-15T00:00:00Z'
updated_at:
type: string
format: date-time
description: Date and time the gps position was updated.
example: '2015-05-15T00:00:00Z'
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
'403':
description: Forbidden
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
x-code-samples:
- id: node_request
title: Node.js
content: "const request = require('request');\n\nconst options = {\n method: 'GET',\n url: 'https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/gps_positions',\n qs: {\n 'filters[id]': 'SOME_ARRAY_VALUE',\n 'filters[created_by_id]': 'SOME_ARRAY_VALUE',\n 'filters[updated_at]': 'SOME_STRING_VALUE',\n page: 'SOME_INTEGER_VALUE',\n per_page: 'SOME_INTEGER_VALUE'\n }\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n"
- id: python_python3
title: Python3
content: 'import http.client
conn = http.client.HTTPSConnection("api.procore.com")
conn.request("GET", "/rest/v1.0/companies/%7Bcompany_id%7D/gps_positions?filters%5Bid%5D=SOME_ARRAY_VALUE&filters%5Bcreated_by_id%5D=SOME_ARRAY_VALUE&filters%5Bupdated_at%5D=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&per_page=SOME_INTEGER_VALUE")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))'
- id: shell_curl
title: Curl
content: "curl --request GET \\\n --url 'https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/gps_positions?filters%5Bid%5D=SOME_ARRAY_VALUE&filters%5Bcreated_by_id%5D=SOME_ARRAY_VALUE&filters%5Bupdated_at%5D=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&per_page=SOME_INTEGER_VALUE'"
- id: csharp_httpclient
title: C#
content: "var client = new HttpClient();\nvar request = new HttpRequestMessage\n{\n Method = HttpMethod.Get,\n RequestUri = new Uri(\"https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/gps_positions?filters%5Bid%5D=SOME_ARRAY_VALUE&filters%5Bcreated_by_id%5D=SOME_ARRAY_VALUE&filters%5Bupdated_at%5D=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&per_page=SOME_INTEGER_VALUE\"),\n};\nusing (var response = await client.SendAsync(request))\n{\n response.EnsureSuccessStatusCode();\n var body = await response.Content.ReadAsStringAsync();\n Console.WriteLine(body);\n}"
x-rate-limit-enabled: true
x-procore-kong-tags:
- rate-limit:enabled
operationId: listGpsPositions
post:
x-doc:
visibility: public
stage: ga
exposure: public
summary: Create Gps Position
description: Create a new Gps Position.
tags:
- Gps Positions
parameters:
- name: company_id
in: path
description: Unique identifier for the company.
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
type: object
required:
- gps_position
properties:
gps_position:
title: GpsPosition
type: object
description: Gps Position object
required:
- latitude
- longitude
- timestamp
properties:
latitude:
type: number
description: The latitude in degrees.
example: 34.196411
longitude:
type: number
description: The longitude in degrees.
example: -119.170898
altitude:
type: number
description: The altitude, measured in meters.
example: 52
horizontal_accuracy:
type: number
description: The horizontal radius of uncertainty for the location, measured in meters.
example: 100
vertical_accuracy:
type: number
description: The vertical radius of uncertainty for the location, measured in meters.
example: 100
timestamp:
type: string
format: date-time
description: The time at which this location was determined.
example: '2015-11-12T21:26:28Z'
example:
gps_position:
latitude: '34.196411'
longitude: '-119.170898'
altitude: '50'
horizontal_accuracy: '100'
vertical_accuracy: '100'
timestamp: '2018-10-14T07:31:05Z'
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
properties:
id:
type: integer
description: Unique identifier of the GPS position record.
company_id:
type: integer
description: Identifier of the company that owns this GPS position record.
latitude:
type: number
description: The latitude in degrees.
example: 34.196411
longitude:
type: number
description: The longitude in degrees.
example: -119.170898
altitude:
type: number
description: The altitude, measured in meters.
example: 52
horizontal_accuracy:
type: number
description: The horizontal radius of uncertainty for the location, measured in meters.
example: 100
vertical_accuracy:
type: number
description: The vertical radius of uncertainty for the location, measured in meters.
example: 100
timestamp:
type: string
format: date-time
description: The time at which this location was determined.
example: '2015-11-12T21:26:28Z'
created_by:
type: object
properties:
id:
type: integer
description: Unique identifier of the user who recorded this GPS position.
example: 160586
login:
type: string
description: Email address of the user who recorded this GPS position.
example: carl.contractor@example.com
name:
type: string
description: Full name of the user who recorded this GPS position.
example: Carl Contractor
created_at:
type: string
format: date-time
description: Date and time the gps position was created.
example: '2015-05-15T00:00:00Z'
updated_at:
type: string
format: date-time
description: Date and time the gps position was updated.
example: '2015-05-15T00:00:00Z'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
'403':
description: Forbidden
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
'422':
description: Unprocessable Entity
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
x-code-samples:
- id: node_request
mimeType: application/json
title: Node.js
content: "const request = require('request');\n\nconst options = {\n method: 'POST',\n url: 'https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/gps_positions',\n headers: {'content-type': 'application/json'},\n body: {\n gps_position: {\n latitude: '34.196411',\n longitude: '-119.170898',\n altitude: '50',\n horizontal_accuracy: '100',\n vertical_accuracy: '100',\n timestamp: '2018-10-14T07:31:05Z'\n }\n },\n json: true\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n"
- id: python_python3
mimeType: application/json
title: Python3
content: 'import http.client
conn = http.client.HTTPSConnection("api.procore.com")
payload = "{\"gps_position\":{\"latitude\":\"34.196411\",\"longitude\":\"-119.170898\",\"altitude\":\"50\",\"horizontal_accuracy\":\"100\",\"vertical_accuracy\":\"100\",\"timestamp\":\"2018-10-14T07:31:05Z\"}}"
headers = { ''content-type'': "application/json" }
conn.request("POST", "/rest/v1.0/companies/%7Bcompany_id%7D/gps_positions", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))'
- id: shell_curl
mimeType: application/json
title: Curl
content: "curl --request POST \\\n --url https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/gps_positions \\\n --header 'content-type: application/json' \\\n --data '{\"gps_position\":{\"latitude\":\"34.196411\",\"longitude\":\"-119.170898\",\"altitude\":\"50\",\"horizontal_accuracy\":\"100\",\"vertical_accuracy\":\"100\",\"timestamp\":\"2018-10-14T07:31:05Z\"}}'"
- id: csharp_httpclient
mimeType: application/json
title: C#
content: "var client = new HttpClient();\nvar request = new HttpRequestMessage\n{\n Method = HttpMethod.Post,\n RequestUri = new Uri(\"https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/gps_positions\"),\n Content = new StringContent(\"{\\\"gps_position\\\":{\\\"latitude\\\":\\\"34.196411\\\",\\\"longitude\\\":\\\"-119.170898\\\",\\\"altitude\\\":\\\"50\\\",\\\"horizontal_accuracy\\\":\\\"100\\\",\\\"vertical_accuracy\\\":\\\"100\\\",\\\"timestamp\\\":\\\"2018-10-14T07:31:05Z\\\"}}\")\n {\n Headers =\n {\n ContentType = new MediaTypeHeaderValue(\"application/json\")\n }\n }\n};\nusing (var response = await client.SendAsync(request))\n{\n response.EnsureSuccessStatusCode();\n var body = await response.Content.ReadAsStringAsync();\n Console.WriteLine(body);\n}"
x-rate-limit-enabled: true
x-procore-kong-tags:
- rate-limit:enabled
operationId: createGpsPosition
/rest/v1.0/companies/{company_id}/gps_positions/{id}:
parameters:
- name: Procore-Company-Id
in: header
description: Unique company identifier associated with the Procore User Account.
required: true
schema:
type: integer
- name: id
in: path
description: ID of the Gps Position
required: true
schema:
type: integer
x-compliance-level: full
get:
x-doc:
visibility: public
stage: ga
exposure: public
summary: Show Gps Position
description: Return detailed information about a specific Gps Position.
tags:
- Gps Positions
parameters:
- name: company_id
in: path
description: Unique identifier for the company.
required: true
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
id:
type: integer
description: Unique identifier of the GPS position record.
company_id:
type: integer
description: Identifier of the company that owns this GPS position record.
latitude:
type: number
description: The latitude in degrees.
example: 34.196411
longitude:
type: number
description: The longitude in degrees.
example: -119.170898
altitude:
type: number
description: The altitude, measured in meters.
example: 52
horizontal_accuracy:
type: number
description: The horizontal radius of uncertainty for the location, measured in meters.
example: 100
vertical_accuracy:
type: number
description: The vertical radius of uncertainty for the location, measured in meters.
example: 100
timestamp:
type: string
format: date-time
description: The time at which this location was determined.
example: '2015-11-12T21:26:28Z'
created_by:
type: object
properties:
id:
type: integer
description: Unique identifier of the user who recorded this GPS position.
example: 160586
login:
type: string
description: Email address of the user who recorded this GPS position.
example: carl.contractor@example.com
name:
type: string
description: Full name of the user who recorded this GPS position.
example: Carl Contractor
created_at:
type: string
format: date-time
description: Date and time the gps position was created.
example: '2015-05-15T00:00:00Z'
updated_at:
type: string
format: date-time
description: Date and time the gps position was updated.
example: '2015-05-15T00:00:00Z'
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
'403':
description: Forbidden
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
x-code-samples:
- id: node_request
title: Node.js
content: "const request = require('request');\n\nconst options = {\n method: 'GET',\n url: 'https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/gps_positions/%7Bid%7D'\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n"
- id: python_python3
title: Python3
content: 'import http.client
conn = http.client.HTTPSConnection("api.procore.com")
conn.request("GET", "/rest/v1.0/companies/%7Bcompany_id%7D/gps_positions/%7Bid%7D")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))'
- id: shell_curl
title: Curl
content: "curl --request GET \\\n --url https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/gps_positions/%7Bid%7D"
- id: csharp_httpclient
title: C#
content: "var client = new HttpClient();\nvar request = new HttpRequestMessage\n{\n Method = HttpMethod.Get,\n RequestUri = new Uri(\"https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/gps_positions/%7Bid%7D\"),\n};\nusing (var response = await client.SendAsync(request))\n{\n response.EnsureSuccessStatusCode();\n var body = await response.Content.ReadAsStringAsync();\n Console.WriteLine(body);\n}"
x-rate-limit-enabled: true
x-procore-kong-tags:
- rate-limit:enabled
operationId: showGpsPosition
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer