Charthop event API

The event API from Charthop — 5 operation(s) for event.

OpenAPI Specification

charthop-event-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: REST API for ChartHop
  version: V1.0.0
  title: ChartHop access event API
  contact:
    name: ChartHop
    url: https://www.charthop.com
    email: support@charthop.com
host: localhost
schemes:
- https
- http
consumes:
- application/json
produces:
- application/json
tags:
- name: event
paths:
  /v1/org/{orgId}/event:
    get:
      tags:
      - event
      summary: Return past events, paginated, without payloads present
      operationId: findEvents
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: orgId
        in: path
        description: Org identifier (either id or slug)
        required: true
        type: string
      - name: userId
        in: query
        description: User id
        required: false
        type: string
      - name: agentUserId
        in: query
        description: Agent user id (filter to events done by a specific agent)
        required: false
        type: string
      - name: entityId
        in: query
        description: Entity id
        required: false
        type: string
      - name: entityType
        in: query
        description: Entity type
        required: false
        type: string
        enum:
        - ACTION
        - AGREEMENT
        - AI_AGENT
        - AI_AGENT_MEMORY
        - AI_CHAT
        - AI_CONFIG
        - AI_CREDIT_LIMIT
        - AI_CREDIT_USAGE
        - AI_HINT
        - AI_PROMPT
        - APP
        - APP_CONFIG
        - APPROVAL_CHAIN
        - APPROVAL_CHAIN_STAGE
        - APPROVAL_DELEGATE
        - APPROVAL_REQUEST
        - ASSESSMENT
        - BUDGET
        - BUDGET_POOL
        - BUNDLE
        - CALENDAR
        - CALENDAR_ENTRY
        - CATEGORY
        - CATEGORY_SORT
        - CHANGE
        - COMMENT
        - COMP_BAND
        - COMP_REVIEW
        - CONTENT
        - CUSTOMER
        - DATA_VIEW
        - EXCHANGE_RATE
        - EMAIL_TEMPLATE
        - EVENT
        - FIELD
        - FILE
        - FORM
        - FORM_DRAFT
        - FORM_RESPONSE
        - GEOCODE
        - GROUP
        - GROUP_TYPE
        - GOAL
        - GOAL_PROGRESS
        - GOAL_TARGET
        - GOAL_TYPE
        - GUIDELINE
        - JOB
        - JOB_CODE
        - JOB_LEVEL
        - MEDIA
        - MESSAGE
        - MULTIPLIER
        - ORG
        - ORG_CONFIG
        - PERSON
        - PROFILE_TAB
        - POLICY
        - PROCESS
        - PRODUCT
        - QUERY_TOKEN
        - QUESTION
        - REPORT
        - REPORT_CHART
        - ROLE
        - SCENARIO
        - SIGNATURE
        - SIGNATURE_REQUEST
        - STOCK_GRANT
        - STOCK_PRICE
        - TABLE
        - TABLE_ROW
        - TASK_CONFIG
        - TEMPLATE
        - TASK
        - TOKEN
        - TIMEOFF
        - TIMEOFF_BALANCE_ADJUSTMENT
        - TIMEOFF_LEDGER_ENTRY
        - TIMEOFF_POLICY
        - TRANSCRIPT
        - USER
      - name: parentEntityId
        in: query
        description: Parent entity id
        required: false
        type: string
      - name: scenarioId
        in: query
        description: Scenario id
        required: false
        type: string
      - name: processId
        in: query
        description: Process id
        required: false
        type: string
      - name: fields
        in: query
        description: Fields that were modified
        required: false
        type: string
      - name: code
        in: query
        description: Event code to search for
        required: false
        type: string
      - name: from
        in: query
        description: Timestamp to start search at
        required: false
        type: string
      - name: limit
        in: query
        description: Number of results to return
        required: false
        type: integer
        format: int32
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/ResultsEvent'
        '400':
          description: bad request
        '401':
          description: not authorized
        '404':
          description: not found
  /v1/org/{orgId}/event/notify/inbound/{appId}/{inboundId}:
    post:
      tags:
      - event
      summary: Create an inbound event
      operationId: createAppInboundEvent
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: orgId
        in: path
        description: Org identifier (either id or slug)
        required: true
        type: string
      - name: appId
        in: path
        description: App id
        required: true
        type: string
      - name: inboundId
        in: path
        description: Inbound id
        required: true
        type: string
      - name: processId
        in: query
        description: Process id
        required: false
        type: string
      - name: body
        in: body
        description: Inbound body to create event
        required: true
        schema:
          type: object
          additionalProperties:
            type: object
      responses:
        '200':
          description: successful operation
          schema:
            type: string
            example: 588f7ee98f138b19220041a7
        '400':
          description: bad request
        '401':
          description: not authorized
        '404':
          description: not found
  /v1/org/{orgId}/event/notify/outbound/app/{appId}:
    post:
      tags:
      - event
      summary: Create an outbound event
      operationId: createAppOutboundEvent
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: orgId
        in: path
        description: Org identifier (either id or slug)
        required: true
        type: string
      - name: appId
        in: path
        description: App id
        required: true
        type: string
      - name: processId
        in: query
        description: Process id
        required: false
        type: string
      - name: body
        in: body
        description: Outbound body to create event
        required: true
        schema:
          type: object
          additionalProperties:
            type: object
      responses:
        '200':
          description: successful operation
          schema:
            type: string
            example: 588f7ee98f138b19220041a7
        '400':
          description: bad request
        '401':
          description: not authorized
        '404':
          description: not found
  /v1/org/{orgId}/event/{eventId}:
    get:
      tags:
      - event
      summary: Return individual event, including payload
      operationId: getEvent
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: orgId
        in: path
        description: Org identifier (either id or slug)
        required: true
        type: string
      - name: eventId
        in: path
        required: true
        type: string
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/Event'
  /v1/org/{orgId}/event/{eventId}/notify:
    post:
      tags:
      - event
      summary: Resend all associated notifications for a previous event (superusers only)
      operationId: replayEvent
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: orgId
        in: path
        description: Org identifier (either id or slug)
        required: true
        type: string
      - name: eventId
        in: path
        description: Event id
        required: true
        type: string
      - name: app
        in: query
        description: App name to restrict notifications to
        required: false
        type: string
      responses:
        '400':
          description: bad request
        '401':
          description: not authorized
        '404':
          description: not found
definitions:
  AccessAction:
    type: object
    required:
    - action
    properties:
      action:
        type: string
      fields:
        type: array
        uniqueItems: true
        items:
          type: string
      types:
        type: array
        uniqueItems: true
        items:
          type: string
  Event:
    type: object
    required:
    - id
    - userId
    - type
    - entityType
    - entityId
    - at
    properties:
      id:
        type: string
        description: globally unique id
        example: 588f7ee98f138b19220041a7
      userId:
        type: string
        description: user id who caused the event
        example: 588f7ee98f138b19220041a7
      orgId:
        type: string
        description: parent organization id
        example: 588f7ee98f138b19220041a7
      type:
        type: string
        description: type of event
        enum:
        - APP
        - APPROVE
        - CANCEL
        - COMBINE
        - CREATE
        - DELETE
        - DONE
        - ERROR
        - EXPORT
        - EXPORT_CSV
        - EXPORT_ORG_CHART
        - GENERATE
        - GEOIP
        - INCOMING
        - INSTALL
        - INVITE
        - INBOUND
        - LOGIN
        - MERGE
        - MESSAGE
        - OUTBOUND
        - PREVIEW_AS
        - READ
        - READ_EXTERNAL
        - READ_SENSITIVE
        - READ_ATS
        - READ_ATS_WEBHOOK
        - READ_FULL_NAME
        - READ_FUTURE_DATE
        - READ_METADATA
        - READ_COMP
        - READ_BILLING
        - READ_PENDING
        - READ_PAYROLL
        - READ_SENSITIVE_FILTERS
        - WRITE_EXTERNAL
        - REASSIGN
        - REJECT
        - RELEASE
        - REMIND
        - REMOVE_PASSWORD
        - REQUEST
        - RESTORE
        - RESUME
        - REVOKE
        - RUN
        - RUN_ATS
        - SECURITY
        - SHARE
        - SHOW_DASHBOARD_DAYS_AHEAD
        - SHOW_OPEN_JOBS
        - STEP
        - SUBMIT
        - SYNC
        - TEST
        - TOKEN
        - UNINSTALL
        - UPDATE
        - UPDATE_PASSWORD
        - UPLOAD_CSV
        - WRITE
        - VIEW_AS
      entityType:
        type: string
        description: type of target entity
        enum:
        - ACTION
        - AGREEMENT
        - AI_AGENT
        - AI_AGENT_MEMORY
        - AI_CHAT
        - AI_CONFIG
        - AI_CREDIT_LIMIT
        - AI_CREDIT_USAGE
        - AI_HINT
        - AI_PROMPT
        - APP
        - APP_CONFIG
        - APPROVAL_CHAIN
        - APPROVAL_CHAIN_STAGE
        - APPROVAL_DELEGATE
        - APPROVAL_REQUEST
        - ASSESSMENT
        - BUDGET
        - BUDGET_POOL
        - BUNDLE
        - CALENDAR
        - CALENDAR_ENTRY
        - CATEGORY
        - CATEGORY_SORT
        - CHANGE
        - COMMENT
        - COMP_BAND
        - COMP_REVIEW
        - CONTENT
        - CUSTOMER
        - DATA_VIEW
        - EXCHANGE_RATE
        - EMAIL_TEMPLATE
        - EVENT
        - FIELD
        - FILE
        - FORM
        - FORM_DRAFT
        - FORM_RESPONSE
        - GEOCODE
        - GROUP
        - GROUP_TYPE
        - GOAL
        - GOAL_PROGRESS
        - GOAL_TARGET
        - GOAL_TYPE
        - GUIDELINE
        - JOB
        - JOB_CODE
        - JOB_LEVEL
        - MEDIA
        - MESSAGE
        - MULTIPLIER
        - ORG
        - ORG_CONFIG
        - PERSON
        - PROFILE_TAB
        - POLICY
        - PROCESS
        - PRODUCT
        - QUERY_TOKEN
        - QUESTION
        - REPORT
        - REPORT_CHART
        - ROLE
        - SCENARIO
        - SIGNATURE
        - SIGNATURE_REQUEST
        - STOCK_GRANT
        - STOCK_PRICE
        - TABLE
        - TABLE_ROW
        - TASK_CONFIG
        - TEMPLATE
        - TASK
        - TOKEN
        - TIMEOFF
        - TIMEOFF_BALANCE_ADJUSTMENT
        - TIMEOFF_LEDGER_ENTRY
        - TIMEOFF_POLICY
        - TRANSCRIPT
        - USER
      entityId:
        type: string
        description: id of target entity
        example: 588f7ee98f138b19220041a7
      behalfUserId:
        type: string
        description: id of the original user this app user is acting on behalf of
        example: 588f7ee98f138b19220041a7
      agentUserId:
        type: string
        description: id of the agent (app user) if this event was performed by an agent on behalf of a user
        example: 588f7ee98f138b19220041a7
      aiChatId:
        type: string
        description: id of the AI chat that this event derives from
        example: 588f7ee98f138b19220041a7
      aiToolUseId:
        type: string
        description: AI chat tool use identifier that ties this event to a specific tool invocation
      jobId:
        type: string
        description: jobId of the entity, if the entity is a job or closely connected to a single job
        example: 588f7ee98f138b19220041a7
      personId:
        type: string
        description: personId of the entity, if the entity is a person or closely connected to a single person
        example: 588f7ee98f138b19220041a7
      tableId:
        type: string
        description: id of table, if entity is a table row
        example: 588f7ee98f138b19220041a7
      subtype:
        type: string
        description: subtype of entity
      payload:
        type: object
        description: event-specific payload containing information about the change that took place
        additionalProperties:
          type: object
      at:
        type: string
        description: timestamp of event
      processId:
        type: string
        description: id of process
        example: 588f7ee98f138b19220041a7
      date:
        type: string
        format: date
        description: effective date, if in use
      scenarioId:
        type: string
        description: id of scenario
        example: 588f7ee98f138b19220041a7
      parentEntityId:
        type: string
        description: id of associated entity, such as comp cycle
        example: 588f7ee98f138b19220041a7
      fields:
        type: array
        description: set of fields that were updated by the event
        uniqueItems: true
        items:
          type: string
      code:
        type: string
        description: event code, for example job.update
  ResultsAccess:
    type: object
    required:
    - allowed
    properties:
      ids:
        type: array
        uniqueItems: true
        items:
          type: string
          example: 588f7ee98f138b19220041a7
      allowed:
        type: array
        uniqueItems: true
        items:
          $ref: '#/definitions/AccessAction'
  ResultsEvent:
    type: object
    required:
    - data
    properties:
      data:
        type: array
        items:
          $ref: '#/definitions/Event'
      next:
        type: string
      access:
        type: array
        items:
          $ref: '#/definitions/ResultsAccess'