7.9 KiB
Documentation for getAllPrompts
API Endpoint
The getAllPrompts
API endpoint is a part of the swarms.world
application, designed to fetch all prompt records from the database. This endpoint is crucial for retrieving various prompts stored in the swarms_cloud_prompts
table, including their metadata such as name, description, use cases, and tags.
Purpose
The primary purpose of this API endpoint is to provide a method for clients to fetch a list of prompts stored in the swarms_cloud_prompts
table, with the ability to filter by name, tags, and use cases.
API Endpoint Definition
Fetch All Prompts
Endpoint URL
https://swarms.world/get-prompts
HTTP Method
GET
Query Parameters
- name (optional): A substring to match against the prompt name. The query is case-insensitive.
- tag (optional): A comma-separated list of tags to filter prompts by. The query matches any of the provided tags, and is case-insensitive.
- use_case (optional): A substring to match against the use case titles within the
use_cases
array. The query is case-insensitive. - use_case_description (optional): A substring to match against the use case descriptions within the
use_cases
array. The query is case-insensitive.
Response
Success Response (200)
Returns an array of prompts.
[
{
"id": "string",
"name": "string",
"description": "string",
"prompt": "string",
"use_cases": [
{
"title": "string",
"description": "string"
}
],
"tags": "string"
},
...
]
Error Responses
-
405 Method Not Allowed
{ "error": "Method <method> Not Allowed" }
-
500 Internal Server Error
{ "error": "Could not fetch prompts" }
Fetch Prompt by ID
Endpoint URL
https://swarms.world/get-prompts/[id]
HTTP Method
GET
Response
Success Response (200)
Returns a single prompt by ID.
{
"id": "string",
"name": "string",
"description": "string",
"prompt": "string",
"use_cases": [
{
"title": "string",
"description": "string"
}
],
"tags": "string"
}
Error Responses
-
404 Not Found
{ "error": "Prompt not found" }
-
500 Internal Server Error
{ "error": "Could not fetch prompt" }
Request Handling
-
Method Validation: The endpoint only supports the
GET
method. If a different HTTP method is used, it responds with a405 Method Not Allowed
status. -
Database Query:
- Fetching All Prompts: The endpoint uses the
supabaseAdmin
client to query theswarms_cloud_prompts
table. Filters are applied based on the query parameters (name
,tag
, anduse_cases
). - Fetching a Prompt by ID: The endpoint retrieves a single prompt from the
swarms_cloud_prompts
table by its unique ID.
- Fetching All Prompts: The endpoint uses the
-
Response: On success, it returns the prompt data in JSON format. In case of an error during the database query, a
500 Internal Server Error
status is returned. For fetching by ID, if the prompt is not found, it returns a404 Not Found
status.
Code Example
JavaScript (Node.js)
import fetch from "node-fetch";
// Fetch all prompts with optional filters
const getPrompts = async (filters) => {
const queryString = new URLSearchParams(filters).toString();
const response = await fetch(
`https://swarms.world/get-prompts?${queryString}`,
{
method: "GET",
}
);
if (!response.ok) {
throw new Error(`Error: ${response.statusText}`);
}
const data = await response.json();
console.log(data);
};
// Fetch prompt by ID
const getPromptById = async (id) => {
const response = await fetch(`https://swarms.world/get-prompts/${id}`, {
method: "GET",
});
if (!response.ok) {
throw new Error(`Error: ${response.statusText}`);
}
const data = await response.json();
console.log(data);
};
// Example usage
getPrompts({
name: "example",
tag: "tag1,tag2",
use_case: "example",
use_case_description: "description",
}).catch(console.error);
getPromptById("123").catch(console.error);
Python
import requests
# Fetch all prompts with optional filters
def get_prompts(filters):
response = requests.get('https://swarms.world/get-prompts', params=filters)
if response.status_code != 200:
raise Exception(f'Error: {response.status_code}, {response.text}')
data = response.json()
print(data)
# Fetch prompt by ID
def get_prompt_by_id(id):
response = requests.get(f'https://swarms.world/get-prompts/{id}')
if response.status_code != 200:
raise Exception(f'Error: {response.status_code}, {response.text}')
data = response.json()
print(data)
# Example usage
get_prompts({'name': 'example', 'tag': 'tag1,tag2', 'use_case': 'example', 'use_case_description': 'description'})
get_prompt_by_id('123')
cURL
# Fetch all prompts with optional filters
curl -X GET "https://swarms.world/get-prompts?name=example&tag=tag1,tag2&use_case=example&use_case_description=description"
# Fetch prompt by ID
curl -X GET https://swarms.world/get-prompts/123
Go
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
)
func getPrompts(filters map[string]string) {
baseURL := "https://swarms.world/get-prompts"
query := url.Values{}
for key, value := range filters {
query.Set(key, value)
}
fullURL := fmt.Sprintf("%s?%s", baseURL, query.Encode())
resp, err := http.Get(fullURL)
if err != nil {
panic(err)
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
body, _ := ioutil.ReadAll(resp.Body)
panic(fmt.Sprintf("Error: %d, %s", resp.StatusCode, string(body)))
}
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
}
func getPromptById(id string) {
url := fmt.Sprintf("https://swarms.world/get-prompts/%s", id)
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
body, _ := ioutil.ReadAll(resp.Body)
panic(fmt.Sprintf("Error: %d, %s", resp.StatusCode, string(body)))
}
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
}
func main() {
filters := map[string]string{
"name": "example",
"tag": "tag1,tag2",
"use_case": "example",
"use_case_description": "description",
}
getPrompts(filters)
getPromptById("123")
}
Attributes Table
Attribute | Type | Description |
---|---|---|
id | String | Unique identifier for the prompt |
name | String | Name of the prompt |
description | String | Description of the prompt |
prompt | String | The actual prompt text |
use_cases | Array | Use cases for the prompt |
tags | String | Tags associated with the prompt |
Additional Information and Tips
- Handle different error statuses appropriately to provide clear feedback to users.
- Consider implementing rate limiting and logging for better security and monitoring.
References and Resources
This documentation provides a comprehensive guide to the getAllPrompts
API endpoint, including usage examples in multiple programming languages and detailed attribute descriptions.