Apps API
List, create, read, update, and delete publisher apps via API key.
Apps belong to your publisher organization. Each app has its own appId, redirect URLs, and survey traffic.
You can manage apps in the Publisher Portal or via the REST API below (same data model).
Local docs: use Download collection and import the file in Postman (File → Import). Run in Postman needs the public URL at publishers.mypinio.com — Postman cannot fetch collections from localhost.
Authentication
All requests require a valid API key. Responses are scoped to the organization linked to that key.
List apps
GET https://publishers.mypinio.com/api/v1/publishers/appsResponse:
{
"apps": [
{
"id": "clx…",
"appName": "My Panel",
"platform": "web",
"status": "active",
"createdAt": "2026-06-04T10:00:00.000Z"
}
]
}Create app
POST https://publishers.mypinio.com/api/v1/publishers/apps| Field | Required | Description |
|---|---|---|
appName | Yes | Display name (1–120 characters) |
platform | No | web (default), ios, or android |
The server sets status to active and initializes empty redirect settings until you configure them in the portal.
Example:
{
"appName": "My Panel",
"platform": "web"
}Response (201):
{
"id": "clx…",
"appName": "My Panel",
"platform": "web",
"status": "active",
"createdAt": "2026-06-04T10:00:00.000Z"
}Configure redirect URLs and the signing secret under Apps → Settings before calling POST /surveys.
Get app
GET https://publishers.mypinio.com/api/v1/publishers/apps/{id}Returns id, appName, platform, status, appSettings (redirect URLs only — signing secret is never returned), hasRedirectSigningSecret, createdAt, updatedAt. Returns 404 if the app is not in your organization.
Example:
{
"id": "clx…",
"appName": "My Panel",
"platform": "web",
"status": "active",
"appSettings": {
"redirectUrls": {
"complete": "https://community.example/survey-return/complete",
"screenOut": "https://community.example/survey-return/screen-out",
"cancelled": "https://community.example/api/v1/publishers/survey-cancelled"
}
},
"hasRedirectSigningSecret": true,
"createdAt": "2026-06-04T10:00:00.000Z",
"updatedAt": "2026-06-04T10:00:00.000Z"
}Configure the signing secret in the portal — it is stored on your server for HMAC verification and is not exposed via this API.
Update app
PATCH https://publishers.mypinio.com/api/v1/publishers/apps/{id}Send any of:
| Field | Description |
|---|---|
appName | New name (non-empty string) |
platform | web, ios, or android |
status | e.g. active |
Response: updated id, appName, platform, status, updatedAt.
Delete app
DELETE https://publishers.mypinio.com/api/v1/publishers/apps/{id}Success (200):
{ "deleted": true }Blocked (409) when the app has logged usage (survey events or offer-wall entries). Deletion is blocked to preserve history.
Portal vs API
| Action | Portal | API |
|---|---|---|
| Create app | Organization owner only (Apps → Create app) | Any member with a valid API key for the org |
| Redirect URLs | Apps → Settings | Not exposed on REST v1 — use the portal |
| API keys | Settings → API keys | — |
Related
- API discovery — endpoint index
- POST /surveys — request offers for an
appId