Get one permit
GET
/{organizationNickname}/projects/{projectId}/permits/{permitId}
const url = 'https://app.civillo.com/api/v1/example/projects/1/permits/1';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://app.civillo.com/api/v1/example/projects/1/permits/1 \ --header 'Authorization: Bearer <token>'Returns a detailed view of a specific permit.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”organizationNickname
required
string
projectId
required
integer
permitId
required
integer
Responses
Section titled “ Responses ”Detailed permit object
Media typeapplication/json
object
declaration
string
legendLayersOnly
boolean
categories
Array<object>
object
id
integer
name
string
status
integer
signoffs
Array<string>
signatures
Array<object>
object
timestamp
string format: date-time
userId
string
isRejection
boolean
comment
string
groupId
string
imageUrl
string
signatureRequirements
Array<object>
object
userId
string
groupId
string
minGroupMembersRequired
integer
creator
object
role
integer
user
object
id
string
firstName
string
lastName
string
username
string
id
integer
uuid
string format: uuid
name
string
template
object
id
integer
name
string
description
string
status
integer
description
string
startTime
string format: date-time
expiryDate
string format: date-time
renewalTime
string format: date-time
timesRenewed
integer
maxRenewals
integer
renewalsRemaining
integer
requesterId
string format: uuid
holderId
string format: uuid
specifiedHolderId
string format: uuid
geometry
string
documentUrl
string format: uri
civilloUrl
string format: uri
archived
boolean
holdable
boolean
cancellable
boolean
allowCopy
boolean
copiedFrom
string format: uuid
daysValid
number format: float
validTime
The renewal period in whole hours, rounded down. Null if the permit never requires renewal.
integer
validTimeMinutes
The exact renewal period in minutes. Omitted if the permit never requires renewal.
integer
lapsed
boolean
Examplegenerated
{ "id": 1, "uuid": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "template": { "id": 1, "name": "example", "description": "example" }, "status": 1, "description": "example", "startTime": "2026-04-15T12:00:00Z", "expiryDate": "2026-04-15T12:00:00Z", "renewalTime": "2026-04-15T12:00:00Z", "timesRenewed": 1, "maxRenewals": 1, "renewalsRemaining": 1, "requesterId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "holderId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "specifiedHolderId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "geometry": "example", "documentUrl": "https://example.com", "civilloUrl": "https://example.com", "archived": true, "holdable": true, "cancellable": true, "allowCopy": true, "copiedFrom": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "daysValid": 1, "validTime": 1, "validTimeMinutes": 1, "lapsed": true}Unauthorized
Permit not found