---
updatedAt: 2026-05-27T09:39:35.000Z
agentTools:
  projectIndex: https://apis.appdome.com/llms.txt
---

# Build a PWA

This API creates a Secure PWA™ app from a provided URL for iOS (<code>ipa</code>), Android (<code>aab</code>), or both platforms.
The request completes only after the PWA upload finishes. Use the returned App ID for the subsequent build flow.
<h2>iOS PWA builds</h2>
When <code>pwa_platform</code> is <code>ipa</code> or <code>both</code>, <code>overrides</code> is required and must include a base64-encoded provisioning profile:
<pre>{
  "provisioning_profile": [
    {
      "filename": "[File Name]",
      "content": "[BASE64 CONTENT]"
    }
  ]
}</pre>
<h2>Response</h2>
Returns an array of results (one entry per platform; two entries when <code>pwa_platform</code> is <code>both</code>). Each entry includes an <code>app</code> object with the App ID:
<pre>[
  {
    "app": {
      "id": "5b4a3a56-1137-468e-bb82-375ca89e9b96",
      "pack_type": "ipa",
      "is_pwapp": true,
      "status": "active"
    }
  }
]</pre>
Use <code>app.id</code> with the regular build API to select a Fusion Set and continue the build flow.

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "version": "1.0.0",
    "title": "Appdome API"
  },
  "servers": [
    {
      "url": "https://fusion.appdome.com/api/v1",
      "description": "Main Appdome API Server"
    },
    {
      "url": "{aws_upload_link}",
      "description": "S3 Upload URL",
      "variables": {
        "aws_upload_link": {
          "default": "",
          "description": "The S3 bucket name from the pre-signed URL. Obtained from 'Get AWS Upload Link' route."
        }
      }
    }
  ],
  "components": {
    "securitySchemes": {
      "apiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization"
      }
    }
  },
  "paths": {
    "/pwappload": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "description": "This API creates a Secure PWA™ app from a provided URL for iOS (<code>ipa</code>), Android (<code>aab</code>), or both platforms.\nThe request completes only after the PWA upload finishes. Use the returned App ID for the subsequent build flow.\n<h2>iOS PWA builds</h2>\nWhen <code>pwa_platform</code> is <code>ipa</code> or <code>both</code>, <code>overrides</code> is required and must include a base64-encoded provisioning profile:\n<pre>{\n  \"provisioning_profile\": [\n    {\n      \"filename\": \"[File Name]\",\n      \"content\": \"[BASE64 CONTENT]\"\n    }\n  ]\n}</pre>\n<h2>Response</h2>\nReturns an array of results (one entry per platform; two entries when <code>pwa_platform</code> is <code>both</code>). Each entry includes an <code>app</code> object with the App ID:\n<pre>[\n  {\n    \"app\": {\n      \"id\": \"5b4a3a56-1137-468e-bb82-375ca89e9b96\",\n      \"pack_type\": \"ipa\",\n      \"is_pwapp\": true,\n      \"status\": \"active\"\n    }\n  }\n]</pre>\nUse <code>app.id</code> with the regular build API to select a Fusion Set and continue the build flow.",
        "summary": "Build a PWA",
        "parameters": [
          {
            "in": "query",
            "name": "team_id",
            "required": true,
            "description": "Personal or Team ID",
            "schema": {
              "type": "string",
              "default": "personal"
            }
          }
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Array of PWA upload results. Each item includes an app object with the Application ID.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "app": {
                        "type": "object",
                        "description": "Uploaded PWA app. Use app.id as the Application ID for subsequent build/sign steps.",
                        "properties": {
                          "id": {
                            "type": "string",
                            "example": "5b4a3a56-1137-468e-bb82-375ca89e9b96",
                            "description": "Application ID"
                          },
                          "pack_type": {
                            "type": "string",
                            "example": "ipa",
                            "description": "Platform pack type (ipa or aab)"
                          },
                          "is_pwapp": {
                            "type": "boolean",
                            "example": true
                          },
                          "status": {
                            "type": "string",
                            "example": "active"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "user rate limit has exceed..",
            "content": {
              "application/json": {}
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "pwa_address": {
                    "type": "string"
                  },
                  "pwa_platform": {
                    "type": "string"
                  },
                  "pwa_app_name": {
                    "type": "string"
                  },
                  "overrides": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
```