semrush-api-client 0.1.24 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/backlinks/backlinksOverview.d.ts +4 -3
  2. package/dist/backlinks/backlinksOverview.js +5 -4
  3. package/dist/backlinks/getAnchors.d.ts +6 -4
  4. package/dist/backlinks/getAnchors.js +7 -5
  5. package/dist/backlinks/getBacklinks.d.ts +7 -4
  6. package/dist/backlinks/getBacklinks.js +8 -5
  7. package/dist/backlinks/getIndexedPages.d.ts +6 -4
  8. package/dist/backlinks/getIndexedPages.js +7 -5
  9. package/dist/backlinks/getReferringDomains.d.ts +7 -4
  10. package/dist/backlinks/getReferringDomains.js +8 -5
  11. package/dist/client/index.d.ts +2 -1
  12. package/dist/client/index.js +1 -0
  13. package/dist/domain/getAdsCopies.d.ts +10 -3
  14. package/dist/domain/getAdsCopies.js +13 -3
  15. package/dist/domain/getDomainOrganicSearchKeywords.d.ts +12 -5
  16. package/dist/domain/getDomainOrganicSearchKeywords.js +14 -4
  17. package/dist/domain/getDomainOverview.d.ts +8 -4
  18. package/dist/domain/getDomainOverview.js +12 -5
  19. package/dist/domain/getDomainPaidSearchKeywords.d.ts +11 -4
  20. package/dist/domain/getDomainPaidSearchKeywords.js +14 -4
  21. package/dist/domain/getDomainRank.d.ts +9 -0
  22. package/dist/domain/getDomainRank.js +13 -0
  23. package/dist/keyword/getBroadMatchKeywords.d.ts +7 -3
  24. package/dist/keyword/getBroadMatchKeywords.js +7 -3
  25. package/dist/keyword/getKeywordDifficulty.d.ts +4 -2
  26. package/dist/keyword/getKeywordDifficulty.js +4 -3
  27. package/dist/keyword/getKeywordOrganic.d.ts +17 -0
  28. package/dist/keyword/getKeywordOrganic.js +18 -0
  29. package/dist/keyword/getKeywordOverview.d.ts +5 -2
  30. package/dist/keyword/getKeywordOverview.js +9 -3
  31. package/dist/keyword/getPhrase.d.ts +9 -0
  32. package/dist/keyword/getPhrase.js +12 -0
  33. package/dist/keyword/getPhraseQuestions.d.ts +7 -3
  34. package/dist/keyword/getPhraseQuestions.js +7 -3
  35. package/dist/keyword/getRelatedKeywords.d.ts +7 -3
  36. package/dist/keyword/getRelatedKeywords.js +8 -4
  37. package/dist/keyword/index.d.ts +1 -0
  38. package/dist/keyword/index.js +3 -1
  39. package/dist/overview/getRankDifference.d.ts +9 -3
  40. package/dist/overview/getRankDifference.js +13 -4
  41. package/dist/overview/getSemrushRank.d.ts +8 -3
  42. package/dist/overview/getSemrushRank.js +12 -3
  43. package/dist/trend/getTrafficSummary.d.ts +5 -2
  44. package/dist/trend/getTrafficSummary.js +10 -4
  45. package/dist/url/getUrlOrganicSearchKeywords.d.ts +9 -4
  46. package/dist/url/getUrlOrganicSearchKeywords.js +14 -5
  47. package/dist/url/getUrlOverview.d.ts +6 -5
  48. package/dist/url/getUrlOverview.js +11 -6
  49. package/dist/url/getUrlPaidSearchKeywords.d.ts +9 -4
  50. package/dist/url/getUrlPaidSearchKeywords.js +14 -5
  51. package/dist/utils/displayDateValidator.d.ts +1 -0
  52. package/dist/utils/displayDateValidator.js +9 -0
  53. package/package.json +3 -2
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getKeywordOrganic = getKeywordOrganic;
4
+ async function getKeywordOrganic({ phrase, exportColumns = ["Po", "Pt", "Dn", "Ur", "Fk", "Fp", "Fl"], database = "us", displayLimit = 10, displayOffset, displaySort, displayFilter, exportEscape, exportDecode, outputObj = true, }) {
5
+ const params = {
6
+ type: "phrase_organic",
7
+ export_columns: exportColumns.join(","),
8
+ phrase,
9
+ database,
10
+ display_limit: displayLimit,
11
+ display_offset: displayOffset,
12
+ display_sort: displaySort,
13
+ display_filter: displayFilter,
14
+ export_escape: exportEscape,
15
+ export_decode: exportDecode,
16
+ };
17
+ return this.get(this.BASE_URL, params, outputObj);
18
+ }
@@ -1,10 +1,13 @@
1
1
  import { SemrushAPIClient } from "../client";
2
2
  import { Database } from "../type/general/database";
3
3
  type KeywordExportColumns = "Dt" | "Db" | "Ph" | "Nq" | "Cp" | "Co" | "Nr" | "In" | "Kd";
4
- export declare function getKeywordOverview(this: SemrushAPIClient, { phrase, export_columns, database, outputObj, }: {
4
+ export declare function getKeywordOverview(this: SemrushAPIClient, { phrase, exportColumns, database, displayDate, exportEscape, exportDecode, outputObj, }: {
5
5
  phrase: string;
6
- export_columns?: KeywordExportColumns[];
6
+ exportColumns?: KeywordExportColumns[];
7
7
  database?: Database;
8
+ displayDate?: string;
9
+ exportEscape?: 1;
10
+ exportDecode?: 0 | 1;
8
11
  outputObj?: boolean;
9
12
  }): Promise<Record<string, string>[]>;
10
13
  export {};
@@ -1,13 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getKeywordOverview = getKeywordOverview;
4
- async function getKeywordOverview({ phrase, export_columns = ["Dt", "Db", "Ph", "Nq", "Cp", "Co", "Nr", "In", "Kd"], database = "us", outputObj = true, // Default to true for output object
5
- }) {
4
+ const displayDateValidator_1 = require("../utils/displayDateValidator");
5
+ async function getKeywordOverview({ phrase, exportColumns = ["Dt", "Db", "Ph", "Nq", "Cp", "Co", "Nr", "In", "Kd"], database = "us", displayDate, exportEscape, exportDecode, outputObj = true, }) {
6
+ if (displayDate && !(0, displayDateValidator_1.displayDateValidator)(displayDate)) {
7
+ throw new Error("Invalid displayDate format. Format: YYYYMM15");
8
+ }
6
9
  const params = {
7
10
  type: "phrase_all",
8
- export_columns: export_columns.join(","),
11
+ export_columns: exportColumns.join(","),
9
12
  phrase,
10
13
  database,
14
+ display_date: displayDate,
15
+ export_escape: exportEscape,
16
+ export_decode: exportDecode,
11
17
  };
12
18
  return this.get(this.BASE_URL, params, outputObj);
13
19
  }
@@ -0,0 +1,9 @@
1
+ import { SemrushAPIClient } from "../client";
2
+ import { Database } from "../type/general/database";
3
+ type KeywordExportColumns = "Dt" | "Db" | "Ph" | "Nq" | "Cp" | "Co" | "Nr" | "In" | "Kd";
4
+ export declare function getPhraseAll(this: SemrushAPIClient, { phrase, export_columns, database, }: {
5
+ phrase: string;
6
+ export_columns?: KeywordExportColumns[];
7
+ database?: Database;
8
+ }): Promise<string>;
9
+ export {};
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPhraseAll = getPhraseAll;
4
+ async function getPhraseAll({ phrase, export_columns = ["Dt", "Db", "Ph", "Nq", "Cp", "Co", "Nr"], database = "us", }) {
5
+ const params = {
6
+ type: "phrase_all",
7
+ export_columns: export_columns.join(","),
8
+ phrase,
9
+ database,
10
+ };
11
+ return this.get("", params);
12
+ }
@@ -2,11 +2,15 @@ import { SemrushAPIClient } from "../client";
2
2
  import { Database } from "../type/general/database";
3
3
  export type ExportColumns = "Ph" | "Nq" | "Cp" | "Co" | "Nr" | "Td" | "In" | "Kd";
4
4
  export type DisplaySort = "nq_asc" | "nq_desc" | "cp_asc" | "cp_desc" | "co_asc" | "co_desc" | "nr_asc" | "nr_desc" | "kd_asc" | "kd_desc";
5
- export declare function getPhraseQuestions(this: SemrushAPIClient, { phrase, export_columns, database, displaySort, display_limit, outputObj, }: {
5
+ export declare function getPhraseQuestions(this: SemrushAPIClient, { phrase, exportColumns, database, displaySort, displayLimit, displayOffset, displayFilter, exportEscape, exportDecode, outputObj, }: {
6
6
  phrase: string;
7
7
  database?: Database;
8
- export_columns?: ExportColumns[];
8
+ exportColumns?: ExportColumns[];
9
9
  displaySort?: DisplaySort;
10
+ displayLimit?: number;
11
+ displayOffset?: number;
12
+ displayFilter?: string;
13
+ exportEscape?: 1;
14
+ exportDecode?: 0 | 1;
10
15
  outputObj?: boolean;
11
- display_limit?: number;
12
16
  }): Promise<Record<string, string>[]>;
@@ -1,14 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getPhraseQuestions = getPhraseQuestions;
4
- async function getPhraseQuestions({ phrase, export_columns = ["Ph", "Nq", "Cp", "Co", "Nr", "Td", "In", "Kd"], database = "us", displaySort = "nq_desc", display_limit = 10, outputObj = true, }) {
4
+ async function getPhraseQuestions({ phrase, exportColumns = ["Ph", "Nq", "Cp", "Co", "Nr", "Td", "In", "Kd"], database = "us", displaySort = "nq_desc", displayLimit = 10, displayOffset, displayFilter, exportEscape, exportDecode, outputObj = true, }) {
5
5
  const params = {
6
6
  type: "phrase_questions",
7
7
  phrase,
8
8
  database,
9
9
  display_sort: displaySort,
10
- display_limit,
11
- export_columns: export_columns.join(","),
10
+ display_limit: displayLimit,
11
+ display_offset: displayOffset,
12
+ display_filter: displayFilter,
13
+ export_escape: exportEscape,
14
+ export_decode: exportDecode,
15
+ export_columns: exportColumns.join(","),
12
16
  };
13
17
  return this.get(this.ANALYTICS_URL, params, outputObj);
14
18
  }
@@ -2,11 +2,15 @@ import { SemrushAPIClient } from "../client";
2
2
  import { Database } from "../type/general/database";
3
3
  export type ExportColumns = "Ph" | "Nq" | "Cp" | "Co" | "Nr" | "Td" | "Rr" | "Fk" | "In" | "Kd";
4
4
  export type DisplaySort = "nq_asc" | "nq_desc" | "cp_asc" | "cp_desc" | "co_asc" | "co_desc" | "nr_asc" | "nr_desc" | "rr_asc" | "rr_desc" | "kd_asc" | "kd_desc";
5
- export declare function getRelatedKeywords(this: SemrushAPIClient, { phrase, export_columns, database, displaySort, display_limit, outputObj, }: {
5
+ export declare function getRelatedKeywords(this: SemrushAPIClient, { phrase, exportColumns, database, displaySort, displayLimit, displayOffset, displayFilter, exportEscape, exportDecode, outputObj, }: {
6
6
  phrase: string;
7
7
  database?: Database;
8
- export_columns?: ExportColumns[];
8
+ exportColumns?: ExportColumns[];
9
9
  displaySort?: DisplaySort;
10
+ displayLimit?: number;
11
+ displayOffset?: number;
12
+ displayFilter?: string;
13
+ exportEscape?: 1;
14
+ exportDecode?: 0 | 1;
10
15
  outputObj?: boolean;
11
- display_limit?: number;
12
16
  }): Promise<Record<string, string>[]>;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRelatedKeywords = getRelatedKeywords;
4
- async function getRelatedKeywords({ phrase, export_columns = [
4
+ async function getRelatedKeywords({ phrase, exportColumns = [
5
5
  "Ph",
6
6
  "Nq",
7
7
  "Cp",
@@ -12,14 +12,18 @@ async function getRelatedKeywords({ phrase, export_columns = [
12
12
  "Fk",
13
13
  "In",
14
14
  "Kd",
15
- ], database = "us", displaySort = "nq_desc", display_limit = 10, outputObj = true, }) {
15
+ ], database = "us", displaySort = "nq_desc", displayLimit = 10, displayOffset, displayFilter, exportEscape, exportDecode, outputObj = true, }) {
16
16
  const params = {
17
17
  type: "phrase_related",
18
18
  phrase,
19
19
  database,
20
20
  display_sort: displaySort,
21
- display_limit,
22
- export_columns: export_columns.join(","),
21
+ display_limit: displayLimit,
22
+ display_offset: displayOffset,
23
+ display_filter: displayFilter,
24
+ export_escape: exportEscape,
25
+ export_decode: exportDecode,
26
+ export_columns: exportColumns.join(","),
23
27
  };
24
28
  return this.get(this.ANALYTICS_URL, params, outputObj);
25
29
  }
@@ -3,3 +3,4 @@ export { getKeywordDifficulty } from "./getKeywordDifficulty";
3
3
  export { getRelatedKeywords } from "./getRelatedKeywords";
4
4
  export { getPhraseQuestions } from "./getPhraseQuestions";
5
5
  export { getBroadMatchKeywords } from "./getBroadMatchKeywords";
6
+ export { getKeywordOrganic } from "./getKeywordOrganic";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getBroadMatchKeywords = exports.getPhraseQuestions = exports.getRelatedKeywords = exports.getKeywordDifficulty = exports.getKeywordOverview = void 0;
3
+ exports.getKeywordOrganic = exports.getBroadMatchKeywords = exports.getPhraseQuestions = exports.getRelatedKeywords = exports.getKeywordDifficulty = exports.getKeywordOverview = void 0;
4
4
  var getKeywordOverview_1 = require("./getKeywordOverview");
5
5
  Object.defineProperty(exports, "getKeywordOverview", { enumerable: true, get: function () { return getKeywordOverview_1.getKeywordOverview; } });
6
6
  var getKeywordDifficulty_1 = require("./getKeywordDifficulty");
@@ -11,3 +11,5 @@ var getPhraseQuestions_1 = require("./getPhraseQuestions");
11
11
  Object.defineProperty(exports, "getPhraseQuestions", { enumerable: true, get: function () { return getPhraseQuestions_1.getPhraseQuestions; } });
12
12
  var getBroadMatchKeywords_1 = require("./getBroadMatchKeywords");
13
13
  Object.defineProperty(exports, "getBroadMatchKeywords", { enumerable: true, get: function () { return getBroadMatchKeywords_1.getBroadMatchKeywords; } });
14
+ var getKeywordOrganic_1 = require("./getKeywordOrganic");
15
+ Object.defineProperty(exports, "getKeywordOrganic", { enumerable: true, get: function () { return getKeywordOrganic_1.getKeywordOrganic; } });
@@ -1,11 +1,17 @@
1
1
  import { SemrushAPIClient } from "../client";
2
2
  import { Database } from "../type/general/database";
3
3
  type ExportColumns = "Db" | "Dt" | "Dn" | "Rk" | "Or" | "Ot" | "Oc" | "Ad" | "At" | "Ac" | "Sh" | "Sv" | "FKn" | "FPn" | "Sr" | "Srb" | "St" | "Stb" | "Sc" | "Srn" | "Srl";
4
- export declare function getRankDifference(this: SemrushAPIClient, { domain, export_columns, database, display_limit, outputObj, }: {
4
+ export type RankDifferenceDisplaySort = "rk_asc" | "rk_desc" | "or_asc" | "or_desc" | "ot_asc" | "ot_desc" | "oc_asc" | "oc_desc" | "ad_asc" | "ad_desc" | "at_asc" | "at_desc" | "ac_asc" | "ac_desc";
5
+ export declare function getRankDifference(this: SemrushAPIClient, { domain, exportColumns, database, displayLimit, displayOffset, displaySort, displayDate, exportEscape, exportDecode, outputObj, }: {
5
6
  domain: string;
6
- export_columns?: ExportColumns[];
7
+ exportColumns?: ExportColumns[];
7
8
  database?: Database;
8
- display_limit?: number;
9
+ displayLimit?: number;
10
+ displayOffset?: number;
11
+ displaySort?: RankDifferenceDisplaySort;
12
+ displayDate?: string;
13
+ exportEscape?: 1;
14
+ exportDecode?: 0 | 1;
9
15
  outputObj?: boolean;
10
16
  }): Promise<Record<string, string>[]>;
11
17
  export {};
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRankDifference = getRankDifference;
4
- async function getRankDifference({ domain, export_columns = [
4
+ const displayDateValidator_1 = require("../utils/displayDateValidator");
5
+ async function getRankDifference({ domain, exportColumns = [
5
6
  "Db",
6
7
  "Dn",
7
8
  "Rk",
@@ -12,13 +13,21 @@ async function getRankDifference({ domain, export_columns = [
12
13
  "At",
13
14
  "Ac",
14
15
  "Sh",
15
- ], database = "us", display_limit = 1000, outputObj = true, }) {
16
+ ], database = "us", displayLimit = 1000, displayOffset, displaySort, displayDate, exportEscape, exportDecode, outputObj = true, }) {
17
+ if (displayDate && !(0, displayDateValidator_1.displayDateValidator)(displayDate)) {
18
+ throw new Error("Invalid displayDate format. Format: YYYYMM15");
19
+ }
16
20
  const params = {
17
21
  type: "rank_difference",
18
- export_columns: export_columns.join(","),
22
+ export_columns: exportColumns.join(","),
19
23
  domain,
20
24
  database,
21
- display_limit,
25
+ display_limit: displayLimit,
26
+ display_offset: displayOffset,
27
+ display_sort: displaySort,
28
+ display_date: displayDate,
29
+ export_escape: exportEscape,
30
+ export_decode: exportDecode,
22
31
  };
23
32
  return this.get(this.BASE_URL, params, outputObj);
24
33
  }
@@ -1,10 +1,15 @@
1
1
  import { SemrushAPIClient } from "../client";
2
2
  import { Database } from "../type/general/database";
3
3
  type ExportColumns = "Dn" | "Rk" | "Or" | "Ot" | "Oc" | "Ad" | "At" | "Ac" | "Sr" | "St" | "Sc";
4
- export declare function getSemrushRank(this: SemrushAPIClient, { export_columns, database, display_limit, outputObj, }: {
5
- export_columns?: ExportColumns[];
4
+ export declare function getSemrushRank(this: SemrushAPIClient, { exportColumns, database, displayLimit, displayOffset, displayFilter, displayDate, exportEscape, exportDecode, outputObj, }: {
5
+ exportColumns?: ExportColumns[];
6
6
  database?: Database;
7
- display_limit?: number;
7
+ displayLimit?: number;
8
+ displayOffset?: number;
9
+ displayFilter?: string;
10
+ displayDate?: string;
11
+ exportEscape?: 1;
12
+ exportDecode?: 0 | 1;
8
13
  outputObj?: boolean;
9
14
  }): Promise<Record<string, string>[]>;
10
15
  export {};
@@ -1,12 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getSemrushRank = getSemrushRank;
4
- async function getSemrushRank({ export_columns = ["Dn", "Rk", "Or", "Ot", "Oc", "Ad", "At", "Ac"], database = "us", display_limit = 10, outputObj = true, }) {
4
+ const displayDateValidator_1 = require("../utils/displayDateValidator");
5
+ async function getSemrushRank({ exportColumns = ["Dn", "Rk", "Or", "Ot", "Oc", "Ad", "At", "Ac"], database = "us", displayLimit = 10, displayOffset, displayFilter, displayDate, exportEscape, exportDecode, outputObj = true, }) {
6
+ if (displayDate && !(0, displayDateValidator_1.displayDateValidator)(displayDate)) {
7
+ throw new Error("Invalid displayDate format. Format: YYYYMM15");
8
+ }
5
9
  const params = {
6
10
  type: "rank",
7
- export_columns: export_columns.join(","),
11
+ export_columns: exportColumns.join(","),
8
12
  database,
9
- display_limit,
13
+ display_limit: displayLimit,
14
+ display_offset: displayOffset,
15
+ display_filter: displayFilter,
16
+ display_date: displayDate,
17
+ export_escape: exportEscape,
18
+ export_decode: exportDecode,
10
19
  };
11
20
  return this.get(this.BASE_URL, params, outputObj);
12
21
  }
@@ -1,9 +1,12 @@
1
1
  import { SemrushAPIClient } from "../client";
2
2
  import { Country } from "../type/general/country";
3
3
  export type ExportColumns = "target" | "rank" | "visits" | "categories" | "desktop_visits" | "mobile_visits" | "users" | "desktop_users" | "mobile_users" | "direct" | "referral" | "social" | "search" | "paid" | "search_organic" | "search_paid" | "social_organic" | "social_paid" | "mail" | "display_ad" | "unknown_channel" | "time_on_site" | "desktop_time_on_site" | "mobile_time_on_site" | "pages_per_visit" | "desktop_pages_per_visit" | "mobile_pages_per_visit" | "bounce_rate" | "desktop_bounce_rate" | "mobile_bounce_rate" | "desktop_share" | "mobile_share" | "accuracy" | "display_date" | "country" | "device_type" | "desktop_hits" | "mobile_hits";
4
- export declare function getTrafficSummary(this: SemrushAPIClient, { domains, export_columns, country, outputObj, }: {
4
+ export declare function getTrafficSummary(this: SemrushAPIClient, { domains, exportColumns, country, displayDate, displayLimit, displayOffset, outputObj, }: {
5
5
  domains: string[];
6
- export_columns?: ExportColumns[];
6
+ exportColumns?: ExportColumns[];
7
7
  country?: Country;
8
+ displayDate?: string;
9
+ displayLimit?: number;
10
+ displayOffset?: number;
8
11
  outputObj?: boolean;
9
12
  }): Promise<Record<string, string>[]>;
@@ -1,12 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTrafficSummary = getTrafficSummary;
4
- function getTrafficSummary({ domains, export_columns = ["target", "visits", "users"], country, outputObj = true, // Default to true for output object
5
- }) {
4
+ const displayDateValidator_1 = require("../utils/displayDateValidator");
5
+ function getTrafficSummary({ domains, exportColumns = ["target", "visits", "users"], country, displayDate, displayLimit, displayOffset, outputObj = true, }) {
6
+ if (displayDate && !(0, displayDateValidator_1.displayDateValidator)(displayDate)) {
7
+ throw new Error("Invalid displayDate format. Format: YYYYMM15");
8
+ }
6
9
  const params = {
7
10
  targets: domains.join(","),
8
- export_columns: export_columns.join(","),
9
- country: country,
11
+ export_columns: exportColumns.join(","),
12
+ country,
13
+ display_date: displayDate,
14
+ display_limit: displayLimit,
15
+ display_offset: displayOffset,
10
16
  };
11
17
  return this.get(this.ANALYTICS_URL + "ta/api/v3/summary", params, outputObj);
12
18
  }
@@ -2,11 +2,16 @@ import { SemrushAPIClient } from "../client";
2
2
  import { Database } from "../type/general/database";
3
3
  export type ExportColumns = "Ph" | "Po" | "Pp" | "Nq" | "Cp" | "Co" | "Kd" | "Tr" | "Tg" | "Tc" | "Nr" | "Td" | "Fp" | "Fk" | "Ts" | "In" | "Pt";
4
4
  export type DisplaySort = "po_asc" | "po_desc" | "tg_asc" | "tg_desc" | "tr_asc" | "tr_desc" | "tc_asc" | "tc_desc" | "nq_asc" | "nq_desc";
5
- export declare function getUrlOrganicSearchKeywords(this: SemrushAPIClient, { url, export_columns, database, outputObj, display_limit, display_sort, }: {
5
+ export declare function getUrlOrganicSearchKeywords(this: SemrushAPIClient, { url, exportColumns, database, displayLimit, displayOffset, displaySort, displayFilter, displayDate, exportEscape, exportDecode, outputObj, }: {
6
6
  url: string;
7
- export_columns?: ExportColumns[];
7
+ exportColumns?: ExportColumns[];
8
8
  database?: Database;
9
+ displayLimit?: number;
10
+ displayOffset?: number;
11
+ displaySort?: DisplaySort;
12
+ displayFilter?: string;
13
+ displayDate?: string;
14
+ exportEscape?: 1;
15
+ exportDecode?: 0 | 1;
9
16
  outputObj?: boolean;
10
- display_limit?: number;
11
- display_sort?: DisplaySort;
12
17
  }): Promise<Record<string, string>[]>;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getUrlOrganicSearchKeywords = getUrlOrganicSearchKeywords;
4
- function getUrlOrganicSearchKeywords({ url, export_columns = [
4
+ const displayDateValidator_1 = require("../utils/displayDateValidator");
5
+ function getUrlOrganicSearchKeywords({ url, exportColumns = [
5
6
  "Ph",
6
7
  "Po",
7
8
  "Pp",
@@ -19,14 +20,22 @@ function getUrlOrganicSearchKeywords({ url, export_columns = [
19
20
  "Ts",
20
21
  "In",
21
22
  "Pt",
22
- ], database = "us", outputObj = true, display_limit = 10, display_sort, }) {
23
+ ], database = "us", displayLimit = 10, displayOffset, displaySort, displayFilter, displayDate, exportEscape, exportDecode, outputObj = true, }) {
24
+ if (displayDate && !(0, displayDateValidator_1.displayDateValidator)(displayDate)) {
25
+ throw new Error("Invalid displayDate format. Format: YYYYMM15");
26
+ }
23
27
  const params = {
24
28
  url,
25
29
  type: "url_organic",
26
- export_columns: export_columns.join(","),
30
+ export_columns: exportColumns.join(","),
27
31
  database,
28
- display_limit,
29
- display_sort,
32
+ display_limit: displayLimit,
33
+ display_offset: displayOffset,
34
+ display_sort: displaySort,
35
+ display_filter: displayFilter,
36
+ display_date: displayDate,
37
+ export_escape: exportEscape,
38
+ export_decode: exportDecode,
30
39
  };
31
40
  return this.get(this.BASE_URL, params, outputObj);
32
41
  }
@@ -2,12 +2,13 @@ import { SemrushAPIClient } from "../client";
2
2
  import { Database } from "../type/general/database";
3
3
  export type ExportColumns = "Dn" | "Or" | "Xn" | "Ot" | "Oc" | "Ad" | "At" | "Ac" | "FKn" | "FPn" | "Ipu" | "Ip0" | "Ip1" | "Ip2" | "Ip3" | "Itu" | "It0" | "It1" | "It2" | "It3" | "Icu" | "Ic0" | "Ic1" | "Ic2" | "Ic3" | "Sr" | "Srb" | "St" | "Stb" | "Sc" | "Srn" | "Srl" | "Rk";
4
4
  export type DisplaySort = "po_asc" | "po_desc" | "tg_asc" | "tg_desc" | "tr_asc" | "tr_desc" | "tc_asc" | "tc_desc" | "nq_asc" | "nq_desc" | "rk_asc" | "rk_desc" | "or_asc" | "or_desc" | "ot_asc" | "ot_desc" | "oc_asc" | "oc_desc" | "ad_asc" | "ad_desc" | "at_asc" | "at_desc" | "ac_asc" | "ac_desc";
5
- export declare function getUrlOverview(this: SemrushAPIClient, { url, export_columns, // Default export columns
6
- database, outputObj, // Default to true for output object
7
- display_sort, }: {
5
+ export declare function getUrlOverview(this: SemrushAPIClient, { url, exportColumns, database, displaySort, displayDate, exportEscape, exportDecode, outputObj, }: {
8
6
  url: string;
9
- export_columns?: ExportColumns[];
7
+ exportColumns?: ExportColumns[];
10
8
  database?: Database;
9
+ displaySort?: DisplaySort;
10
+ displayDate?: string;
11
+ exportEscape?: 1;
12
+ exportDecode?: 0 | 1;
11
13
  outputObj?: boolean;
12
- display_sort?: DisplaySort;
13
14
  }): Promise<Record<string, string>[]>;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getUrlOverview = getUrlOverview;
4
- function getUrlOverview({ url, export_columns = [
4
+ const displayDateValidator_1 = require("../utils/displayDateValidator");
5
+ function getUrlOverview({ url, exportColumns = [
5
6
  "Dn",
6
7
  "Or",
7
8
  "Xn",
@@ -35,15 +36,19 @@ function getUrlOverview({ url, export_columns = [
35
36
  "Srn",
36
37
  "Srl",
37
38
  "Rk",
38
- ], // Default export columns
39
- database = "us", outputObj = true, // Default to true for output object
40
- display_sort, }) {
39
+ ], database = "us", displaySort, displayDate, exportEscape, exportDecode, outputObj = true, }) {
40
+ if (displayDate && !(0, displayDateValidator_1.displayDateValidator)(displayDate)) {
41
+ throw new Error("Invalid displayDate format. Format: YYYYMM15");
42
+ }
41
43
  const params = {
42
44
  url,
43
45
  type: "url_rank",
44
- export_columns: export_columns.join(","),
46
+ export_columns: exportColumns.join(","),
45
47
  database,
46
- display_sort,
48
+ display_sort: displaySort,
49
+ display_date: displayDate,
50
+ export_escape: exportEscape,
51
+ export_decode: exportDecode,
47
52
  };
48
53
  return this.get(this.BASE_URL, params, outputObj);
49
54
  }
@@ -2,11 +2,16 @@ import { SemrushAPIClient } from "../client";
2
2
  import { Database } from "../type/general/database";
3
3
  export type ExportColumns = "Ph" | "Po" | "Nq" | "Cp" | "Co" | "Tg" | "Tr" | "Tc" | "Nr" | "Td" | "Tt" | "Ds" | "Ts";
4
4
  export type DisplaySort = "po_asc" | "po_desc" | "tg_asc" | "tg_desc" | "tr_asc" | "tr_desc" | "tc_asc" | "tc_desc" | "nq_asc" | "nq_desc";
5
- export declare function getUrlPaidSearchKeywords(this: SemrushAPIClient, { url, export_columns, database, display_sort, outputObj, display_limit, }: {
5
+ export declare function getUrlPaidSearchKeywords(this: SemrushAPIClient, { url, exportColumns, database, displayLimit, displayOffset, displaySort, displayFilter, displayDate, exportEscape, exportDecode, outputObj, }: {
6
6
  url: string;
7
- export_columns?: ExportColumns[];
7
+ exportColumns?: ExportColumns[];
8
8
  database?: Database;
9
- display_sort?: DisplaySort;
9
+ displayLimit?: number;
10
+ displayOffset?: number;
11
+ displaySort?: DisplaySort;
12
+ displayFilter?: string;
13
+ displayDate?: string;
14
+ exportEscape?: 1;
15
+ exportDecode?: 0 | 1;
10
16
  outputObj?: boolean;
11
- display_limit?: number;
12
17
  }): Promise<Record<string, string>[]>;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getUrlPaidSearchKeywords = getUrlPaidSearchKeywords;
4
- function getUrlPaidSearchKeywords({ url, export_columns = [
4
+ const displayDateValidator_1 = require("../utils/displayDateValidator");
5
+ function getUrlPaidSearchKeywords({ url, exportColumns = [
5
6
  "Ph",
6
7
  "Po",
7
8
  "Nq",
@@ -15,14 +16,22 @@ function getUrlPaidSearchKeywords({ url, export_columns = [
15
16
  "Tt",
16
17
  "Ds",
17
18
  "Ts",
18
- ], database = "us", display_sort, outputObj = true, display_limit = 10, }) {
19
+ ], database = "us", displayLimit = 10, displayOffset, displaySort, displayFilter, displayDate, exportEscape, exportDecode, outputObj = true, }) {
20
+ if (displayDate && !(0, displayDateValidator_1.displayDateValidator)(displayDate)) {
21
+ throw new Error("Invalid displayDate format. Format: YYYYMM15");
22
+ }
19
23
  const params = {
20
24
  url,
21
25
  type: "url_adwords",
22
- export_columns: export_columns.join(","),
26
+ export_columns: exportColumns.join(","),
23
27
  database,
24
- display_sort,
25
- display_limit,
28
+ display_limit: displayLimit,
29
+ display_offset: displayOffset,
30
+ display_sort: displaySort,
31
+ display_filter: displayFilter,
32
+ display_date: displayDate,
33
+ export_escape: exportEscape,
34
+ export_decode: exportDecode,
26
35
  };
27
36
  return this.get(this.BASE_URL, params, outputObj);
28
37
  }
@@ -0,0 +1 @@
1
+ export declare function displayDateValidator(displayDate?: string): boolean;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.displayDateValidator = displayDateValidator;
4
+ function displayDateValidator(displayDate) {
5
+ if (!displayDate)
6
+ return true;
7
+ const regex = /^\d{4}(0[1-9]|1[0-2])15$/;
8
+ return regex.test(displayDate);
9
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "semrush-api-client",
3
- "version": "0.1.24",
3
+ "version": "1.0.2",
4
4
  "description": "",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/index.js",
@@ -33,6 +33,7 @@
33
33
  "dist"
34
34
  ],
35
35
  "devDependencies": {
36
- "@types/node": "^22.15.30"
36
+ "@types/node": "^22.15.30",
37
+ "typescript": "^5.9.3"
37
38
  }
38
39
  }