> ## Documentation Index
> Fetch the complete documentation index at: https://edenai-docs-github-copilot-integration.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Provider Parameters

> The provider_params field lets you pass provider-specific parameters that aren't part of Eden AI's unified schema.

export const TechArticleSchema = ({title, description, path, articleSection, about, proficiencyLevel = "Beginner", dependencies, keywords = [], datePublished, dateModified, image, inLanguage = "en"}) => {
  const baseUrl = "https://www.edenai.co/docs";
  const canonicalUrl = `${baseUrl}/${path}`.replace(/\/+$/, "");
  const ogParams = new URLSearchParams({
    division: articleSection || "",
    title: title || "",
    description: description || ""
  });
  const resolvedImage = image || `https://edenai.mintlify.app/_mintlify/api/og?${ogParams.toString()}`;
  const data = {
    "@context": "https://schema.org",
    "@type": "TechArticle",
    "@id": `${canonicalUrl}#techarticle`,
    mainEntityOfPage: {
      "@type": "WebPage",
      "@id": canonicalUrl
    },
    headline: title,
    name: title,
    description: description,
    url: canonicalUrl,
    inLanguage: inLanguage,
    isPartOf: {
      "@type": "WebSite",
      name: "Eden AI Documentation",
      url: baseUrl
    },
    author: [{
      "@type": "Organization",
      name: "Eden AI",
      url: "https://www.edenai.co/"
    }],
    publisher: {
      "@type": "Organization",
      name: "Eden AI",
      url: "https://www.edenai.co/",
      logo: {
        "@type": "ImageObject",
        url: "https://www.edenai.co/assets/logo.png"
      }
    }
  };
  if (articleSection) data.articleSection = articleSection;
  if (about) data.about = {
    "@type": "Thing",
    name: about
  };
  if (proficiencyLevel) data.proficiencyLevel = proficiencyLevel;
  if (dependencies) data.dependencies = dependencies;
  if (keywords && keywords.length) data.keywords = keywords;
  if (datePublished) data.datePublished = datePublished;
  if (dateModified) data.dateModified = dateModified;
  data.image = Array.isArray(resolvedImage) ? resolvedImage : [resolvedImage];
  const json = JSON.stringify(data);
  const schemaId = `techarticle-${canonicalUrl}`;
  React.useEffect(() => {
    if (typeof document === "undefined") return;
    document.querySelectorAll(`script[data-schema-id="${schemaId}"]`).forEach(n => n.remove());
    const script = document.createElement("script");
    script.type = "application/ld+json";
    script.dataset.schemaId = schemaId;
    script.textContent = json;
    document.head.appendChild(script);
    return () => script.remove();
  }, [json, schemaId]);
  return null;
};

<TechArticleSchema title={"Provider Parameters"} description={"The provider_params field lets you pass provider-specific parameters that aren't part of Eden AI's unified schema."} path="v3/expert-models/provider-parameters" articleSection="Expert Models" about={"AI API"} proficiencyLevel="Intermediate" keywords={["Eden AI", "AI API", "expert models", "multi-provider"]} datePublished="2026-05-06T00:00:00Z" dateModified="2026-05-07T00:00:00Z" />

The `provider_params` field lets you pass provider-specific parameters that aren't part of Eden AI's unified schema. This gives you access to advanced or niche options offered by individual providers without breaking the standard request format.

## How It Works

Add a `provider_params` object to any Universal AI request. The contents are forwarded directly to the provider alongside the standard `input` fields.

```json theme={null}
{
  "model": "{feature}/{subfeature}/{provider}[/{model}]",
  "input": {
    // Standard unified parameters
  },
  "provider_params": {
    // Provider-specific parameters passed through as-is
  }
}
```

## Basic Example

<CodeGroup>
  ```python Python theme={null}
  import requests

  url = "https://api.edenai.run/v3/universal-ai"
  headers = {
      "Authorization": "Bearer YOUR_API_KEY",
      "Content-Type": "application/json"
  }

  payload = {
      "model": "image/generation/openai/dall-e-3",
      "input": {
          "text": "A futuristic city at sunset, cyberpunk style"
      },
      "provider_params": {
          "quality": "hd",
          "style": "vivid"
      }
  }

  response = requests.post(url, headers=headers, json=payload)
  result = response.json()
  print(result)
  ```

  ```javascript JavaScript theme={null}
  const url = 'https://api.edenai.run/v3/universal-ai';
  const headers = {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  };

  const payload = {
    model: 'image/generation/openai/dall-e-3',
    input: {
      text: 'A futuristic city at sunset, cyberpunk style'
    },
    provider_params: {
      quality: 'hd',
      style: 'vivid'
    }
  };

  const response = await fetch(url, {
    method: 'POST',
    headers: headers,
    body: JSON.stringify(payload)
  });

  const result = await response.json();
  console.log(result);
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.edenai.run/v3/universal-ai \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "image/generation/openai/dall-e-3",
      "input": {
        "text": "A futuristic city at sunset, cyberpunk style"
      },
      "provider_params": {
        "quality": "hd",
        "style": "vivid"
      }
    }'
  ```
</CodeGroup>

## Common Use Cases

### Image Generation — Style and Quality

Control output style and quality for image generation:

<CodeGroup>
  ```python Python theme={null}
  import requests
  import base64
  from PIL import Image
  from io import BytesIO

  url = "https://api.edenai.run/v3/universal-ai"
  headers = {
      "Authorization": "Bearer YOUR_API_KEY",
      "Content-Type": "application/json"
  }

  payload = {
      "model": "image/generation/openai/dall-e-3",
      "input": {
          "num_images": 1,
          "text": "A watercolor painting of a mountain landscape",
          "resolution": "1792x1024"
      },
      "provider_params": {
          "style": "vivid",
          "quality": "hd" #Default is standard
      }
  }
  response = requests.post(url, headers=headers, json=payload)
  data = response.json()

  img_url = data["output"]["items"][0]["image_resource_url"]
  img_response = requests.get(img_url)
  img = Image.open(BytesIO(img_response.content))
  img.save('image.png')
  img.show()
  ```
</CodeGroup>

### Text to Speech — Voice Settings

Pass provider-specific voice parameters:

<CodeGroup>
  ```python Python theme={null}
  import requests

  url = "https://api.edenai.run/v3/universal-ai"
  headers = {
      "Authorization": "Bearer YOUR_API_KEY",
      "Content-Type": "application/json"
  }

  payload = {
      "model": "audio/tts/google/gemini-2.5-flash-tts",
      "input": {
        "voice": "achernar",
        "text": "Bonjour, j'adore la tourte.",
        "audio_format": "mp3"
      },
      "provider_params": {
        "language_code": "fr-FR",
        "prompt": "say this while crying"
      }
  }

  response = requests.post(url, headers=headers, json=payload)
  print(response.json())
  ```
</CodeGroup>

## Important Notes

<Note>
  * `provider_params` are **not validated** by Eden AI — they are passed directly to the provider. Invalid parameters may cause provider-side errors.
  * Available parameters vary by provider and feature. Refer to the provider's own documentation for supported options.
  * `provider_params` only apply to the specific provider in the `model` string. If you switch providers, you may need to update the parameters.
</Note>

## Next Steps

<CardGroup cols={2}>
  <Card title="Bring Your Own Key" icon="gear" href="/v3/general/byok">
    Use your own provider API keys for full control over costs and limits
  </Card>
</CardGroup>
