Skip to content

apps reference

This reference follows the current server implementation. Use the SDK for customer flows; it manages identity proof and retries. Authentication and errors apply to every endpoint. Types below describe JSON: dates are ISO strings, ? means optional, and null differs from an omitted field. Responses may include additional fields. Schemas also enforce constraints that TypeScript cannot express; download the request JSON Schemas. Named response types are defined in the data model reference.

Authentication: Public or secret app API key; customer/session proof is still required wherever the operation acts on an identity.

Supply these values as query parameters. Path parameters remain in the URL.

"account" | "app_store"
{ version: 1;
policy: "account";
} | { version: 1;
policy: "app_store";
products: { productIdentifier: string;
kind: "subscription" | "non_consumable";
entitlementIdentifiers: string[];
familySharingEnabled: boolean;
}[];
appPurchaseRules?: { entitlementIdentifiers: string[];
originalAppVersionFormat?: "integer" | "dotted" | undefined;
originalAppVersionBefore?: string | undefined;
originalPurchaseDateBefore?: string | undefined;
}[] | undefined;
}
{ contractVersion: 2;
metrics: { key: string;
revision: number;
label: string;
unit: "duration" | "count" | "bytes" | "credits";
scale: number;
allowedSources: ("server" | "client")[];
dimensionKeys: string[];
entitlementId: string | null;
isActive: boolean;
}[];
dimensions: { key: string;
allowedValues: string[];
}[];
}
JSON response shape
{ error: string;
}
JSON response shape
{ auth: { methods: AuthMethodCapability[];
};
support: { contactMode: "optional_email" | "required_email" | "authenticated_account";
emailVerificationMode: "none" | "optional" | "required";
};
usage?: { contractVersion: 2;
metrics: { key: string;
revision: number;
label: string;
unit: "duration" | "count" | "bytes" | "credits";
scale: number;
allowedSources: ("server" | "client")[];
dimensionKeys: string[];
entitlementId: string | null;
isActive: boolean;
}[];
dimensions: { key: string;
allowedValues: string[];
}[];
} | undefined;
appId: string;
name: string;
appearance: AppAppearance;
paidAccess: PaidAccessConfiguration;
remoteConfig?: Record<string, SDKRemoteConfigEntry> | undefined;
}

Errors: validation/authentication failures use the common error envelope. A missing or inaccessible target returns an error; never interpret it as an empty successful result.

Implementation · Handler: inline route handler.