{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/june/main/json-schema/june-page-request-schema.json", "title": "June Page Request", "description": "Request body schema for the June Tracking API /page endpoint.", "type": "object", "properties": { "userId": { "type": "string", "description": "The ID for this user in your database. At least one of userId or anonymousId must be provided." }, "anonymousId": { "type": "string", "description": "An ID for the user when identity is unknown." }, "properties": { "type": "object", "description": "A dictionary of page properties.", "properties": { "url": { "type": "string", "format": "uri", "description": "The full URL of the current page." }, "path": { "type": "string", "description": "The path portion of the URL." }, "title": { "type": "string", "description": "The title of the page." }, "referrer": { "type": "string", "description": "The referrer of the page." }, "search": { "type": "string", "description": "The search/query portion of the URL." } }, "additionalProperties": true }, "timestamp": { "type": "string", "format": "date-time", "description": "ISO 8601 date-time when the page view occurred. Defaults to server time if omitted." }, "context": { "type": "object", "description": "Extra context to attach to the call.", "properties": { "groupId": { "type": "string", "description": "Group or company identifier to associate the page view with." }, "ip": { "type": "string", "description": "The user's IP address." }, "locale": { "type": "string", "description": "The locale of the user, e.g. en-US." }, "timezone": { "type": "string", "description": "The user's timezone in tzdata format." }, "screen": { "type": "object", "properties": { "width": { "type": "integer" }, "height": { "type": "integer" }, "density": { "type": "number" } } } }, "additionalProperties": true } }, "anyOf": [ { "required": ["userId"] }, { "required": ["anonymousId"] } ] }