curl --request GET \
--url https://api.edenai.run/v3/info/{feature}/{subfeature}import requests
url = "https://api.edenai.run/v3/info/{feature}/{subfeature}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.edenai.run/v3/info/{feature}/{subfeature}', 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.edenai.run/v3/info/{feature}/{subfeature}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.edenai.run/v3/info/{feature}/{subfeature}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.edenai.run/v3/info/{feature}/{subfeature}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.edenai.run/v3/info/{feature}/{subfeature}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"feature": "<string>",
"feature_fullname": "<string>",
"subfeature": "<string>",
"subfeature_fullname": "<string>",
"mode": "sync",
"endpoints": {},
"request_schema": {},
"input_schema": {},
"output_schema": {},
"models": [
{}
],
"description": "<string>",
"provider_params": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Get Feature Info
Get detailed information for a specific feature/subfeature.
Args: feature: Feature name (e.g., ‘text’, ‘image’, ‘ocr’, ‘translation’) subfeature: Subfeature name (e.g., ‘ai_detection’, ‘ocr’, ‘generation’) format: Schema output format (simplified or json_schema)
Returns:
- Feature and subfeature display names
- Request body schema (where the input fields and the model go)
- Input schema
- Output schema
- Available providers and their models
curl --request GET \
--url https://api.edenai.run/v3/info/{feature}/{subfeature}import requests
url = "https://api.edenai.run/v3/info/{feature}/{subfeature}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.edenai.run/v3/info/{feature}/{subfeature}', 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.edenai.run/v3/info/{feature}/{subfeature}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.edenai.run/v3/info/{feature}/{subfeature}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.edenai.run/v3/info/{feature}/{subfeature}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.edenai.run/v3/info/{feature}/{subfeature}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"feature": "<string>",
"feature_fullname": "<string>",
"subfeature": "<string>",
"subfeature_fullname": "<string>",
"mode": "sync",
"endpoints": {},
"request_schema": {},
"input_schema": {},
"output_schema": {},
"models": [
{}
],
"description": "<string>",
"provider_params": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Query Parameters
Schema format: 'simplified' for flat readable format, 'json_schema' for full Pydantic JSON Schema
simplified, json_schema true keeps only models whose provider keeps no prompts or outputs after the response (Zero Data Retention); false keeps only those known to keep them. Models not verified yet (zero_data_retention: null) match neither.
Response
Successful Response
Detailed response for a specific subfeature.
sync, async Schema of the request body sent to endpoints.create. The fields of input_schema go inside its input field, and model takes one of the models ids.
Models available for this subfeature: the model id to send, its pricing and regions, and documentation_url, the provider's documentation for that model (the model's own page when there is one, else the feature's, else the provider's; null when none is known). requires_reference_images is true for an edit-only model, which fails on a request without reference_images, and requires_video for a model that edits a source video, which fails without video.
The provider_params each provider accepts, for subfeatures that restrict them; any other parameter is rejected with 400. Each entry is a parameter path in the provider's own request format, nested keys joined with dots (e.g. videogenerationconfig.seed), matched case-insensitively: send the keys in the provider's own casing ({"videoGenerationConfig": {"seed": 7}}). An empty list means the provider accepts none; null on subfeatures that publish no list.
Show child attributes
Show child attributes