@superagnt/seo-data 2.0.6 → 2.0.7

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.
package/README.md CHANGED
@@ -14,7 +14,7 @@ This package is the official **OpenClaw** plugin for **SEO** social and public d
14
14
 
15
15
  A fixed, baked-in toolset for the **SEO** endpoints listed below — nothing else. It authenticates with your `SUPERAGNT_API_KEY` and calls the superagnt REST API directly. It does not add tools for other platforms and does not change after install; new capabilities only arrive through an explicit plugin update.
16
16
 
17
- Prefer MCP? The `@superagnt/superagnt` plugin connects the workspace MCP server instead, whose tool surface is managed by the user in the dashboard.
17
+ Prefer MCP? The `@superagnt/superagnt` plugin connects the workspace MCP server instead, whose tool surface is managed by the user in the superagnt app.
18
18
 
19
19
  ## Overview
20
20
 
@@ -42,7 +42,7 @@ SEO and search intelligence through the superagnt unified API.
42
42
 
43
43
  ## Authentication
44
44
 
45
- Use a single **superagnt API key** (Bearer token). Set `SUPERAGNT_API_KEY` in your environment, or complete browser login when the gateway prompts you. Create and manage keys in the [superagnt dashboard](https://app.superagnt.com/dashboard).
45
+ Use a single **superagnt API key** (Bearer token). Set `SUPERAGNT_API_KEY` in your environment, or complete browser login when the gateway prompts you. Create and manage keys in the [superagnt app](https://app.superagnt.com/dashboard).
46
46
 
47
47
  ## API coverage
48
48
 
@@ -50,14 +50,14 @@ Use a single **superagnt API key** (Bearer token). Set `SUPERAGNT_API_KEY` in yo
50
50
  | --- | --- |
51
51
  | **Platform** | `seo` |
52
52
  | **REST base** | `https://api.superagnt.com/v1/data/seo` |
53
- | **OpenAPI operations** | 16 |
54
- | **OpenClaw tools** | 16 |
53
+ | **OpenAPI operations** | 22 |
54
+ | **OpenClaw tools** | 22 |
55
55
 
56
56
  ## Documentation
57
57
 
58
58
  - [Documentation](https://superagnt.com/docs) — getting started and concepts
59
59
  - [API reference (SEO)](https://superagnt.com/docs/apis/seo) — endpoints and schemas
60
- - [Dashboard](https://app.superagnt.com/dashboard) — API keys and usage
60
+ - [superagnt app](https://app.superagnt.com/dashboard) — API keys and usage
61
61
 
62
62
  ## Related
63
63
 
package/index.js CHANGED
@@ -118,6 +118,10 @@ export default function register(api) {
118
118
  "depth": {
119
119
  "type": "integer",
120
120
  "description": "Number of results to return, in steps of 10. Default 10 (cheapest). Each additional 10 results bills as one more results page."
121
+ },
122
+ "load_async_ai_overview": {
123
+ "type": "boolean",
124
+ "description": "Set to true to load AI Overviews that Google renders asynchronously, so the `ai_overview` item comes back with its text and cited sources (`markdown`, `items`, `references`). Left off, an async overview still appears, flagged `asynchronous_ai_overview: true`, but with those fields null: you can tell an overview exists, not what it cites. In the default markdown view, the overview row lists its cited sources as `cited_domains`. Adds up to about 0.36 cents per call (roughly double the default-depth price), charged only when an overview actually had to be loaded; the response's `meta.costCents` shows what the call billed. Default false."
121
125
  }
122
126
  },
123
127
  "required": [
@@ -599,6 +603,222 @@ export default function register(api) {
599
603
  },
600
604
  })
601
605
 
606
+ api.registerTool({
607
+ name: 'superagnt_seo_chatgpt_app_answer',
608
+ description: "ChatGPT app answer",
609
+ parameters: {
610
+ "type": "object",
611
+ "properties": {
612
+ "keyword": {
613
+ "type": "string",
614
+ "description": "The question to ask ChatGPT, as a user would type it."
615
+ },
616
+ "location_code": {
617
+ "type": "integer",
618
+ "description": "Geo target as a location code. Common values: 2840 United States (default), 2826 United Kingdom, 2124 Canada, 2036 Australia, 2276 Germany."
619
+ },
620
+ "language_code": {
621
+ "type": "string",
622
+ "description": "Two-letter language code, e.g. 'en' (default)."
623
+ },
624
+ "force_web_search": {
625
+ "type": "boolean",
626
+ "description": "Push ChatGPT to search the web and cite current sources. Citations are still not guaranteed."
627
+ }
628
+ },
629
+ "required": [
630
+ "keyword"
631
+ ]
632
+ },
633
+ execute: async (_toolCallId, input) => {
634
+ const key = ensureApiKey()
635
+ const params = parseToolInput(input)
636
+ return callSuperagnt(key, 'POST', '/chatgpt-app-answer', undefined, params)
637
+ },
638
+ })
639
+
640
+ api.registerTool({
641
+ name: 'superagnt_seo_gemini_app_answer',
642
+ description: "Gemini app answer",
643
+ parameters: {
644
+ "type": "object",
645
+ "properties": {
646
+ "keyword": {
647
+ "type": "string",
648
+ "description": "The question to ask Gemini, as a user would type it."
649
+ },
650
+ "location_code": {
651
+ "type": "integer",
652
+ "description": "Geo target as a location code. Common values: 2840 United States (default), 2826 United Kingdom, 2124 Canada, 2036 Australia, 2276 Germany."
653
+ },
654
+ "language_code": {
655
+ "type": "string",
656
+ "description": "Two-letter language code, e.g. 'en' (default)."
657
+ }
658
+ },
659
+ "required": [
660
+ "keyword"
661
+ ]
662
+ },
663
+ execute: async (_toolCallId, input) => {
664
+ const key = ensureApiKey()
665
+ const params = parseToolInput(input)
666
+ return callSuperagnt(key, 'POST', '/gemini-app-answer', undefined, params)
667
+ },
668
+ })
669
+
670
+ api.registerTool({
671
+ name: 'superagnt_seo_chatgpt_api_answer',
672
+ description: "OpenAI API answer with citations",
673
+ parameters: {
674
+ "type": "object",
675
+ "properties": {
676
+ "user_prompt": {
677
+ "type": "string",
678
+ "description": "The question to ask the model."
679
+ },
680
+ "model_name": {
681
+ "type": "string",
682
+ "description": "The model to ask: gpt-4o-mini, gpt-4o, gpt-5-mini (default gpt-4o-mini)."
683
+ },
684
+ "max_output_tokens": {
685
+ "type": "integer",
686
+ "description": "Cap on the answer's length in tokens, 16-2048 (default 1024). Web search can push a model slightly past it. gpt-5-mini needs at least 1024."
687
+ },
688
+ "web_search": {
689
+ "type": "boolean",
690
+ "description": "Let the model search the web and cite sources (default true). Citations are still not guaranteed."
691
+ },
692
+ "force_web_search": {
693
+ "type": "boolean",
694
+ "description": "Push the model to search the web before answering. Needs `web_search`; citations are still not guaranteed."
695
+ },
696
+ "web_search_country_iso_code": {
697
+ "type": "string",
698
+ "description": "Two-letter country code the web search runs from, e.g. 'US'."
699
+ }
700
+ },
701
+ "required": [
702
+ "user_prompt"
703
+ ]
704
+ },
705
+ execute: async (_toolCallId, input) => {
706
+ const key = ensureApiKey()
707
+ const params = parseToolInput(input)
708
+ return callSuperagnt(key, 'POST', '/chatgpt-api-answer', undefined, params)
709
+ },
710
+ })
711
+
712
+ api.registerTool({
713
+ name: 'superagnt_seo_claude_api_answer',
714
+ description: "Claude API answer with citations",
715
+ parameters: {
716
+ "type": "object",
717
+ "properties": {
718
+ "user_prompt": {
719
+ "type": "string",
720
+ "description": "The question to ask the model."
721
+ },
722
+ "model_name": {
723
+ "type": "string",
724
+ "description": "The model to ask: claude-haiku-4-5, claude-sonnet-4-5 (default claude-haiku-4-5)."
725
+ },
726
+ "max_output_tokens": {
727
+ "type": "integer",
728
+ "description": "Cap on the answer's length in tokens, 16-2048 (default 1024). Web search can push a model slightly past it."
729
+ },
730
+ "web_search": {
731
+ "type": "boolean",
732
+ "description": "Let the model search the web and cite sources (default true). Citations are still not guaranteed."
733
+ },
734
+ "force_web_search": {
735
+ "type": "boolean",
736
+ "description": "Push the model to search the web before answering. Needs `web_search`; citations are still not guaranteed."
737
+ },
738
+ "web_search_country_iso_code": {
739
+ "type": "string",
740
+ "description": "Two-letter country code the web search runs from, e.g. 'US'."
741
+ }
742
+ },
743
+ "required": [
744
+ "user_prompt"
745
+ ]
746
+ },
747
+ execute: async (_toolCallId, input) => {
748
+ const key = ensureApiKey()
749
+ const params = parseToolInput(input)
750
+ return callSuperagnt(key, 'POST', '/claude-api-answer', undefined, params)
751
+ },
752
+ })
753
+
754
+ api.registerTool({
755
+ name: 'superagnt_seo_gemini_api_answer',
756
+ description: "Gemini API answer with citations",
757
+ parameters: {
758
+ "type": "object",
759
+ "properties": {
760
+ "user_prompt": {
761
+ "type": "string",
762
+ "description": "The question to ask the model."
763
+ },
764
+ "model_name": {
765
+ "type": "string",
766
+ "description": "The model to ask: gemini-2.5-flash-lite, gemini-2.5-flash, gemini-2.0-flash (default gemini-2.5-flash-lite)."
767
+ },
768
+ "max_output_tokens": {
769
+ "type": "integer",
770
+ "description": "Cap on the answer's length in tokens, 16-2048 (default 1024). Web search can push a model slightly past it."
771
+ },
772
+ "web_search": {
773
+ "type": "boolean",
774
+ "description": "Let the model search the web and cite sources (default true). Citations are still not guaranteed."
775
+ }
776
+ },
777
+ "required": [
778
+ "user_prompt"
779
+ ]
780
+ },
781
+ execute: async (_toolCallId, input) => {
782
+ const key = ensureApiKey()
783
+ const params = parseToolInput(input)
784
+ return callSuperagnt(key, 'POST', '/gemini-api-answer', undefined, params)
785
+ },
786
+ })
787
+
788
+ api.registerTool({
789
+ name: 'superagnt_seo_perplexity_api_answer',
790
+ description: "Perplexity API answer with citations",
791
+ parameters: {
792
+ "type": "object",
793
+ "properties": {
794
+ "user_prompt": {
795
+ "type": "string",
796
+ "description": "The question to ask the model."
797
+ },
798
+ "model_name": {
799
+ "type": "string",
800
+ "description": "The model to ask: sonar, sonar-pro (default sonar)."
801
+ },
802
+ "max_output_tokens": {
803
+ "type": "integer",
804
+ "description": "Cap on the answer's length in tokens, 16-2048 (default 1024). Web search can push a model slightly past it."
805
+ },
806
+ "web_search_country_iso_code": {
807
+ "type": "string",
808
+ "description": "Two-letter country code the web search runs from, e.g. 'US'. Sonar models always search the web."
809
+ }
810
+ },
811
+ "required": [
812
+ "user_prompt"
813
+ ]
814
+ },
815
+ execute: async (_toolCallId, input) => {
816
+ const key = ensureApiKey()
817
+ const params = parseToolInput(input)
818
+ return callSuperagnt(key, 'POST', '/perplexity-api-answer', undefined, params)
819
+ },
820
+ })
821
+
602
822
  api.registerTool({
603
823
  name: 'superagnt_seo_tech_stack',
604
824
  description: "Technologies a website runs",
@@ -2,7 +2,7 @@
2
2
  "id": "seo-data",
3
3
  "name": "SEO Data",
4
4
  "description": "SEO and search intelligence through the superagnt unified API.",
5
- "version": "2.0.6",
5
+ "version": "2.0.7",
6
6
  "contracts": {
7
7
  "tools": [
8
8
  "superagnt_seo_google_search",
@@ -19,6 +19,12 @@
19
19
  "superagnt_seo_backlink_gap",
20
20
  "superagnt_seo_page_audit",
21
21
  "superagnt_seo_ai_visibility",
22
+ "superagnt_seo_chatgpt_app_answer",
23
+ "superagnt_seo_gemini_app_answer",
24
+ "superagnt_seo_chatgpt_api_answer",
25
+ "superagnt_seo_claude_api_answer",
26
+ "superagnt_seo_gemini_api_answer",
27
+ "superagnt_seo_perplexity_api_answer",
22
28
  "superagnt_seo_tech_stack",
23
29
  "superagnt_seo_tech_search"
24
30
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superagnt/seo-data",
3
- "version": "2.0.6",
3
+ "version": "2.0.7",
4
4
  "type": "module",
5
5
  "description": "SEO and search intelligence through the superagnt unified API.",
6
6
  "main": "index.js",