> ## 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 Providers Configure APNs

> Configure or replace iOS APNs signing credentials and bundle/environment settings. Credentials are write-only: submitted directly without preparation, queued payloads or credential echoes. This changes provider configuration immediately; inspect push_providers_list before retrying an uncertain result. Requires the selected project grant, current provider-management role and push_providers.write scope.

Configure or replace iOS APNs signing credentials and bundle/environment settings. Credentials are write-only: submitted directly without preparation, queued payloads or credential echoes. This changes provider configuration immediately; inspect push\_providers\_list before retrying an uncertain result.

Requires a scoped personal key, an explicit granted project\_id, and push\_providers.write. Current role and credential grants remain enforced. See [Agent messaging and project operations](https://docs.sendrealm.com/tutorials/agent-messaging-project-operations.md) for authorization and recovery.


## OpenAPI

````yaml api-reference/openapi.json POST /project-operations/push_providers_configure_apns
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: 0.4.0
servers:
  - url: https://api.sendrealm.com
security:
  - bearerAuth: []
paths:
  /project-operations/push_providers_configure_apns:
    post:
      tags:
        - Agent project operations
      summary: >-
        Configure or replace iOS APNs signing credentials and bundle/environment
        settings.
      description: >-
        Configure or replace iOS APNs signing credentials and bundle/environment
        settings. Credentials are write-only: submitted directly without
        preparation, queued payloads or credential echoes. This changes provider
        configuration immediately; inspect push_providers_list before retrying
        an uncertain result. Requires the selected project grant, current
        provider-management role and push_providers.write scope.
      operationId: push_providers_configure_apns
      parameters:
        - name: X-Sendrealm-Project-Id
          in: header
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/McpPushProviderApnsConfigure'
      responses:
        '200':
          description: Authorized result, preparation, or durable execution receipt.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                  data:
                    $ref: '#/components/schemas/McpProjectPushProvider'
                additionalProperties: false
                required:
                  - status
                  - data
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Personal credential required or expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Scope, current role or project grant denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Resource unavailable or feature disabled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Stale preparation or conflicting resource state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Operational content validation failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearerAuth: []
components:
  schemas:
    McpPushProviderApnsConfigure:
      type: object
      additionalProperties: false
      properties:
        app_id:
          type: string
          minLength: 1
          maxLength: 36
          description: >-
            Push app UUID from push_apps_create or push_apps_list in this
            project.
          format: uuid
        apns_p8_key:
          type: string
          minLength: 1
          maxLength: 16384
          description: Write-only APNs .p8 signing key PEM file contents.
          writeOnly: true
        apns_key_id:
          type: string
          minLength: 1
          maxLength: 32
          description: Apple APNs signing key ID.
        apns_team_id:
          type: string
          minLength: 1
          maxLength: 32
          description: Apple developer team ID.
        apns_bundle_id:
          type: string
          minLength: 1
          maxLength: 255
          description: iOS application bundle ID.
        apns_environment:
          type: string
          enum:
            - sandbox
            - production
          description: APNs environment; omitted defaults to production.
      required:
        - app_id
        - apns_p8_key
        - apns_key_id
        - apns_team_id
        - apns_bundle_id
      x-sendrealm-mcp-contract: true
    McpProjectPushProvider:
      type: object
      additionalProperties: false
      required:
        - id
        - name
        - platform
        - status
      properties:
        id:
          type: string
        name:
          type: string
        platform:
          type: string
          enum:
            - android
            - ios
            - web
        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
      x-sendrealm-mcp-contract: true
    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'
    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
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Integration key for backend workloads, or a scoped personal key
        (sr_user_) for account discovery and supported project operations. MCP
        accepts only personal keys.

````

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