Execute Saved Search
curl --request POST \
--url https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/saved-searches/{id}/executeimport requests
url = "https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/saved-searches/{id}/execute"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/saved-searches/{id}/execute', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/saved-searches/{id}/execute",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/saved-searches/{id}/execute"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/saved-searches/{id}/execute")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/saved-searches/{id}/execute")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodySaved Searches
Execute Saved Search
Execute a saved search and return matching results
POST
/
app
/
v1
/
organizations
/
{organizationId}
/
projects
/
{projectId}
/
saved-searches
/
{id}
/
execute
Execute Saved Search
curl --request POST \
--url https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/saved-searches/{id}/executeimport requests
url = "https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/saved-searches/{id}/execute"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/saved-searches/{id}/execute', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/saved-searches/{id}/execute",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/saved-searches/{id}/execute"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/saved-searches/{id}/execute")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/saved-searches/{id}/execute")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyExecutes a saved search using its stored filter and sort criteria, returning matching content or assets based on the search type.
Path Parameters
string
required
Organization ID
string
required
Project ID
string
required
Saved search ID
Query Parameters
number
Items per page (default: 20)
string
Cursor for pagination (from previous response)
Execution Behavior
When executing a saved search:- The saved search’s
filterandsortparameters are applied - The
typefield determines whether the search targets content or assets - Results are paginated according to the
limitandlastKeyparameters - The search’s
metadata.lastUsedandmetadata.useCountare updated
Response (Content Type)
When the saved search type iscontent:
{
"data": [
{
"id": "cont123",
"name": "Getting Started with Metabind",
"typeId": "article",
"status": "draft",
"createdAt": "2024-03-20T10:00:00Z",
"updatedAt": "2024-03-21T15:30:00Z"
}
],
"pagination": {
"lastKey": "eyJpZCI6ImNvbnQxMjMifQ=="
},
"searchInfo": {
"id": "ss123",
"name": "Draft Articles",
"type": "content",
"executedAt": "2024-03-22T10:00:00Z"
}
}
Response (Asset Type)
When the saved search type isasset:
{
"data": [
{
"id": "asset123",
"name": "hero-image.jpg",
"type": "image/jpeg",
"size": 245760,
"createdAt": "2024-03-20T10:00:00Z",
"updatedAt": "2024-03-21T15:30:00Z"
}
],
"pagination": {
"lastKey": "eyJpZCI6ImFzc2V0MTIzIn0="
},
"searchInfo": {
"id": "ss124",
"name": "Recent Images",
"type": "asset",
"executedAt": "2024-03-22T10:00:00Z"
}
}
Error Responses
Saved Search Not Found
{
"error": {
"code": "NOT_FOUND",
"message": "Saved search not found"
}
}
Code Examples
curl -X POST "https://api.metabind.ai/app/v1/organizations/org123/projects/proj456/saved-searches/ss123/execute?limit=10" \
-H "Authorization: Bearer YOUR_JWT"
const response = await fetch(
'https://api.metabind.ai/app/v1/organizations/org123/projects/proj456/saved-searches/ss123/execute?limit=10',
{
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_JWT'
}
}
);
const { data, pagination, searchInfo } = await response.json();
console.log(`Found ${data.length} results for "${searchInfo.name}"`);
var request = URLRequest(url: URL(string: "https://api.metabind.ai/app/v1/organizations/org123/projects/proj456/saved-searches/ss123/execute?limit=10")!)
request.httpMethod = "POST"
request.setValue("Bearer YOUR_JWT", forHTTPHeaderField: "Authorization")
let (data, _) = try await URLSession.shared.data(for: request)
let result = try JSONDecoder().decode(SearchExecutionResponse.self, from: data)
print("Found \(result.data.count) results")
val response = client.post("https://api.metabind.ai/app/v1/organizations/org123/projects/proj456/saved-searches/ss123/execute") {
header("Authorization", "Bearer YOUR_JWT")
parameter("limit", 10)
}
val result = response.body<SearchExecutionResponse>()
println("Found ${result.data.size} results for ${result.searchInfo.name}")