> ## Documentation Index
> Fetch the complete documentation index at: https://docs.galinum.com/llms.txt
> Use this file to discover all available pages before exploring further.

# observeInstallationPush



## OpenAPI

````yaml /openapi.json post /api/v1/sdk/installations/{installationId}/observations
openapi: 3.1.0
info:
  title: Galinum API
  version: '2026-08-22'
  description: >-
    Galinum's HTTP API. SDK endpoints power the browser SDK. Management
    endpoints use a project secret. The scoped hosted-agent credential writes
    only through lease-fenced evaluation and GitHub source endpoints.
    Managed-only operations return 501 on the self-host server.
servers:
  - url: https://galinum.com
    description: Production
security:
  - publishableKey: []
paths:
  /api/v1/sdk/installations/{installationId}/observations:
    post:
      tags:
        - Push
      summary: observeInstallationPush
      operationId: observeInstallationPush
      parameters:
        - name: installationId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 128
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PushObservationBatch'
        description: 'Maximum encoded body size: 65536 bytes.'
      responses:
        '200':
          description: Successful operation. Acceptance is distinct from device receipt.
          content:
            application/json:
              schema:
                type: object
                properties:
                  acknowledgedThrough:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                required:
                  - acknowledgedThrough
                additionalProperties: false
        '400':
          description: Invalid request
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '409':
          description: Conflict
        '413':
          description: Body too large
        '429':
          description: Rate limit
        '503':
          description: Configuration or capacity unavailable
      security:
        - publishableKey: []
          installationCapability: []
components:
  schemas:
    PushObservationBatch:
      type: object
      properties:
        bindingGeneration:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        commands:
          type: array
          items:
            $ref: '#/components/schemas/PushCommand'
          maxItems: 32
          minItems: 1
      required:
        - bindingGeneration
        - commands
      additionalProperties: false
    PushCommand:
      oneOf:
        - $ref: '#/components/schemas/PushReceiptCommand'
        - $ref: '#/components/schemas/PushActionCommand'
        - $ref: '#/components/schemas/PushEventCommand'
    PushReceiptCommand:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 128
        sequence:
          type: integer
          minimum: 1
          maximum: 9007199254740991
        kind:
          type: string
          enum:
            - receipt
            - tap
        targetId:
          type: string
          minLength: 1
          maxLength: 128
        attemptId:
          type: string
          minLength: 1
          maxLength: 128
      required:
        - id
        - sequence
        - kind
        - targetId
        - attemptId
      additionalProperties: false
    PushActionCommand:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 128
        sequence:
          type: integer
          minimum: 1
          maximum: 9007199254740991
        kind:
          type: string
          enum:
            - action
        targetId:
          type: string
          minLength: 1
          maxLength: 128
        attemptId:
          type: string
          minLength: 1
          maxLength: 128
        actionId:
          type: string
          minLength: 1
          maxLength: 64
      required:
        - id
        - sequence
        - kind
        - targetId
        - attemptId
        - actionId
      additionalProperties: false
    PushEventCommand:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 128
        sequence:
          type: integer
          minimum: 1
          maximum: 9007199254740991
        kind:
          type: string
          enum:
            - event
        event:
          type: string
          minLength: 1
          maxLength: 80
        eventId:
          type: string
          minLength: 1
          maxLength: 128
        props:
          $ref: '#/components/schemas/PushEventProps'
      required:
        - id
        - sequence
        - kind
        - event
        - eventId
      additionalProperties: false
    PushEventProps:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/PushJson'
      description: >-
        Full JSON properties, matching track. Maximum compact encoded size is
        4096 bytes.
    PushJson:
      oneOf:
        - type: 'null'
        - type: boolean
        - type: number
        - type: string
        - type: array
          items:
            $ref: '#/components/schemas/PushJson'
        - type: object
          additionalProperties:
            $ref: '#/components/schemas/PushJson'
  securitySchemes:
    publishableKey:
      type: http
      scheme: bearer
      description: >-
        Your project's publishable key (`pk_pub_…`). Safe to expose in the
        browser — it identifies the project and is rate-limited, not secret.
    installationCapability:
      type: apiKey
      in: header
      name: X-Galinum-Installation-Capability
      description: >-
        Locally generated installation capability. Required with the project
        publishable key for installation reads and mutations.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.