OpenGov Activity API

The activity API from OpenGov — 1 operation(s) for activity.

Documentation

Specifications

Other Resources

OpenAPI Specification

opengov-activity-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: OpenGov Purchase Order Activity API
  version: 1.0.0
  description: API for managing purchase orders, line items, splits, and vendors.
servers:
- url: https://api-purchase-order.procurement.opengov.com
  description: Production
- url: https://api-purchase-order.procurement.ogstaging.us
  description: Staging
- url: https://api-purchase-order.procurement.ogintegration.us
  description: Integration
security:
- platformApiKey: []
- platformBearerToken: []
tags:
- name: activity
paths:
  /api/v1/po/entities/{entityId}/purchase-orders/{poId}/activity:
    get:
      tags:
      - activity
      operationId: activity.listFeed
      parameters:
      - name: entityId
        in: path
        schema:
          type: string
          description: The UUID of the Platform entity
          default: 04eb277c-f9cd-42b0-9610-0f068f6aaea1
          format: uuid
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
        required: true
        description: The UUID of the Platform entity
      - name: poId
        in: path
        schema:
          $ref: '#/components/schemas/NumberFromString'
        required: true
      - name: entryTypes
        in: query
        schema:
          type: string
        required: false
      - name: visibilityScope
        in: query
        schema:
          type: string
          enum:
          - INTERNAL
          - EXTERNAL
        required: false
      - name: scope
        in: query
        schema:
          type: string
          enum:
          - All
          - LineLevel
        required: false
      - name: lineItemIds
        in: query
        schema:
          type: string
        required: false
      - name: sort
        in: query
        schema:
          type: string
          enum:
          - NewestFirst
          - OldestFirst
        required: false
      - name: cursor
        in: query
        schema:
          type: string
        required: false
      - name: pageSize
        in: query
        schema:
          $ref: '#/components/schemas/NumberFromString'
        required: false
      - name: search
        in: query
        schema:
          type: string
        required: false
      - name: changeOrderId
        in: query
        schema:
          type: string
          description: a string to be decoded into a number
        required: false
        description: a string to be decoded into a number
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                properties:
                  data:
                    type: object
                    required:
                    - activities
                    properties:
                      activities:
                        type: array
                        items:
                          type: object
                          required:
                          - activityId
                          - entryType
                          - commentId
                          - visibilityScope
                          - body
                          - author
                          - lineItem
                          - attachments
                          - createdAt
                          - isEdited
                          properties:
                            activityId:
                              type: number
                            entryType:
                              $ref: '#/components/schemas/ActivityLogEntryType'
                            commentId:
                              anyOf:
                              - type: number
                              - type: 'null'
                            visibilityScope:
                              type: string
                              enum:
                              - INTERNAL
                              - EXTERNAL
                            body:
                              anyOf:
                              - type: object
                                required:
                                - html
                                properties:
                                  html:
                                    type: string
                                additionalProperties: false
                              - type: 'null'
                            author:
                              type: object
                              required:
                              - userId
                              - displayName
                              properties:
                                userId:
                                  type: string
                                displayName:
                                  type: string
                              additionalProperties: false
                            lineItem:
                              anyOf:
                              - type: object
                                required:
                                - lineItemId
                                properties:
                                  lineItemId:
                                    type: number
                                additionalProperties: false
                              - type: 'null'
                            attachments:
                              type: array
                              items:
                                type: object
                                required:
                                - id
                                - fileName
                                - mimeType
                                - sizeBytes
                                - downloadPath
                                properties:
                                  id:
                                    type: number
                                  fileName:
                                    type: string
                                  mimeType:
                                    type: string
                                  sizeBytes:
                                    type: number
                                  downloadPath:
                                    type: string
                                  baselineAttachmentId:
                                    anyOf:
                                    - type: number
                                    - type: 'null'
                                  deletedAt:
                                    anyOf:
                                    - type: string
                                    - type: 'null'
                                additionalProperties: false
                            createdAt:
                              type: string
                            isEdited:
                              type: boolean
                            logMessage:
                              anyOf:
                              - type: string
                              - type: 'null'
                            changeOrderId:
                              anyOf:
                              - type: number
                              - type: 'null'
                          additionalProperties: false
                    additionalProperties: false
                  meta:
                    type: object
                    required:
                    - nextCursor
                    - prevCursor
                    properties:
                      nextCursor:
                        anyOf:
                        - type: string
                        - type: 'null'
                      prevCursor:
                        anyOf:
                        - type: string
                        - type: 'null'
                      hasMore:
                        type: boolean
                    additionalProperties: false
                additionalProperties: false
        '400':
          description: The request did not match the expected schema
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  code:
                    type: string
                    description: Machine-readable error code
                    example: ValidationError
                  detail:
                    type: string
                    description: Human-readable error description. For 400 ValidationError with exactly one field issue, matches that field's `detail`; otherwise a summary (e.g. multiple validation issues).
                    example: The request body failed validation.
                  fieldErrors:
                    type: array
                    description: Per-field validation errors (present for 400 validation errors)
                    items:
                      type: object
                      properties:
                        parameter:
                          type: string
                          description: Dot-path to the field
                          example: lineItems.0.lineItemSplits.1
                        detail:
                          type: string
                          description: Human-readable validation message
                          example: 'Account 101-5100 has insufficient budget: requested 500.00, available 200.00'
                        code:
                          type: string
                          description: Machine-readable rule identifier
                          example: BUDGET_INSUFFICIENT
                        data:
                          type: object
                          description: Structured context for the error (account codes, amounts, IDs, etc.)
                          additionalProperties: true
                          example:
                            accountNumber: 101-5100
                            accountPseudoKey: GF-101-5100
                            requestedAmount: 500
                            availableAmount: 200
                      required:
                      - parameter
                      - detail
                required:
                - status
                - code
                - detail
        '401':
          description: AuthError
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 401
                  code:
                    type: string
                    description: Machine-readable error code
                    example: AuthenticationError
                  detail:
                    type: string
                    description: Human-readable error description. For 400 ValidationError with exactly one field issue, matches that field's `detail`; otherwise a summary (e.g. multiple validation issues).
                    example: Authentication is required to access this resource.
                required:
                - status
                - code
                - detail
        '403':
          description: UnauthorizedError
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 403
                  code:
                    type: string
                    description: Machine-readable error code
                    example: AuthorizationError
                  detail:
                    type: string
                    description: Human-readable error description. For 400 ValidationError with exactly one field issue, matches that field's `detail`; otherwise a summary (e.g. multiple validation issues).
                    example: You do not have permission to perform this action.
                required:
                - status
                - code
                - detail
        '404':
          description: EntityNotFoundError
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  code:
                    type: string
                    description: Machine-readable error code
                    example: PurchaseOrderNotFound
                  detail:
                    type: string
                    description: Human-readable error description. For 400 ValidationError with exactly one field issue, matches that field's `detail`; otherwise a summary (e.g. multiple validation issues).
                    example: Purchase order with id 123 was not found.
                required:
                - status
                - code
                - detail
        '500':
          description: InfrastructureError
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 500
                  code:
                    type: string
                    description: Machine-readable error code
                    example: InternalServerError
                  detail:
                    type: string
                    description: Human-readable error description. For 400 ValidationError with exactly one field issue, matches that field's `detail`; otherwise a summary (e.g. multiple validation issues).
                    example: An unexpected error occurred while processing your request. Please try again later.
                required:
                - status
                - code
                - detail
      description: Returns a paginated, filtered, sortable chronological feed of comments and attachments from po_activity_logs. Supports cursor-based infinite scroll.
      summary: List the activity feed for a Purchase Order
components:
  schemas:
    ActivityLogEntryType:
      type: string
      enum:
      - COMMENT
      - ATTACHMENT
      - ATTACHMENT_GROUP
      - PRINT
      - PO_COPIED
      - CO_CREATED
      - CO_SUBMITTED
      - CO_APPROVED
      - CO_REJECTED
      - CO_CANCELLED
      - CO_LINE_ADDED
      - CO_LINE_MODIFIED
      - CO_PURCHASE_DETAILS_CHANGED
      - CO_COMMENT_ADDED
      - CO_ATTACHMENT_ADDED
      - CO_ATTACHMENT_REMOVED
      - ATTACHMENT_TRANSFER_FAILED
      - PO_CREATED_FROM_PR
      - CO_TNC_SNAPSHOT_CREATED
      - CO_TNC_UPDATED
      - CO_TNC_APPROVAL_SYNCED
      - CO_TNC_CANCEL_ARCHIVED
      - CO_GENERAL_CANCEL_ARCHIVED
      - CO_LINE_CANCEL_ARCHIVED
      - CO_GENERAL_SNAPSHOT_CREATED
      - CO_LINE_ATTACHMENT_SNAPSHOT_CREATED
      - CO_BASELINED_FROM_PO
      - CO_APPROVAL_GENERAL_ATTACHMENTS_SYNCED
      - CO_APPROVAL_LINE_ATTACHMENTS_SYNCED
      - PO_TNC_UPDATED
      - CO_LINE_DECREASED
      - CO_LINE_REMOVED
      - CO_LINE_SPLIT_REMOVED
      - CO_LINE_REOPENED
      - CO_LINE_ATTACHMENTS_REMOVED
      title: Activity log entry type
    NumberFromString:
      type: string
      description: a string to be decoded into a number
  securitySchemes:
    platformApiKey:
      description: OpenGov Platform API Key
      type: apiKey
      name: Authorization
      in: header
    platformBearerToken:
      type: http
      scheme: bearer