//native
type Gitbook = {
token: string;
};
/**
* Query site events
*
*/
export async function main(
auth: Gitbook,
organizationId: string,
siteId: string,
body: {
select?:
| { column: "datetime"; interval?: "hour" | "day" | "week" | "month" }
| { column: "url" }
| { column: "eventType" }
| { column: "eventsCount" }
| { column: "sessionsCount" }
| { column: "visitorsCount" }
| { column: "siteSection" }
| { column: "siteSpace" }
| { column: "siteShareKey" }
| { column: "page" }
| { column: "visitorGeoCountry" }
| { column: "visitorGeoPoint"; precision?: number }
| { column: "visitorDevice" }
| { column: "visitorBrowser" }
| { column: "visitorOS" }
| { column: "visitorBot" }
| { column: "visitorLanguage" }
| { column: "eventLinkTargetValue" }
| { column: "eventLinkTargetKind" }
| { column: "eventLinkTargetDomain" }
| { column: "eventLinkPosition" }
| { column: "eventAPIOperationPath" }
| { column: "eventAPIOperationMethod" }
| { column: "eventSearchQuery" }
| { column: "eventPageFeedbackRating" }
| { column: "eventPageFeedbackComment" }
| { column: "eventAskResponseRating" }
| { column: "pageFeedbackRating" }
| { column: "askResponseRating" }
| { column: "referrer" }
| { column: "referrerDomain" }
| { column: "utmSource" }
| { column: "utmMedium" }
| { column: "utmCampaign" }
| { column: "utmTerm" }
| { column: "utmContent" }
| { column: "visitorClaimProperty" }
| { column: "visitorClaim"; claim: string }
| { column: "eventAdDomain" }
| { column: "eventAdPlacement" }
| { column: "eventTrademarkPlacement" }[];
where?:
| ({ column: "datetime"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "url"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "eventsCount"; values: number[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "sessionsCount"; values: number[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "visitorsCount"; values: number[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({
column: "eventType";
values:
| "page_view"
| "search_open"
| "search_type_query"
| "search_open_result"
| "page_post_feedback"
| "page_post_feedback_comment"
| "ask_question"
| "ask_rate_response"
| "link_click"
| "api_client_open"
| "api_client_request"
| "ad_click"
| "ad_display"
| "trademark_click"[];
} & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "visitorClaim"; claim: string; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "visitorClaimProperty"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({
column: "visitorBrowser";
values:
| "chrome"
| "firefox"
| "safari"
| "edge"
| "ie"
| "opera"
| "unknown"[];
} & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({
column: "visitorDevice";
values: "unknown" | "desktop" | "tablet" | "mobile"[];
} & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({
column: "visitorOS";
values:
| "unknown"
| "windows"
| "macos"
| "linux"
| "android"
| "ios"[];
} & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({
column: "visitorBot";
values:
| ""
| "unknown"
| "googlebot"
| "bingbot"
| "duckduckbot"
| "facebookbot"
| "applebot"
| "chatgpt"
| "anthropic"[];
} & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({
column: "eventLinkTargetValue";
values:
| { kind: "file"; file: string }
| { kind: "url"; url: string }
| { kind: "page"; page: string; space?: string }
| { kind: "anchor"; anchor: string; space?: string; page?: string }
| { kind: "user"; user: string }
| { kind: "collection"; collection: string }
| { kind: "space"; space: string }
| {
kind: "reusable-content";
reusableContent: string;
space?: string;
}
| { kind: "openapi"; spec: string }[];
} & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({
column: "eventLinkTargetKind";
values:
| "url"
| "page"
| "file"
| "anchor"
| "user"
| "collection"
| "space"
| "reusable-content"[];
} & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({
column: "eventLinkPosition";
values:
| "announcement"
| "header"
| "footer"
| "sidebar"
| "content"[];
} & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "siteSection"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "siteSpace"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "siteShareKey"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "page"; values: { page: string; space: string }[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "visitorGeoCountry"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({
column: "visitorGeoPoint";
values: { latitude: number; longitude: number; h3: string }[];
} & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "visitorLanguage"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "eventLinkTargetDomain"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "eventAPIOperationPath"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "eventAPIOperationMethod"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "eventSearchQuery"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({
column: "pageFeedbackRating";
values: { ok: number; good: number; bad: number }[];
} & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({
column: "askResponseRating";
values: { positive: number; negative: number }[];
} & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({
column: "eventPageFeedbackRating";
values: "bad" | "ok" | "good"[];
} & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "eventAskResponseRating"; values: number[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "eventPageFeedbackComment"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "referrer"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "referrerDomain"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "utmSource"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "utmMedium"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "utmCampaign"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "utmTerm"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "utmContent"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "eventAdDomain"; values: string[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({ column: "eventAdPlacement"; values: "aside"[] } & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
})
| ({
column: "eventTrademarkPlacement";
values: "footer" | "sidebar" | "ad" | "pdf"[];
} & {
operator?:
| "in"
| "notIn"
| "greaterThan"
| "greaterThanOrEqual"
| "lessThan"
| "lessThanOrEqual";
}[]);
groupBy?:
| { column: "datetime"; interval?: "hour" | "day" | "week" | "month" }
| { column: "url" }
| { column: "eventType" }
| { column: "eventsCount" }
| { column: "sessionsCount" }
| { column: "visitorsCount" }
| { column: "siteSection" }
| { column: "siteSpace" }
| { column: "siteShareKey" }
| { column: "page" }
| { column: "visitorGeoCountry" }
| { column: "visitorGeoPoint"; precision?: number }
| { column: "visitorDevice" }
| { column: "visitorBrowser" }
| { column: "visitorOS" }
| { column: "visitorBot" }
| { column: "visitorLanguage" }
| { column: "eventLinkTargetValue" }
| { column: "eventLinkTargetKind" }
| { column: "eventLinkTargetDomain" }
| { column: "eventLinkPosition" }
| { column: "eventAPIOperationPath" }
| { column: "eventAPIOperationMethod" }
| { column: "eventSearchQuery" }
| { column: "eventPageFeedbackRating" }
| { column: "eventPageFeedbackComment" }
| { column: "eventAskResponseRating" }
| { column: "pageFeedbackRating" }
| { column: "askResponseRating" }
| { column: "referrer" }
| { column: "referrerDomain" }
| { column: "utmSource" }
| { column: "utmMedium" }
| { column: "utmCampaign" }
| { column: "utmTerm" }
| { column: "utmContent" }
| { column: "visitorClaimProperty" }
| { column: "visitorClaim"; claim: string }
| { column: "eventAdDomain" }
| { column: "eventAdPlacement" }
| { column: "eventTrademarkPlacement" }[];
order?: {
by:
| { column: "datetime"; interval?: "hour" | "day" | "week" | "month" }
| { column: "url" }
| { column: "eventType" }
| { column: "eventsCount" }
| { column: "sessionsCount" }
| { column: "visitorsCount" }
| { column: "siteSection" }
| { column: "siteSpace" }
| { column: "siteShareKey" }
| { column: "page" }
| { column: "visitorGeoCountry" }
| { column: "visitorGeoPoint"; precision?: number }
| { column: "visitorDevice" }
| { column: "visitorBrowser" }
| { column: "visitorOS" }
| { column: "visitorBot" }
| { column: "visitorLanguage" }
| { column: "eventLinkTargetValue" }
| { column: "eventLinkTargetKind" }
| { column: "eventLinkTargetDomain" }
| { column: "eventLinkPosition" }
| { column: "eventAPIOperationPath" }
| { column: "eventAPIOperationMethod" }
| { column: "eventSearchQuery" }
| { column: "eventPageFeedbackRating" }
| { column: "eventPageFeedbackComment" }
| { column: "eventAskResponseRating" }
| { column: "pageFeedbackRating" }
| { column: "askResponseRating" }
| { column: "referrer" }
| { column: "referrerDomain" }
| { column: "utmSource" }
| { column: "utmMedium" }
| { column: "utmCampaign" }
| { column: "utmTerm" }
| { column: "utmContent" }
| { column: "visitorClaimProperty" }
| { column: "visitorClaim"; claim: string }
| { column: "eventAdDomain" }
| { column: "eventAdPlacement" }
| { column: "eventTrademarkPlacement" };
direction: "asc" | "desc";
};
range:
| "lastYear"
| "last3Months"
| "last30Days"
| "last7Days"
| "last24Hours"
| { from: string; to: string };
limit?: number;
},
) {
const url = new URL(
`https://api.gitbook.com/v1/orgs/${organizationId}/sites/${siteId}/insights/events/aggregate`,
);
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer " + auth.token,
},
body: JSON.stringify(body),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`${response.status} ${text}`);
}
return await response.json();
}
Submitted by hugo697 235 days ago