webscout 8.3.2__py3-none-any.whl → 8.3.4__py3-none-any.whl

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.

Potentially problematic release.


This version of webscout might be problematic. Click here for more details.

Files changed (117) hide show
  1. webscout/AIutel.py +367 -41
  2. webscout/Bard.py +2 -22
  3. webscout/Bing_search.py +1 -2
  4. webscout/Provider/AISEARCH/__init__.py +1 -0
  5. webscout/Provider/AISEARCH/scira_search.py +24 -11
  6. webscout/Provider/AISEARCH/stellar_search.py +132 -0
  7. webscout/Provider/Deepinfra.py +75 -57
  8. webscout/Provider/ExaChat.py +93 -63
  9. webscout/Provider/Flowith.py +1 -1
  10. webscout/Provider/FreeGemini.py +2 -2
  11. webscout/Provider/Gemini.py +3 -10
  12. webscout/Provider/GeminiProxy.py +31 -5
  13. webscout/Provider/HeckAI.py +85 -80
  14. webscout/Provider/Jadve.py +56 -50
  15. webscout/Provider/LambdaChat.py +39 -31
  16. webscout/Provider/MiniMax.py +207 -0
  17. webscout/Provider/Nemotron.py +41 -13
  18. webscout/Provider/Netwrck.py +39 -59
  19. webscout/Provider/OLLAMA.py +8 -9
  20. webscout/Provider/OPENAI/BLACKBOXAI.py +0 -1
  21. webscout/Provider/OPENAI/MiniMax.py +298 -0
  22. webscout/Provider/OPENAI/README.md +31 -30
  23. webscout/Provider/OPENAI/TogetherAI.py +4 -17
  24. webscout/Provider/OPENAI/__init__.py +4 -2
  25. webscout/Provider/OPENAI/autoproxy.py +753 -18
  26. webscout/Provider/OPENAI/base.py +7 -76
  27. webscout/Provider/OPENAI/copilot.py +73 -26
  28. webscout/Provider/OPENAI/deepinfra.py +96 -132
  29. webscout/Provider/OPENAI/exachat.py +9 -5
  30. webscout/Provider/OPENAI/flowith.py +179 -166
  31. webscout/Provider/OPENAI/friendli.py +233 -0
  32. webscout/Provider/OPENAI/monochat.py +329 -0
  33. webscout/Provider/OPENAI/netwrck.py +4 -7
  34. webscout/Provider/OPENAI/pydantic_imports.py +1 -172
  35. webscout/Provider/OPENAI/qodo.py +630 -0
  36. webscout/Provider/OPENAI/scirachat.py +82 -49
  37. webscout/Provider/OPENAI/textpollinations.py +13 -12
  38. webscout/Provider/OPENAI/toolbaz.py +1 -0
  39. webscout/Provider/OPENAI/typegpt.py +4 -4
  40. webscout/Provider/OPENAI/utils.py +19 -42
  41. webscout/Provider/OPENAI/x0gpt.py +14 -2
  42. webscout/Provider/OpenGPT.py +54 -32
  43. webscout/Provider/PI.py +58 -84
  44. webscout/Provider/Qodo.py +454 -0
  45. webscout/Provider/StandardInput.py +32 -13
  46. webscout/Provider/TTI/README.md +9 -9
  47. webscout/Provider/TTI/__init__.py +2 -1
  48. webscout/Provider/TTI/aiarta.py +92 -78
  49. webscout/Provider/TTI/infip.py +212 -0
  50. webscout/Provider/TTI/monochat.py +220 -0
  51. webscout/Provider/TeachAnything.py +11 -3
  52. webscout/Provider/TextPollinationsAI.py +91 -82
  53. webscout/Provider/TogetherAI.py +32 -48
  54. webscout/Provider/Venice.py +37 -46
  55. webscout/Provider/VercelAI.py +27 -24
  56. webscout/Provider/WiseCat.py +35 -35
  57. webscout/Provider/WrDoChat.py +22 -26
  58. webscout/Provider/WritingMate.py +26 -22
  59. webscout/Provider/__init__.py +6 -6
  60. webscout/Provider/copilot.py +58 -61
  61. webscout/Provider/freeaichat.py +64 -55
  62. webscout/Provider/granite.py +48 -57
  63. webscout/Provider/koala.py +51 -39
  64. webscout/Provider/learnfastai.py +49 -64
  65. webscout/Provider/llmchat.py +79 -93
  66. webscout/Provider/llmchatco.py +63 -78
  67. webscout/Provider/monochat.py +275 -0
  68. webscout/Provider/multichat.py +51 -40
  69. webscout/Provider/oivscode.py +1 -1
  70. webscout/Provider/scira_chat.py +257 -104
  71. webscout/Provider/scnet.py +13 -13
  72. webscout/Provider/searchchat.py +13 -13
  73. webscout/Provider/sonus.py +12 -11
  74. webscout/Provider/toolbaz.py +25 -8
  75. webscout/Provider/turboseek.py +41 -42
  76. webscout/Provider/typefully.py +27 -12
  77. webscout/Provider/typegpt.py +43 -48
  78. webscout/Provider/uncovr.py +55 -90
  79. webscout/Provider/x0gpt.py +325 -299
  80. webscout/Provider/yep.py +79 -96
  81. webscout/__init__.py +7 -2
  82. webscout/auth/__init__.py +12 -1
  83. webscout/auth/providers.py +27 -5
  84. webscout/auth/routes.py +146 -105
  85. webscout/auth/server.py +367 -312
  86. webscout/client.py +121 -116
  87. webscout/litagent/Readme.md +68 -55
  88. webscout/litagent/agent.py +99 -9
  89. webscout/version.py +1 -1
  90. {webscout-8.3.2.dist-info → webscout-8.3.4.dist-info}/METADATA +102 -91
  91. {webscout-8.3.2.dist-info → webscout-8.3.4.dist-info}/RECORD +95 -107
  92. webscout/Provider/AI21.py +0 -177
  93. webscout/Provider/HuggingFaceChat.py +0 -469
  94. webscout/Provider/OPENAI/freeaichat.py +0 -363
  95. webscout/Provider/TTI/fastflux.py +0 -233
  96. webscout/Provider/Writecream.py +0 -246
  97. webscout/auth/static/favicon.svg +0 -11
  98. webscout/auth/swagger_ui.py +0 -203
  99. webscout/auth/templates/components/authentication.html +0 -237
  100. webscout/auth/templates/components/base.html +0 -103
  101. webscout/auth/templates/components/endpoints.html +0 -750
  102. webscout/auth/templates/components/examples.html +0 -491
  103. webscout/auth/templates/components/footer.html +0 -75
  104. webscout/auth/templates/components/header.html +0 -27
  105. webscout/auth/templates/components/models.html +0 -286
  106. webscout/auth/templates/components/navigation.html +0 -70
  107. webscout/auth/templates/static/api.js +0 -455
  108. webscout/auth/templates/static/icons.js +0 -168
  109. webscout/auth/templates/static/main.js +0 -784
  110. webscout/auth/templates/static/particles.js +0 -201
  111. webscout/auth/templates/static/styles.css +0 -3353
  112. webscout/auth/templates/static/ui.js +0 -374
  113. webscout/auth/templates/swagger_ui.html +0 -170
  114. {webscout-8.3.2.dist-info → webscout-8.3.4.dist-info}/WHEEL +0 -0
  115. {webscout-8.3.2.dist-info → webscout-8.3.4.dist-info}/entry_points.txt +0 -0
  116. {webscout-8.3.2.dist-info → webscout-8.3.4.dist-info}/licenses/LICENSE.md +0 -0
  117. {webscout-8.3.2.dist-info → webscout-8.3.4.dist-info}/top_level.txt +0 -0
@@ -1,750 +0,0 @@
1
- <div id="endpoints-panel" class="tab-content active" role="tabpanel" aria-labelledby="endpoints-tab">
2
- <div class="endpoint-section">
3
- <h2 class="section-title">Chat Completions</h2>
4
- <p class="section-description">
5
- Create chat completions using various AI models. This endpoint is compatible with OpenAI's chat completions API.
6
- </p>
7
-
8
- <div class="endpoint-card">
9
- <div class="endpoint-header">
10
- <div class="endpoint-method">
11
- <span class="method-badge method-post">POST</span>
12
- <span class="endpoint-path">/v1/chat/completions</span>
13
- <span class="endpoint-summary">Generate chat completions</span>
14
- </div>
15
- <span class="expand-icon">▼</span>
16
- </div>
17
-
18
- <div class="endpoint-body">
19
- <div class="endpoint-description">
20
- Creates a model response for the given chat conversation. Supports streaming and non-streaming responses.
21
- </div>
22
-
23
- <div class="parameter-section">
24
- <h4>Request Parameters</h4>
25
- <div class="parameter-list">
26
- <div class="parameter-item">
27
- <div class="parameter-header">
28
- <span class="parameter-name">model</span>
29
- <span class="parameter-type">string</span>
30
- <span class="parameter-required">required</span>
31
- </div>
32
- <div class="parameter-description">
33
- ID of the model to use. See available models in the Models tab.
34
- </div>
35
- </div>
36
-
37
- <div class="parameter-item">
38
- <div class="parameter-header">
39
- <span class="parameter-name">messages</span>
40
- <span class="parameter-type">array</span>
41
- <span class="parameter-required">required</span>
42
- </div>
43
- <div class="parameter-description">
44
- A list of messages comprising the conversation so far.
45
- </div>
46
- </div>
47
-
48
- <div class="parameter-item">
49
- <div class="parameter-header">
50
- <span class="parameter-name">max_tokens</span>
51
- <span class="parameter-type">integer</span>
52
- <span class="parameter-optional">optional</span>
53
- </div>
54
- <div class="parameter-description">
55
- The maximum number of tokens to generate in the completion.
56
- </div>
57
- </div>
58
-
59
- <div class="parameter-item">
60
- <div class="parameter-header">
61
- <span class="parameter-name">stream</span>
62
- <span class="parameter-type">boolean</span>
63
- <span class="parameter-optional">optional</span>
64
- </div>
65
- <div class="parameter-description">
66
- If set, partial message deltas will be sent as server-sent events.
67
- </div>
68
- </div>
69
-
70
- <div class="parameter-item">
71
- <div class="parameter-header">
72
- <span class="parameter-name">temperature</span>
73
- <span class="parameter-type">number</span>
74
- <span class="parameter-optional">optional</span>
75
- </div>
76
- <div class="parameter-description">
77
- Controls randomness in the output. Range: 0.0 to 2.0.
78
- </div>
79
- </div>
80
-
81
- <div class="parameter-item">
82
- <div class="parameter-header">
83
- <span class="parameter-name">top_p</span>
84
- <span class="parameter-type">number</span>
85
- <span class="parameter-optional">optional</span>
86
- </div>
87
- <div class="parameter-description">
88
- Nucleus sampling parameter. Range: 0.0 to 1.0.
89
- </div>
90
- </div>
91
-
92
- <div class="parameter-item">
93
- <div class="parameter-header">
94
- <span class="parameter-name">timeout</span>
95
- <span class="parameter-type">integer</span>
96
- <span class="parameter-optional">optional</span>
97
- </div>
98
- <div class="parameter-description">
99
- Request timeout in seconds.
100
- </div>
101
- </div>
102
- </div>
103
- </div>
104
-
105
- <div class="try-it-section">
106
- <h4 class="try-it-title">
107
- Try it out
108
- </h4>
109
-
110
- <!-- Model Selection -->
111
- <div class="form-group">
112
- <label class="form-label" for="chat-model">Model</label>
113
- <input type="text" id="chat-model" class="form-input" value="Cloudflare/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b" placeholder="Enter model name">
114
- <small class="form-hint">Enter the model identifier you want to use</small>
115
- </div>
116
-
117
- <!-- Messages -->
118
- <div class="form-group">
119
- <label class="form-label" for="chat-messages">Messages (JSON)</label>
120
- <textarea id="chat-messages" class="form-textarea" rows="4">[{"role": "user", "content": "Hello, how are you?"}]</textarea>
121
- </div>
122
-
123
- <!-- Parameters Grid -->
124
- <div class="form-grid">
125
- <div class="form-group">
126
- <label class="form-label" for="chat-max-tokens">Max Tokens</label>
127
- <input type="number" id="chat-max-tokens" class="form-input" value="150" min="1" max="4000">
128
- <small class="form-hint">Maximum tokens to generate</small>
129
- </div>
130
-
131
- <div class="form-group">
132
- <label class="form-label" for="chat-temperature">Temperature</label>
133
- <input type="number" id="chat-temperature" class="form-input" value="1.0" min="0" max="2" step="0.1">
134
- <small class="form-hint">Controls randomness (0.0 - 2.0)</small>
135
- </div>
136
-
137
- <div class="form-group">
138
- <label class="form-label" for="chat-top-p">Top P</label>
139
- <input type="number" id="chat-top-p" class="form-input" value="1.0" min="0" max="1" step="0.1">
140
- <small class="form-hint">Nucleus sampling (0.0 - 1.0)</small>
141
- </div>
142
-
143
- <div class="form-group">
144
- <label class="form-label" for="chat-timeout">Timeout</label>
145
- <input type="number" id="chat-timeout" class="form-input" value="30" min="1" max="300">
146
- <small class="form-hint">Request timeout in seconds</small>
147
- </div>
148
- </div>
149
-
150
- <!-- Stream Checkbox -->
151
- <div class="form-group">
152
- <label class="checkbox-label">
153
- <input type="checkbox" id="chat-stream" class="form-checkbox">
154
- Stream Response
155
- </label>
156
- </div>
157
-
158
- <button class="btn btn-primary" onclick="testChatCompletion(event)">
159
- Send Request
160
- </button>
161
-
162
- <div id="chat-response" class="response-display"></div>
163
- </div>
164
- </div>
165
- </div>
166
- </div>
167
-
168
- <div class="endpoint-section">
169
- <h2 class="section-title">Image Generation</h2>
170
- <p class="section-description">
171
- Generate images from text descriptions using various AI image generation models.
172
- </p>
173
-
174
- <div class="endpoint-card premium-card">
175
- <div class="endpoint-header hover-lift">
176
- <div class="endpoint-method">
177
- <span class="method-badge method-post">
178
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="method-icon">
179
- <rect x="3" y="3" width="18" height="18" rx="2" ry="2"/>
180
- <circle cx="9" cy="9" r="2"/>
181
- <path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/>
182
- </svg>
183
- POST
184
- </span>
185
- <span class="endpoint-path">/v1/images/generations</span>
186
- <span class="endpoint-summary">Generate stunning images from text descriptions</span>
187
- </div>
188
- <span class="expand-icon">
189
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
190
- <polyline points="6,9 12,15 18,9"/>
191
- </svg>
192
- </span>
193
- </div>
194
-
195
- <div class="endpoint-body">
196
- <div class="endpoint-description">
197
- Creates an image given a text prompt. Compatible with OpenAI's image generation API.
198
- </div>
199
-
200
- <div class="parameter-section">
201
- <h4>Request Parameters</h4>
202
- <div class="parameter-list">
203
- <div class="parameter-item">
204
- <div class="parameter-header">
205
- <span class="parameter-name">prompt</span>
206
- <span class="parameter-type">string</span>
207
- <span class="parameter-required">required</span>
208
- </div>
209
- <div class="parameter-description">
210
- A text description of the desired image(s). Maximum length is 1000 characters.
211
- </div>
212
- </div>
213
-
214
- <div class="parameter-item">
215
- <div class="parameter-header">
216
- <span class="parameter-name">model</span>
217
- <span class="parameter-type">string</span>
218
- <span class="parameter-optional">optional</span>
219
- </div>
220
- <div class="parameter-description">
221
- The model to use for image generation. Defaults to dall-e-2.
222
- </div>
223
- </div>
224
-
225
- <div class="parameter-item">
226
- <div class="parameter-header">
227
- <span class="parameter-name">n</span>
228
- <span class="parameter-type">integer</span>
229
- <span class="parameter-optional">optional</span>
230
- </div>
231
- <div class="parameter-description">
232
- The number of images to generate. Must be between 1 and 10. Default: 1
233
- </div>
234
- </div>
235
-
236
- <div class="parameter-item">
237
- <div class="parameter-header">
238
- <span class="parameter-name">size</span>
239
- <span class="parameter-type">string</span>
240
- <span class="parameter-optional">optional</span>
241
- </div>
242
- <div class="parameter-description">
243
- The size of the generated images. Options: "256x256", "512x512", "1024x1024"
244
- </div>
245
- </div>
246
- </div>
247
- </div>
248
-
249
- <div class="try-it-section glass-effect">
250
- <h4 class="try-it-title gradient-text">
251
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="icon">
252
- <rect x="3" y="3" width="18" height="18" rx="2" ry="2"/>
253
- <circle cx="9" cy="9" r="2"/>
254
- <path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/>
255
- </svg>
256
- Try it out
257
- </h4>
258
-
259
- <!-- Model Selection -->
260
- <div class="form-group">
261
- <label class="form-label" for="image-model">
262
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="icon">
263
- <rect x="3" y="11" width="18" height="10" rx="2" ry="2"/>
264
- <circle cx="12" cy="5" r="2"/>
265
- <path d="M12 7v4"/>
266
- <line x1="8" y1="16" x2="8" y2="16"/>
267
- <line x1="16" y1="16" x2="16" y2="16"/>
268
- </svg>
269
- Model
270
- </label>
271
- <input type="text" id="image-model" class="form-input modern-input" value="TogetherImage/black-forest-labs/FLUX.1-pro" placeholder="Enter image generation model">
272
- <small class="form-hint">Enter the image generation model identifier</small>
273
- </div>
274
-
275
- <div class="form-group">
276
- <label class="form-label" for="image-prompt">
277
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="icon">
278
- <path d="M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2v5Z"/>
279
- <path d="M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1"/>
280
- </svg>
281
- Prompt
282
- </label>
283
- <textarea id="image-prompt" class="form-textarea modern-input" placeholder="A beautiful sunset over a mountain landscape"></textarea>
284
- </div>
285
-
286
- <div class="form-grid">
287
- <div class="form-group">
288
- <label class="form-label" for="image-size">
289
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="icon">
290
- <rect x="2" y="3" width="20" height="14" rx="2" ry="2"/>
291
- <line x1="8" y1="21" x2="16" y2="21"/>
292
- <line x1="12" y1="17" x2="12" y2="21"/>
293
- </svg>
294
- Size
295
- </label>
296
- <select id="image-size" class="form-input modern-input">
297
- <option value="256x256">256x256</option>
298
- <option value="512x512">512x512</option>
299
- <option value="1024x1024">1024x1024</option>
300
- </select>
301
- </div>
302
-
303
- <div class="form-group">
304
- <label class="form-label" for="image-count">
305
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="icon">
306
- <path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"/>
307
- <rect x="8" y="2" width="8" height="4" rx="1" ry="1"/>
308
- </svg>
309
- Count
310
- </label>
311
- <input type="number" id="image-count" class="form-input modern-input" value="1" min="1" max="10">
312
- </div>
313
- </div>
314
-
315
- <button class="btn btn-primary modern-btn hover-lift" onclick="testImageGeneration(event)">
316
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="icon">
317
- <rect x="3" y="3" width="18" height="18" rx="2" ry="2"/>
318
- <circle cx="9" cy="9" r="2"/>
319
- <path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/>
320
- </svg>
321
- Generate Image
322
- </button>
323
-
324
- <div id="image-response" class="response-display modern-response"></div>
325
- </div>
326
- </div>
327
- </div>
328
- </div>
329
-
330
- <div class="endpoint-section">
331
- <h2 class="section-title">Models</h2>
332
- <p class="section-description">
333
- List and retrieve information about available AI models.
334
- </p>
335
-
336
- <div class="endpoint-card premium-card">
337
- <div class="endpoint-header hover-lift">
338
- <div class="endpoint-method">
339
- <span class="method-badge method-get">
340
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="method-icon">
341
- <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/>
342
- <polyline points="14,2 14,8 20,8"/>
343
- <line x1="16" y1="13" x2="8" y2="13"/>
344
- <line x1="16" y1="17" x2="8" y2="17"/>
345
- <polyline points="10,9 9,9 8,9"/>
346
- </svg>
347
- GET
348
- </span>
349
- <span class="endpoint-path">/v1/models</span>
350
- <span class="endpoint-summary">List all available AI models</span>
351
- </div>
352
- <span class="expand-icon">
353
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
354
- <polyline points="6,9 12,15 18,9"/>
355
- </svg>
356
- </span>
357
- </div>
358
-
359
- <div class="endpoint-body">
360
- <div class="endpoint-description">
361
- Lists the currently available models, and provides basic information about each one.
362
- </div>
363
-
364
- <div class="try-it-section">
365
- <h4 class="try-it-title">
366
- <span>📋</span>
367
- Try it out
368
- </h4>
369
-
370
- <button class="btn btn-primary" onclick="testListModels(event)">
371
- <span>📋</span>
372
- List Models
373
- </button>
374
-
375
- <div id="models-response" class="response-display"></div>
376
- </div>
377
- </div>
378
- </div>
379
-
380
- <div class="endpoint-card">
381
- <div class="endpoint-header">
382
- <div class="endpoint-method">
383
- <span class="method-badge method-get">GET</span>
384
- <span class="endpoint-path">/v1/TTI/models</span>
385
- <span class="endpoint-summary">List TTI models</span>
386
- </div>
387
- <span class="expand-icon">▼</span>
388
- </div>
389
-
390
- <div class="endpoint-body">
391
- <div class="endpoint-description">
392
- Lists the currently available Text-to-Image (TTI) models for image generation.
393
- </div>
394
-
395
- <div class="try-it-section">
396
- <h4 class="try-it-title">
397
- <span>🎨</span>
398
- Try it out
399
- </h4>
400
-
401
- <button class="btn btn-primary" onclick="testListTTIModels(event)">
402
- <span>🎨</span>
403
- List TTI Models
404
- </button>
405
-
406
- <div id="tti-models-response" class="response-display"></div>
407
- </div>
408
- </div>
409
- </div>
410
- </div>
411
-
412
- <div class="endpoint-section">
413
- <h2 class="section-title">Authentication</h2>
414
- <p class="section-description">
415
- Manage API keys and authentication for the WebScout API.
416
- </p>
417
-
418
- <div class="endpoint-card">
419
- <div class="endpoint-header">
420
- <div class="endpoint-method">
421
- <span class="method-badge method-post">POST</span>
422
- <span class="endpoint-path">/v1/auth/generate-key</span>
423
- <span class="endpoint-summary">Generate API key</span>
424
- </div>
425
- <span class="expand-icon">▼</span>
426
- </div>
427
-
428
- <div class="endpoint-body">
429
- <div class="endpoint-description">
430
- Generate a new API key for accessing the WebScout API.
431
- </div>
432
-
433
- <div class="parameter-section">
434
- <h4>Request Parameters</h4>
435
- <div class="parameter-list">
436
- <div class="parameter-item">
437
- <div class="parameter-header">
438
- <span class="parameter-name">username</span>
439
- <span class="parameter-type">string</span>
440
- <span class="parameter-required">required</span>
441
- </div>
442
- <div class="parameter-description">
443
- Username for the API key.
444
- </div>
445
- </div>
446
-
447
- <div class="parameter-item">
448
- <div class="parameter-header">
449
- <span class="parameter-name">name</span>
450
- <span class="parameter-type">string</span>
451
- <span class="parameter-optional">optional</span>
452
- </div>
453
- <div class="parameter-description">
454
- Friendly name for the API key.
455
- </div>
456
- </div>
457
-
458
- <div class="parameter-item">
459
- <div class="parameter-header">
460
- <span class="parameter-name">rate_limit</span>
461
- <span class="parameter-type">integer</span>
462
- <span class="parameter-optional">optional</span>
463
- </div>
464
- <div class="parameter-description">
465
- Rate limit for the API key (requests per minute). Default: 10
466
- </div>
467
- </div>
468
-
469
- <div class="parameter-item">
470
- <div class="parameter-header">
471
- <span class="parameter-name">expires_in_days</span>
472
- <span class="parameter-type">integer</span>
473
- <span class="parameter-optional">optional</span>
474
- </div>
475
- <div class="parameter-description">
476
- Number of days until the API key expires.
477
- </div>
478
- </div>
479
- </div>
480
- </div>
481
-
482
- <div class="try-it-section">
483
- <h4 class="try-it-title">
484
- <span>🔑</span>
485
- Try it out
486
- </h4>
487
-
488
- <div class="form-group">
489
- <label class="form-label" for="auth-username">Username</label>
490
- <input type="text" id="auth-username" class="form-input" placeholder="your-username">
491
- </div>
492
-
493
- <div class="form-group">
494
- <label class="form-label" for="auth-name">Name (optional)</label>
495
- <input type="text" id="auth-name" class="form-input" placeholder="My API Key">
496
- </div>
497
-
498
- <div class="form-row">
499
- <div class="form-group">
500
- <label class="form-label" for="auth-rate-limit">Rate Limit</label>
501
- <input type="number" id="auth-rate-limit" class="form-input" value="10" min="1" max="1000">
502
- </div>
503
-
504
- <div class="form-group">
505
- <label class="form-label" for="auth-expires">Expires (days)</label>
506
- <input type="number" id="auth-expires" class="form-input" placeholder="30" min="1" max="365">
507
- </div>
508
- </div>
509
-
510
- <button class="btn btn-primary" onclick="testGenerateApiKey(event)">
511
- <span>🔑</span>
512
- Generate API Key
513
- </button>
514
-
515
- <div id="auth-response" class="response-display"></div>
516
- </div>
517
- </div>
518
- </div>
519
-
520
- <div class="endpoint-card">
521
- <div class="endpoint-header">
522
- <div class="endpoint-method">
523
- <span class="method-badge method-get">GET</span>
524
- <span class="endpoint-path">/v1/auth/validate</span>
525
- <span class="endpoint-summary">Validate API key</span>
526
- </div>
527
- <span class="expand-icon">▼</span>
528
- </div>
529
-
530
- <div class="endpoint-body">
531
- <div class="endpoint-description">
532
- Validate an API key and get information about its usage and limits.
533
- </div>
534
-
535
- <div class="try-it-section">
536
- <h4 class="try-it-title">
537
- <span>✅</span>
538
- Try it out
539
- </h4>
540
-
541
- <div class="form-group">
542
- <label class="form-label" for="validate-api-key">API Key</label>
543
- <input type="password" id="validate-api-key" class="form-input" placeholder="your-api-key">
544
- </div>
545
-
546
- <button class="btn btn-primary" onclick="testValidateApiKey(event)">
547
- <span>✅</span>
548
- Validate API Key
549
- </button>
550
-
551
- <div id="validate-response" class="response-display"></div>
552
- </div>
553
- </div>
554
- </div>
555
- </div>
556
-
557
- <div class="endpoint-section">
558
- <h2 class="section-title">Web Search</h2>
559
- <p class="section-description">
560
- Search the web using various search engines including Google, Yep, and DuckDuckGo.
561
- </p>
562
-
563
- <div class="endpoint-card">
564
- <div class="endpoint-header">
565
- <div class="endpoint-method">
566
- <span class="method-badge method-get">GET</span>
567
- <span class="endpoint-path">/search</span>
568
- <span class="endpoint-summary">Unified web search</span>
569
- </div>
570
- <span class="expand-icon">▼</span>
571
- </div>
572
-
573
- <div class="endpoint-body">
574
- <div class="endpoint-description">
575
- Perform web searches across multiple search engines with support for different content types.
576
- </div>
577
-
578
- <div class="parameter-section">
579
- <h4>Query Parameters</h4>
580
- <div class="parameter-list">
581
- <div class="parameter-item">
582
- <div class="parameter-header">
583
- <span class="parameter-name">q</span>
584
- <span class="parameter-type">string</span>
585
- <span class="parameter-required">required</span>
586
- </div>
587
- <div class="parameter-description">
588
- Search query string.
589
- </div>
590
- </div>
591
-
592
- <div class="parameter-item">
593
- <div class="parameter-header">
594
- <span class="parameter-name">engine</span>
595
- <span class="parameter-type">string</span>
596
- <span class="parameter-optional">optional</span>
597
- </div>
598
- <div class="parameter-description">
599
- Search engine: google, yep, duckduckgo. Default: google
600
- </div>
601
- </div>
602
-
603
- <div class="parameter-item">
604
- <div class="parameter-header">
605
- <span class="parameter-name">max_results</span>
606
- <span class="parameter-type">integer</span>
607
- <span class="parameter-optional">optional</span>
608
- </div>
609
- <div class="parameter-description">
610
- Maximum number of results. Default: 10
611
- </div>
612
- </div>
613
-
614
- <div class="parameter-item">
615
- <div class="parameter-header">
616
- <span class="parameter-name">type</span>
617
- <span class="parameter-type">string</span>
618
- <span class="parameter-optional">optional</span>
619
- </div>
620
- <div class="parameter-description">
621
- Search type: text, news, images, suggestions. Default: text
622
- </div>
623
- </div>
624
-
625
- <div class="parameter-item">
626
- <div class="parameter-header">
627
- <span class="parameter-name">region</span>
628
- <span class="parameter-type">string</span>
629
- <span class="parameter-optional">optional</span>
630
- </div>
631
- <div class="parameter-description">
632
- Region code for localized results. Default: all
633
- </div>
634
- </div>
635
-
636
- <div class="parameter-item">
637
- <div class="parameter-header">
638
- <span class="parameter-name">safesearch</span>
639
- <span class="parameter-type">string</span>
640
- <span class="parameter-optional">optional</span>
641
- </div>
642
- <div class="parameter-description">
643
- Safe search setting: on, moderate, off. Default: moderate
644
- </div>
645
- </div>
646
- </div>
647
- </div>
648
-
649
- <div class="try-it-section">
650
- <h4 class="try-it-title">
651
- <span>🔍</span>
652
- Try it out
653
- </h4>
654
-
655
- <div class="form-group">
656
- <label class="form-label" for="search-query">Search Query</label>
657
- <input type="text" id="search-query" class="form-input" placeholder="artificial intelligence">
658
- </div>
659
-
660
- <div class="form-row">
661
- <div class="form-group">
662
- <label class="form-label" for="search-engine">Engine</label>
663
- <select id="search-engine" class="form-input">
664
- <option value="google">Google</option>
665
- <option value="yep">Yep</option>
666
- <option value="duckduckgo">DuckDuckGo</option>
667
- </select>
668
- </div>
669
-
670
- <div class="form-group">
671
- <label class="form-label" for="search-type">Type</label>
672
- <select id="search-type" class="form-input">
673
- <option value="text">Text</option>
674
- <option value="news">News</option>
675
- <option value="images">Images</option>
676
- <option value="suggestions">Suggestions</option>
677
- </select>
678
- </div>
679
-
680
- <div class="form-group">
681
- <label class="form-label" for="search-max-results">Max Results</label>
682
- <input type="number" id="search-max-results" class="form-input" value="10" min="1" max="50">
683
- </div>
684
- </div>
685
-
686
- <div class="form-row">
687
- <div class="form-group">
688
- <label class="form-label" for="search-region">Region</label>
689
- <input type="text" id="search-region" class="form-input" value="all" placeholder="us, uk, de, etc.">
690
- </div>
691
-
692
- <div class="form-group">
693
- <label class="form-label" for="search-safesearch">Safe Search</label>
694
- <select id="search-safesearch" class="form-input">
695
- <option value="moderate">Moderate</option>
696
- <option value="on">On</option>
697
- <option value="off">Off</option>
698
- </select>
699
- </div>
700
- </div>
701
-
702
- <button class="btn btn-primary" onclick="testWebSearch(event)">
703
- <span>🔍</span>
704
- Search Web
705
- </button>
706
-
707
- <div id="search-response" class="response-display"></div>
708
- </div>
709
- </div>
710
- </div>
711
- </div>
712
-
713
- <div class="endpoint-section">
714
- <h2 class="section-title">System</h2>
715
- <p class="section-description">
716
- System health and status endpoints.
717
- </p>
718
-
719
- <div class="endpoint-card">
720
- <div class="endpoint-header">
721
- <div class="endpoint-method">
722
- <span class="method-badge method-get">GET</span>
723
- <span class="endpoint-path">/health</span>
724
- <span class="endpoint-summary">Health check</span>
725
- </div>
726
- <span class="expand-icon">▼</span>
727
- </div>
728
-
729
- <div class="endpoint-body">
730
- <div class="endpoint-description">
731
- Check the health status of the API server and its components.
732
- </div>
733
-
734
- <div class="try-it-section">
735
- <h4 class="try-it-title">
736
- <span>💚</span>
737
- Try it out
738
- </h4>
739
-
740
- <button class="btn btn-primary" onclick="testHealthCheck(event)">
741
- <span>💚</span>
742
- Check Health
743
- </button>
744
-
745
- <div id="health-response" class="response-display"></div>
746
- </div>
747
- </div>
748
- </div>
749
- </div>
750
- </div>