# How can I retrieve the list of available models or model versions programmatically via the Bedrock API?

Source: https://zilliz.com/ai-faq/how-can-i-retrieve-the-list-of-available-models-or-model-versions-programmatically-via-the-bedrock-api
Author: zilliz

To retrieve available models or versions via the Bedrock API, use the `ListFoundationModels` API operation. This method returns metadata about all foundation models accessible through Bedrock, including their identifiers, providers (e.g., Anthropic, AI21 Labs), and supported features. You’ll need to authenticate your API requests using AWS credentials and target the Bedrock service endpoint for your region.

First, initialize the Bedrock client using the AWS SDK for your programming language (e.g., Python’s `boto3`). For example, in Python:
```python
import boto3

client = boto3.client('bedrock', region_name='us-west-2')
response = client.list_foundation_models()
```
The response includes a `modelSummaries` array with entries like:
```json
{
 "modelId": "anthropic.claude-v2",
 "modelName": "Claude",
 "providerName": "Anthropic",
 "inputModalities": ["TEXT"],
 "outputModalities": ["TEXT"],
 "customizationsSupported": ["FINE_TUNING"]
}
```
Each `modelId` often encodes version information (e.g., `claude-v2`). To filter results, use optional parameters like `byProvider` or `byOutputModality` in the API call.

If you need detailed version information beyond what’s in `modelId`, use the `GetFoundationModel` API with a specific `modelId`. This returns additional metadata, including lifecycle status and any version-specific constraints. Note that model availability depends on your AWS region and account permissions, so ensure your IAM roles grant `bedrock:ListFoundationModels` access. For CLI users, the equivalent command is `aws bedrock list-foundation-models`.
