OpenGov Departments API

A Department is a group of Record Types.

OpenAPI Specification

opengov-departments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: v2
  title: Permitting & Licensing Departments API
  contact:
    name: OpenGov Permitting & Licensing API
    url: https://opengov.com
    email: developers@opengov.com
  description: "The OpenGov Permitting & Licensing API provides programmatic access to Permitting & Licensing data and workflows. With this API, you can integrate with other systems, build custom applications, or automate tasks. \n\nThe API is designed around REST principles, supports JSON:API standards, and exposes resources such as records, inspections, fees, approvals, and user accounts. This documentation covers available endpoints, request and response formats, and error codes, helping developers extend and integrate OpenGov Permitting & Licensing securely and efficiently.\n"
  license:
    name: OpenGov Permitting & Licensing API
    url: https://opengov.com
servers:
- url: https://api.plce.opengov.com/plce
  description: Production
  x-og-envs:
  - production
  - staging
  - development
  - local
security:
- bearerAuth: []
- basicHttpAuthentication: []
- auth0Prod: []
- auth0Dev: []
tags:
- name: Departments
  description: A Department is a group of Record Types.
paths:
  /v2/{community}/departments:
    parameters:
    - $ref: '#/paths/~1v2~1{community}~1approval-steps/parameters/0'
    get:
      summary: List departments
      description: 'Retrieve a list of departments that match the specified filters.

        ### Permissions Required

        `System Config Read`'
      operationId: getDepartments
      x-og-claims-required:
      - PLC_SYSTEM_CONFIG_READ
      tags:
      - Departments
      parameters:
      - $ref: '#/paths/~1v2~1{community}~1approval-steps/get/parameters/0'
      - $ref: '#/paths/~1v2~1{community}~1approval-steps/get/parameters/1'
      responses:
        '200':
          description: Returns Departments
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      x-tags:
                      - Departments
                      title: Department
                      required:
                      - id
                      - type
                      - attributes
                      properties:
                        id:
                          type: string
                          description: Unique internal ID of a department
                          example: dept-123456
                        type:
                          type: string
                          enum:
                          - department
                          example: department
                        attributes:
                          type: object
                          properties:
                            name:
                              type: string
                              maxLength: 255
                              description: Name of the department.
                              example: Building & Planning
                            isEnabled:
                              type: boolean
                              description: Indicates whether the department is enabled.
                              default: true
                              example: true
                            photo:
                              type: string
                              format: uri-reference
                              nullable: true
                              default: https://viewpointcloud.blob.core.windows.net:443/profile-pictures/Geometric-Wallpaper-13_Mon_Mar_21_2016_19:54:18_GMT+0000_(Coordinated_Universal_Time).jpg
                              description: URL to the department photo in the public portal.
                              example: https://example.com/images/dept-photo.jpg
                            content:
                              type: string
                              nullable: true
                              description: Public portal content related to the department.
                              example: Welcome to the Building & Planning Department. We handle all construction permits and planning applications.
                            orderNo:
                              type: integer
                              nullable: true
                              description: Sorting order number for the department.
                              example: 1
                            applyAccess:
                              type: string
                              enum:
                              - Public
                              - Internal-Only
                              description: Access level required to apply for this department.
                              example: Public
                            updatedAt:
                              type: string
                              description: Date and time (UTC) when the resource was last updated.
                              format: date-time
                              readOnly: true
                            updatedBy:
                              type: string
                              description: ID of the user who last updated this resource.
                              readOnly: true
                              example: user-admin-990001
                        relationships:
                          type: object
                          properties:
                            recordTypes:
                              type: object
                              properties:
                                links:
                                  $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/200/content/application~1vnd.api+json/schema/properties/data/items/properties/relationships/properties/step/properties/links'
                              description: Record Types
                  links:
                    $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/200/content/application~1vnd.api+json/schema/properties/links'
                  meta:
                    $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/200/content/application~1vnd.api+json/schema/properties/meta'
                required:
                - data
                - links
                - meta
        '400':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/400'
        '401':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/401'
        '403':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/403'
        '404':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/404'
        '406':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/406'
        '500':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/500'
  /v2/{community}/departments/{departmentID}:
    parameters:
    - $ref: '#/paths/~1v2~1{community}~1approval-steps/parameters/0'
    - name: departmentID
      in: path
      description: ID of the department
      required: true
      schema:
        type: string
    get:
      summary: Get department
      description: 'Retrieve a department by ID.

        ### Permissions Required

        `System Config Read`'
      operationId: getDepartment
      x-og-claims-required:
      - PLC_SYSTEM_CONFIG_READ
      tags:
      - Departments
      responses:
        '200':
          description: Returns Department
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    x-tags:
                    - Departments
                    title: Department
                    required:
                    - id
                    - type
                    - attributes
                    properties:
                      id:
                        type: string
                        description: Unique internal ID of a department
                        example: dept-123456
                      type:
                        type: string
                        enum:
                        - department
                        example: department
                      attributes:
                        type: object
                        properties:
                          name:
                            type: string
                            maxLength: 255
                            description: Name of the department.
                            example: Building & Planning
                          isEnabled:
                            type: boolean
                            description: Indicates whether the department is enabled.
                            default: true
                            example: true
                          photo:
                            type: string
                            format: uri-reference
                            nullable: true
                            default: https://viewpointcloud.blob.core.windows.net:443/profile-pictures/Geometric-Wallpaper-13_Mon_Mar_21_2016_19:54:18_GMT+0000_(Coordinated_Universal_Time).jpg
                            description: URL to the department photo in the public portal.
                            example: https://example.com/images/dept-photo.jpg
                          content:
                            type: string
                            nullable: true
                            description: Public portal content related to the department.
                            example: Welcome to the Building & Planning Department. We handle all construction permits and planning applications.
                          orderNo:
                            type: integer
                            nullable: true
                            description: Sorting order number for the department.
                            example: 1
                          applyAccess:
                            type: string
                            enum:
                            - Public
                            - Internal-Only
                            description: Access level required to apply for this department.
                            example: Public
                          updatedAt:
                            $ref: '#/paths/~1v2~1{community}~1departments/get/responses/200/content/application~1vnd.api+json/schema/properties/data/items/properties/attributes/properties/updatedAt'
                          updatedBy:
                            $ref: '#/paths/~1v2~1{community}~1departments/get/responses/200/content/application~1vnd.api+json/schema/properties/data/items/properties/attributes/properties/updatedBy'
                      relationships:
                        type: object
                        properties:
                          recordTypes:
                            $ref: '#/paths/~1v2~1{community}~1departments/get/responses/200/content/application~1vnd.api+json/schema/properties/data/items/properties/relationships/properties/recordTypes'
                  included:
                    type: array
                    description: Related resources
                    items:
                      type: object
                      required:
                      - type
                      - id
                      - attributes
                      properties:
                        type:
                          type: string
                        id:
                          type: string
                        attributes:
                          type: object
                          additionalProperties: true
                    minItems: 0
                    maxItems: 5
                required:
                - data
        '400':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/400'
        '401':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/401'
        '403':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/403'
        '404':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/404'
        '406':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/406'
        '500':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/500'
components:
  securitySchemes:
    basicHttpAuthentication:
      type: http
      scheme: basic
      description: 'Basic HTTP Authentication

        '
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'The OpenGov Permitting & Licensing API is authenticated using the OAuth2 Client Credentials flow. Access tokens are provided as a bearer token Authorization header in all API requests.

        To obtain an access token, you must have an OpenGov-provided Client ID and Client Secret.

        Access tokens are obtained by making a POST request to `https://accounts.viewpointcloud.com/oauth/token`

        '
    auth0Prod:
      type: openIdConnect
      openIdConnectUrl: https://accounts.viewpointcloud.com/.well-known/openid-configuration
      description: 'The OpenGov Permitting & Licensing API is authenticated using the OAuth2 Client Credentials flow. Access tokens are provided as a bearer token Authorization header in all API requests.

        To obtain an access token, you must have an OpenGov-provided Client ID and Client Secret.

        '
    auth0Dev:
      type: openIdConnect
      openIdConnectUrl: https://login.vpctest.com/.well-known/openid-configuration
      description: 'The OpenGov Permitting & Licensing API is authenticated using the OAuth2 Client Credentials flow. Access tokens are provided as a bearer token Authorization header in all API requests.

        To obtain an access token, you must have an OpenGov-provided Client ID and Client Secret.

        '
x-og-spec-id: plc-api-v2
x-og-claims:
  PLC_RECORD_READ: Record Read
  PLC_RECORD_WRITE: Record Write
  PLC_RECORD_ARCHIVE: Record Archive
  PLC_RECORD_STEP_READ: Workflow Read
  PLC_RECORD_STEP_CREATE: Workflow Write
  PLC_RECORD_STEP_UPDATE: Workflow Write
  PLC_RECORD_STEP_COMMENT_READ: Comment Read
  PLC_RECORD_STEP_COMMENT_WRITE: Comment Write
  PLC_USER_READ: User Read
  PLC_USER_WRITE: User Write
  PLC_RECORD_TYPE_READ: Record Type Read
  PLC_SYSTEM_CONFIG_READ: System Config Read
  PLC_LOCATION_READ: Location Read
  PLC_LOCATION_WRITE: Location Write
  PLC_PAYMENT_READ: Payment Read
  PLC_PAYMENT_WRITE: Payment Write
  PLC_FILE_READ: File Read
  PLC_FILE_WRITE: File Write
  PLC_ACTIVITY_LOG_READ: Activity Log Read
x-tagGroups:
- name: Records
  tags:
  - Record
  - Record Applicant
  - Record Guests
  - Record Primary Location
  - Record Additional Locations
  - Record Forms
  - Record Change Requests
  - Record Attachments
  - Record Workflow Steps
  - Record Workflow Step Comments
- name: Locations
  tags:
  - Locations
  - Location Flags
- name: Users
  tags:
  - Users
  - User Flags
- name: Approvals
  tags:
  - Approval Steps
- name: Documents
  tags:
  - Document Steps
  - Issued Documents
- name: Inspections
  tags:
  - Inspection Steps
  - Inspection Types
  - Inspection Events
  - Inspection Results
  - Checklist Results
- name: Payments
  tags:
  - Payment Steps
  - Fees
  - Transactions
  - Ledger Entries
- name: Projects
  tags:
  - Projects
- name: Files
  tags:
  - Files
- name: Configuration
  tags:
  - Organization
  - Departments
  - Record Types
  - Record Type Form
  - Record Type Attachments
  - Record Type Document Templates
  - Record Type Fees
  - Record Type Workflow
  - Inspection Type Templates
  - Checklist Templates
- name: Activity Logs
  tags:
  - Activity Logs