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

# Push Apps And Providers

> Create push apps and inspect redacted provider readiness.

## Endpoints

* `GET /push/apps`
* `POST /push/apps`
* `GET /push/apps/:id`
* `PATCH /push/apps/:id`
* `GET /push/apps/:id/providers`
* `GET /push/apps/:id/notification-channels`

Create a push app to obtain the public app ID used by Web, React Native,
Android, and iOS SDKs. Provider responses include readiness, missing setup
fields, public package/bundle identifiers, and the Web Push public key. Secret
FCM service accounts, APNs keys, VAPID private keys, and raw device tokens are
never returned.

Provider credential setup remains in the SendRealm dashboard.


## OpenAPI

````yaml api-reference/openapi.json GET /push/apps
openapi: 3.0.1
info:
  title: Sendrealm API
  description: >-
    API for email, push, audience resources, domains, campaign drafts,
    templates, events, topics, and automations
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.sendrealm.com
security:
  - bearerAuth: []
paths:
  /push/apps:
    get:
      summary: List push apps
      description: List project push apps and redacted platform-provider readiness.
      responses:
        '200':
          description: Push apps returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PushAppsListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    PushAppsListResponse:
      type: object
      required:
        - status
        - data
      properties:
        status:
          type: integer
          description: HTTP response status code
        data:
          type: array
          items:
            $ref: '#/components/schemas/PushApp'
    PushApp:
      type: object
      required:
        - id
        - public_id
        - name
        - providers
        - readiness
        - created_at
        - updated_at
      properties:
        id:
          type: string
          format: uuid
        public_id:
          type: string
          nullable: true
        name:
          type: string
        providers:
          type: array
          items:
            $ref: '#/components/schemas/PushProvider'
        readiness:
          type: object
          required:
            - ready
            - ready_platforms
          properties:
            ready:
              type: boolean
            ready_platforms:
              type: array
              items:
                type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    Error:
      type: object
      required:
        - status
        - error
      properties:
        status:
          type: integer
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
            message:
              type: string
            details:
              $ref: '#/components/schemas/JsonValue'
            issues:
              type: array
              items:
                $ref: '#/components/schemas/ValidationIssue'
    PushProvider:
      type: object
      required:
        - id
        - name
        - platform
        - status
        - android_package_name
        - apns_bundle_id
        - apns_environment
        - web_vapid_public_key
        - web_vapid_subject
        - readiness
        - created_at
        - updated_at
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        platform:
          type: string
        status:
          type: string
        android_package_name:
          type: string
          nullable: true
        apns_bundle_id:
          type: string
          nullable: true
        apns_environment:
          type: string
          nullable: true
        web_vapid_public_key:
          type: string
          nullable: true
        web_vapid_subject:
          type: string
          nullable: true
        readiness:
          $ref: '#/components/schemas/PushProviderReadiness'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    JsonValue:
      oneOf:
        - type: string
          nullable: true
        - type: number
        - type: boolean
        - type: object
          additionalProperties:
            $ref: '#/components/schemas/JsonValue'
        - type: array
          items:
            $ref: '#/components/schemas/JsonValue'
    ValidationIssue:
      type: object
      required:
        - code
        - path
        - message
      properties:
        code:
          type: string
        path:
          type: string
          nullable: true
        message:
          type: string
    PushProviderReadiness:
      type: object
      required:
        - ready
        - missing
      properties:
        ready:
          type: boolean
        missing:
          type: array
          items:
            type: string
  responses:
    Unauthorized:
      description: Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````