Retrieve a model
curl --request GET \
--url https://api.perceptron.inc/v1/models/{model_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.perceptron.inc/v1/models/{model_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.perceptron.inc/v1/models/{model_id}', 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.perceptron.inc/v1/models/{model_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.perceptron.inc/v1/models/{model_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.perceptron.inc/v1/models/{model_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.perceptron.inc/v1/models/{model_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"created": 123,
"id": "<string>",
"object": "<string>",
"owned_by": "perceptron"
}{
"error": {
"message": "Invalid API key",
"type": "authentication_error",
"param": null,
"code": null
}
}{
"error": {
"message": "The model 'unknown-model' does not exist",
"type": "invalid_request_error",
"param": "model",
"code": "model_not_found"
}
}{
"error": {
"message": "Organization rate limit exceeded (30 requests/minute). Please retry after 30 seconds.",
"type": "rate_limit_error",
"param": null,
"code": "rate_limit_exceeded"
}
}{
"error": {
"message": "The server had an error while processing your request.",
"type": "server_error",
"param": null,
"code": null
}
}Retrieve Model
Returns a specific model by its ID. Use the extended query parameter
to get additional metadata about the model’s capabilities and supported features.
GET
/
v1
/
models
/
{model_id}
Retrieve a model
curl --request GET \
--url https://api.perceptron.inc/v1/models/{model_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.perceptron.inc/v1/models/{model_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.perceptron.inc/v1/models/{model_id}', 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.perceptron.inc/v1/models/{model_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.perceptron.inc/v1/models/{model_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.perceptron.inc/v1/models/{model_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.perceptron.inc/v1/models/{model_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"created": 123,
"id": "<string>",
"object": "<string>",
"owned_by": "perceptron"
}{
"error": {
"message": "Invalid API key",
"type": "authentication_error",
"param": null,
"code": null
}
}{
"error": {
"message": "The model 'unknown-model' does not exist",
"type": "invalid_request_error",
"param": "model",
"code": "model_not_found"
}
}{
"error": {
"message": "Organization rate limit exceeded (30 requests/minute). Please retry after 30 seconds.",
"type": "rate_limit_error",
"param": null,
"code": "rate_limit_exceeded"
}
}{
"error": {
"message": "The server had an error while processing your request.",
"type": "server_error",
"param": null,
"code": null
}
}Overview
The Retrieve Model API returns a specific model by its ID. This endpoint is compatible with OpenAI’s model retrieval specification. Use the optionalextended query parameter to retrieve detailed metadata about the model, including capabilities, supported input/output modalities, and token limits.
Examples
Retrieve a Model
Get basic information about a specific model:curl --location 'https://api.perceptron.inc/v1/models/perc-x1' \
--header 'Authorization: Bearer YOUR_API_KEY'
Get Extended Model Metadata
Retrieve detailed information about a model’s capabilities and limits:curl --location 'https://api.perceptron.inc/v1/models/perc-x1?extended=true' \
--header 'Authorization: Bearer YOUR_API_KEY'
Rate Limits
This endpoint is limited to 30 requests/min.Use Cases
- Model Validation: Verify a specific model exists and is available before making inference requests
- Capability Checking: Check if a model supports specific features (structured outputs, video input, etc.)
- Dynamic Configuration: Fetch model details to adapt UI or request parameters
- Token Limit Validation: Check context and output limits before sending requests
Authorizations
Bearer token authentication using your Perceptron API key
Path Parameters
The ID of the model to retrieve.
Query Parameters
If true, returns extended model metadata including capabilities, modalities, and limits.
Response
The model with the given ID. Returns Model when extended=false (default), or ModelExtended when extended=true.
- Option 1
- Option 2
Response union for GET /v1/models/{model_id} endpoint. Returns Model when extended=false (default), or ModelExtended when extended=true.