> For the complete documentation index, see [llms.txt](https://help.aximo.autify.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.aximo.autify.com/api-reference-ja/quick-start-mobile-test.md).

# Quick Start: Mobile Test

Mobile tests require uploading an app and selecting a device first.

```bash
# 1. List available devices
curl -H "x-api-key: $KEY" https://aximo.autify.com/api/devices?platform=ANDROID

# 2. Create an upload record
curl -X POST -H "x-api-key: $KEY" -H "Content-Type: application/json" \
  https://aximo.autify.com/api/uploads \
  -d '{"fileName":"my-app.apk"}'

# 3. Upload the binary to the presigned URL
curl -X PUT -H "Content-Type: application/octet-stream" \
  --data-binary @my-app.apk "PRESIGNED_URL"

# 4. Submit for processing
curl -X POST -H "x-api-key: $KEY" \
  https://aximo.autify.com/api/uploads/UPLOAD_ID/submit

# 5. Poll until the upload is processed
curl -H "x-api-key: $KEY" https://aximo.autify.com/api/uploads/UPLOAD_ID
# Wait for status=succeeded, then grab the uploadArn token from the response

# 6. Create a mobile session (deviceArn and uploadArn are encrypted tokens)
curl -X POST -H "x-api-key: $KEY" -H "Content-Type: application/json" \
  https://aximo.autify.com/api/sessions \
  -d '{"title":"App login test","prompt":"Open the app, tap Sign In, verify home screen.","projectId":"YOUR_PROJECT_ID","platform":"android","deviceArn":"DEVICE_TOKEN","deviceName":"Google Pixel 7","uploadArn":"UPLOAD_TOKEN","appName":"My App"}'

# 7. Poll session status
curl -H "x-api-key: $KEY" https://aximo.autify.com/api/sessions/SESSION_ID
```

Once an app is uploaded, you can reuse its `uploadArn` token for multiple sessions without re-uploading. Uploads expire on Device Farm after 30 days but are automatically re-uploaded from storage when listed via `GET /api/uploads`.

> **Note:** The `arn`, `deviceArn`, and `uploadArn` fields returned by the API are encrypted tokens, not raw AWS ARNs. Pass them as-is to other endpoints.
