papps_get
Read the feature catalog, installed instances, plan-specific pricing options and install/remove restrictions before changing an existing channel. This tool does not install features, change pricing, refresh credentials or create a task.
| Input | Contract |
|---|---|
channelCode |
Required nonempty selected-channel code; . and .. are rejected |
pAppCode |
Optional exact feature code containing ASCII letters, digits or underscores |
query |
Optional case-insensitive substring search in catalog code and friendly names; at most 200 characters, default empty |
offset |
Optional integer, at least 0; default 0 |
limit |
Optional integer 1–50; default 20 |
{"channelCode":"selected-channel-code","query":"board","offset":0,"limit":20}
{"channelCode":"selected-channel-code","pAppCode":"A00003"}
Codes and channels are illustrative; select real values from authorized discovery. OWNER or a selected-channel DELEGATEE with MANAGE_P_APP_INSTALL_UNINSTALL is required, even for this read. CREATOR is denied. Hosted account scope excludes this tool; a hosted channel must match its exact selected channel.
Success returns code:PAPPS, channel/current plan, nullable accountType, apps, installed, detail, catalogCoverage, revision, total, nextOffset, removalImpact, paymentPolicy and verification. The task-type label papp-lifecycle does not mean that a read created a task.
appscontains the filtered catalog slice. It excludes X00001 and entries hidden from the store, but visible unreleased entries can remain with aninstallBlock.pricingModelsare filtered by the current plan's class prefix.directInstallcombines install eligibility, matching feature code and confirmed zero fees; it is not an unconditional authorization to install.installedcontains current installed rows, excluding X00001 and optionally filtering bypAppCode. Query and pagination do not limit this array. Keep the numeric installed ID distinct from its feature code and pricing-modelppmid;alias:nullstays null.detailis read only when a suppliedpAppCodeidentifies an installed entry. Otherwise it is null. A missing or mismatched detail for an entry in the installed snapshot fails verification instead of reporting confirmed absence.totalandnextOffsetdescribe the filtered catalog, not installed-row pagination.catalogCoverage.retainedCountdescribes all retained catalog rows before display filtering.omittedCodeslists sorted placeholder identifiers;allRowsUsableis false when any were omitted. These fields do not prove store-wide availability or effective visitor access.
Only catalog rows with all three of manifest, releaseControl and information explicitly null may be omitted as placeholders. Invalid present metadata and duplicate identifiers still fail. Omission never supplies a free price or install eligibility; an installed feature whose catalog policy cannot be resolved cannot be removed automatically. Account type null is unknown, not PERSONAL or BUSINESS.
The revision covers the full received plan/currency/account/catalog/installed snapshot and nonempty omission diagnostics, with relevant arrays sorted for hashing. Search and pagination do not narrow it. Copy the returned hash into install/remove; do not hash only the displayed page. A client revision is not an atomic server write lock.
installedPAppPricingModels.current and next preserve current and scheduled states. A scheduled next plan is not active. Pricing values remain strings; direct installation requires verified zero installation, monthly and usage fees in the channel's currency. A FREE label alone is insufficient. See the workflow guide.
verification.confirmed:true with method catalog_and_installed_read confirms the accepted stored observation; effectiveVisitorUse:false excludes visitor functionality. Response-shape errors use PAPP_RESPONSE_UNVERIFIED; list/detail disagreement uses PAPP_DETAIL_UNVERIFIED. These are not empty-list successes. The common navigation wrapper returns one appropriate store destination when resolvable, not one link per row.
Install · Remove · Human pricing/plan handoff · Workflow and evidence boundaries
Selected installed identity
The detail response must match both the selected numeric installed ID and feature code. The same feature code alone is insufficient. A mismatch returns the existing detail/target error before exposing detail or a console destination. No payment, installation, removal or credential refresh is performed by this check.
Installed-feature availability
Installation enables the feature; there is no separate activation/deactivation
step. Raw isActive is a legacy observed value and must not be interpreted as an
activation prerequisite. Use design_access_get and design_access_apply for
supported visitor-access restrictions, and retain their paid-access limitations.
Uninstall destroys data and is not a substitute for restricting access. Catalog
publication, product availability, pricing and notification switches remain
separate settings.
Inputs
| Field | Required here | Contract |
|---|---|---|
app |
No | string; min length 1; max length 100; The feature: its code from papps_get (for example C00001) or its exact store name. |
query |
No | string; max length 200 |
offset |
No | integer; minimum 0 |
limit |
No | integer; minimum 1; maximum 50 |