# Overview

With the Gemini API, you can leverage Google's latest generative models. After getting familiar with the general functionalities offered by the API, try a quickstart in your preferred language to start developing.

**Note:** If you're new to generative AI models, visit the [Concepts Guide](https://ai.google.dev/docs/concepts?hl=en), or start prototyping prompts in [Google AI Studio](https://makersuite.google.com/?hl=en).

## Models

Gemini is a family of multimodal generative AI models developed by Google. Gemini models can accept text and images (depending on the model variant you choose) in a prompt and output a text response. Legacy PaLM models accept plain text and output text responses.

For more detailed model information, see the [Models](https://ai.google.dev/models?hl=en) page. You can also use the [`list_models`](https://ai.google.dev/api/python/google/generativeai/list_models?hl=en) method to list all available models, and then use the [`get_model`](https://ai.google.dev/api/python/google/generativeai/get_model?hl=en) method to get the metadata of a specific model.

## Prompt Data and Design

Specific Gemini models accept both image and text data as inputs. This capability provides many additional possibilities for content generation, data analysis, and problem-solving. You'll need to consider some limitations and requirements, including the general input token limits of the model you are using. Refer to [Gemini models](https://ai.google.dev/models/gemini?hl=en) for model specific token limitations.

### Image Requirements for Prompts

Prompts using image data are subject to the following limitations and requirements:

- Images must be one of the following image data MIME types:

   - PNG - image/png
   - JPEG - image/jpeg
   - WEBP - image/webp
   - HEIC - image/heic
   - HEIF - image/heif

- Up to 16 images

- The entire prompt (including images and text) may not exceed 4MB

- There are no specific limits on the number of pixels in an image; however, larger images are scaled down to fit within a maximum resolution (3072 x 3072) while preserving their original aspect ratio.

When using images in prompts, follow these recommendations for the best results:

- Prompts containing a single image tend to produce better results.

### Prompt Design and Text Input

Creating effective prompts (prompt engineering) is a combination of art and science. For guidance on how to prompt, refer to the [Prompting Guide](https://ai.google.dev/docs/prompt_best_practices?hl=en); for different prompting approaches, refer to the [Prompt 101](https://ai.google.dev/docs/concepts?hl=en#prompt_design_101) guide.

## Generate Content

With the Gemini API, you can use text and image data for prompting, depending on the model variant you use. For example, you can use text prompts to generate text through the `gemini-pro` model, and prompt the `gemini-pro-vision` model with text and image data. This section provides simple code examples for each approach. For a detailed example covering all parameters, see the [`generateGenerate`](https://ai.google.dev/api/rest/v1beta/models/generateContent?hl=en) API reference documentation.

## Embeddings

The embeddings service in the Gemini API generates advanced embeddings for words, phrases, and sentences. The resulting embeddings can then be used for NLP tasks such as semantic search, text classification, and clustering, among others. See the [Embeddings Guide](https://ai.google.dev/docs/embeddings_guide?hl=en) for an introduction to what embeddings are and some key use cases for the embeddings service to help you get started.

## Next Steps

- See the [Google AI Studio Quickstart](https://ai.google.dev/tutorials/ai-studio_quickstart?hl=en) to get started with the Google AI Studio interface.
- Check out the [Python](https://ai.google.dev/tutorials/python_quickstart?hl=en), [Go](https://ai.google.dev/tutorials/go_quickstart?hl=en), or [Node.js](https://ai.google.dev/tutorials/node_quickstart?hl=en) quickstarts to try server-side access to the Gemini API.
- Refer to the [Web Quickstart](https://ai.google.dev/tutorials/web_quickstart?hl=en) to start building web applications.
- Follow the [Swift Quickstart](https://ai.google.dev/tutorials/swift_quickstart?hl=en) or [Android Quickstart](https://ai.google.dev/tutorials/android_quickstart?hl=en) to start building mobile applications.
- If you're already a Google Cloud user (or are looking to use Gemini on Vertex to leverage the powerful Google Cloud ecosystem), see [Generative AI on Vertex AI](https://cloud.google.com/vertex-ai/docs/generative-ai/learn/overview?hl=en) for details.
