Skip to main content

data_for_seo/api/ai_optimization/
mod.rs

1//! AI Optimization API domain.
2//!
3//! See <https://docs.dataforseo.com/v3/ai_optimization/overview/>.
4
5mod ai_keyword_data;
6mod llm_mentions;
7mod llm_responses;
8mod llm_scraper;
9mod provider;
10
11pub use ai_keyword_data::*;
12pub use llm_mentions::*;
13pub use llm_responses::*;
14pub use llm_scraper::*;
15pub use provider::*;
16
17use crate::DataForSeoClient;
18
19/// Entry point for the AI Optimization API.
20pub struct AiOptimizationApi<'a> {
21    client: &'a DataForSeoClient,
22}
23
24impl DataForSeoClient {
25    /// Returns the AI Optimization API builder.
26    pub fn ai_optimization(&self) -> AiOptimizationApi<'_> {
27        AiOptimizationApi { client: self }
28    }
29}
30
31impl AiOptimizationApi<'_> {
32    /// AI Keyword Data sub-API (AI search volume for keywords).
33    pub fn ai_keyword_data(&self) -> AiOptimizationApiKeywordData<'_> {
34        AiOptimizationApiKeywordData {
35            client: self.client,
36        }
37    }
38
39    /// LLM Mentions sub-API (brand/domain/keyword mentions in LLMs).
40    pub fn llm_mentions(&self) -> AiOptimizationApiLlmMentions<'_> {
41        AiOptimizationApiLlmMentions {
42            client: self.client,
43        }
44    }
45
46    /// ChatGPT provider (LLM Responses + LLM Scraper).
47    pub fn chat_gpt(&self) -> AiOptimizationApiChatGpt<'_> {
48        AiOptimizationApiChatGpt {
49            client: self.client,
50        }
51    }
52
53    /// Claude provider (LLM Responses).
54    pub fn claude(&self) -> AiOptimizationApiClaude<'_> {
55        AiOptimizationApiClaude {
56            client: self.client,
57        }
58    }
59
60    /// Gemini provider (LLM Responses + LLM Scraper).
61    pub fn gemini(&self) -> AiOptimizationApiGemini<'_> {
62        AiOptimizationApiGemini {
63            client: self.client,
64        }
65    }
66
67    /// Perplexity provider (LLM Responses, Live-only).
68    pub fn perplexity(&self) -> AiOptimizationApiPerplexity<'_> {
69        AiOptimizationApiPerplexity {
70            client: self.client,
71        }
72    }
73}