Save privacy policy data

PUT /api/apps/{appId}/policy
Saves the privacy policy wizard data. Returns any validation warnings (e.g., missing fields that are recommended but not required).

Parameters

Name Type Description
appIdrequired string The app's unique identifier Example: -NtestApp123

Request Body

Name Type Description
app-info object
app_name string
developer_name string
email string
data-collection object
collects_data string Gate field: 'yes' or 'no'
data_types string[]
purposes string[]
third-party object
shares_data string[]
third_party_list string
data-retention object
retains_data string Gate field: 'yes' or 'no'
retention_period string
children-tracking object
children_or_tracking string Gate field: 'yes' or 'no'
collects_from_children string[]
uses_tracking string[]
_seenSections object Tracks which wizard sections the user has visited

Responses

200 Policy saved
Name Type Description
warnings string[]
400 Validation failed
Name Type Description
errorrequired object
coderequired string Machine-readable error code UNAUTHORIZEDFORBIDDENNOT_FOUNDVALIDATION_FAILEDRATE_LIMITEDSLUG_TAKENSLUG_RESERVEDDOMAIN_IN_USEAPP_LIMIT_REACHEDSUBSCRIPTION_REQUIREDSUBSCRIPTION_EXISTSNO_PAYMENT_METHODNO_ACTIVE_SUBSCRIPTIONNOT_CANCELINGALREADY_CANCELINGSUBSCRIPTION_CANCELINGSAME_PLANCARD_ERRORPAYMENT_ERRORNO_STRIPE_CUSTOMERCERT_CREATION_FAILEDDEPLOY_FAILEDAPI_KEY_LIMIT_REACHEDINVALID_IDEMPOTENCY_KEYIDEMPOTENCY_KEY_REUSEINTERNAL_ERROR
messagerequired string Human-readable error description
docUrl string (uri) Link to relevant API documentation for this error Example: https://orbitkit.io/api/errors/#unauthorized
details object[] Additional validation details (Zod errors)
401 Missing, invalid, or expired authentication token
Name Type Description
errorrequired object
coderequired string Machine-readable error code UNAUTHORIZEDFORBIDDENNOT_FOUNDVALIDATION_FAILEDRATE_LIMITEDSLUG_TAKENSLUG_RESERVEDDOMAIN_IN_USEAPP_LIMIT_REACHEDSUBSCRIPTION_REQUIREDSUBSCRIPTION_EXISTSNO_PAYMENT_METHODNO_ACTIVE_SUBSCRIPTIONNOT_CANCELINGALREADY_CANCELINGSUBSCRIPTION_CANCELINGSAME_PLANCARD_ERRORPAYMENT_ERRORNO_STRIPE_CUSTOMERCERT_CREATION_FAILEDDEPLOY_FAILEDAPI_KEY_LIMIT_REACHEDINVALID_IDEMPOTENCY_KEYIDEMPOTENCY_KEY_REUSEINTERNAL_ERROR
messagerequired string Human-readable error description
docUrl string (uri) Link to relevant API documentation for this error Example: https://orbitkit.io/api/errors/#unauthorized
details object[] Additional validation details (Zod errors)
Language
URL
PUT https://api.orbitkit.io/api/apps/{appId}/policy
curl -X PUT "https://api.orbitkit.io/api/apps/-NtestApp123/policy" \
  -H "Authorization: Bearer $ORBITKIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"app-info":"string","data-collection":"string","third-party":"string","data-retention":"string","children-tracking":"string","_seenSections":"string"}'
const response = await fetch(`https://api.orbitkit.io/api/apps/-NtestApp123/policy`, {
  method: "PUT",
  headers: {
    "Authorization": "Bearer " + apiKey,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
      "app-info": "string",
      "data-collection": "string",
      "third-party": "string",
      "data-retention": "string",
      "children-tracking": "string",
      "_seenSections": "string"
  }),
});

const data = await response.json();
console.log(data);
var request = URLRequest(url: URL(string: "https://api.orbitkit.io/api/apps/-NtestApp123/policy")!)
request.httpMethod = "PUT"
request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

let body: [String: Any] = ["app-info": "string", "data-collection": "string", "third-party": "string", "data-retention": "string", "children-tracking": "string", "_seenSections": "string"]
request.httpBody = try JSONSerialization.data(withJSONObject: body)

let (data, _) = try await URLSession.shared.data(for: request)
let json = try JSONSerialization.jsonObject(with: data)
print(json)
200
{
  "warnings": "string"
}
400
{
  "error": {
    "code": "VALIDATION_FAILED",
    "message": "Validation failed",
    "docUrl": "https://orbitkit.io/api/errors/#validation-failed",
    "details": [
      {
        "field": "appName",
        "message": "Required"
      }
    ]
  }
}
401
{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid or expired token",
    "docUrl": "https://orbitkit.io/api/errors/#unauthorized"
  }
}