# OpenAI Plugin Base URL Structure: How to Access Plugin Endpoints

> Discover the OpenAI plugin base URL structure api.openai.com/v1/plugins/<PLUGIN_ID>/<PATH> to access plugin endpoints efficiently. Learn how plugin IDs and paths work.

- Repository: [OpenAI/plugins](https://github.com/openai/plugins)
- Tags: how-to-guide
- Published: 2026-07-05

---

**OpenAI plugins expose HTTP APIs through the standardized pattern `https://api.openai.com/v1/plugins/<PLUGIN_ID>/<PATH>`, where the plugin ID is declared in the manifest and the path maps to plugin-specific functionality.**

The `openai/plugins` repository implements a consistent routing convention for all plugin integrations. Understanding this base URL structure is essential for developers calling plugin endpoints directly from their applications.

## Understanding the Base URL Components

Every plugin endpoint in the OpenAI ecosystem follows a strict hierarchical pattern:

```

https://api.openai.com/v1/plugins/<PLUGIN_ID>/<PATH>

```

Breaking down each segment reveals the routing architecture:

- **`https://api.openai.com`** – The OpenAI service host that handles all API traffic.
- **`/v1`** – The versioned API root (currently v1).
- **`/plugins`** – Reserved segment that routes requests to the plugin namespace.
- **`<PLUGIN_ID>`** – The plugin's identifier as declared in its manifest file (`plugins/**/.codex-plugin/plugin.json`).
- **`<PATH>`** – The relative path defined by the plugin's own specification (e.g., `search`, `metadata`, or `completion`).

## Constructing Plugin Endpoint URLs

To build a valid request URL, combine these components sequentially. For example, the SERP API plugin constructs its search endpoint as:

```

https://api.openai.com/v1/plugins/serp-api/search

```

This pattern remains consistent across all plugins in the repository, including Zoom, NVIDIA, and other integrations. According to the API architecture documentation, the internal routing code appends `/v1` and the plugin's name to the service host, then dispatches to the specific path handler defined in the plugin's specification.

## Code Examples for Accessing Plugin Endpoints

The following examples demonstrate how to call a plugin endpoint using the standard base URL structure.

### cURL Request

```bash
curl -X GET \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  "https://api.openai.com/v1/plugins/serp-api/search?q=OpenAI"

```

### Python (Requests)

```python
import os
import requests

base_url = "https://api.openai.com/v1/plugins"
plugin_id = "serp-api"
endpoint = f"{base_url}/{plugin_id}/search"

resp = requests.get(
    endpoint,
    params={"q": "OpenAI"},
    headers={"Authorization": f"Bearer {os.getenv('OPENAI_API_KEY')}"}
)

print(resp.json())

```

### Node.js (Axios)

```javascript
const axios = require('axios');

const pluginId = 'serp-api';
const url = `https://api.openai.com/v1/plugins/${pluginId}/search`;

axios.get(url, {
  params: { q: 'OpenAI' },
  headers: { Authorization: `Bearer ${process.env.OPENAI_API_KEY}` }
})
.then(r => console.log(r.data))
.catch(e => console.error(e));

```

## Source File References

The base URL conventions are defined across several key locations in the `openai/plugins` repository:

| File | Role |
|------|------|
| `plugins/**/.codex-plugin/plugin.json` | Declares the **plugin identifier** (`name`) used in the URL path. |
| `plugins/**/README.md` | Provides per-plugin documentation with concrete endpoint examples. |
| `plugins/**/skills/**/references/api-architecture.md` | Explains the base URL and routing conventions for specific plugin families. |
| `plugins/**/skills/**/scripts/**/*.py` | Contains example scripts that construct and call the standardized URLs. |

These files collectively define and illustrate the base URL structure that all OpenAI plugins follow.

## Summary

- OpenAI plugins use the standardized base URL pattern: `https://api.openai.com/v1/plugins/<PLUGIN_ID>/<PATH>`.
- The **`<PLUGIN_ID>`** is defined in `plugins/**/.codex-plugin/plugin.json` under the `name` field.
- The **`<PATH>`** segment maps to plugin-specific functionality like `search` or `metadata`.
- Authentication requires passing your OpenAI API key in the `Authorization: Bearer` header.
- This structure is consistent across all plugins, including SERP API, Zoom, and NVIDIA integrations.

## Frequently Asked Questions

### What is the exact base URL format for OpenAI plugins?

The exact format is `https://api.openai.com/v1/plugins/<PLUGIN_ID>/<PATH>`. This structure routes requests through OpenAI's API gateway to the specific plugin instance and endpoint handler.

### Where is the plugin ID defined in the repository?

The plugin ID is declared in the [`plugin.json`](https://github.com/openai/plugins/blob/main/plugin.json) file located at `plugins/<name>/.codex-plugin/plugin.json`. The `name` field in this JSON manifest becomes the `<PLUGIN_ID>` segment in the URL path.

### Do all OpenAI plugins use the same base URL structure?

Yes. According to the OpenAI Plugin specification, all plugins follow the same URL schema. Whether accessing the SERP API, Zoom, or NVIDIA plugins, the base URL structure remains consistent, differing only in the plugin ID and specific paths.

### How do I handle authentication when calling plugin endpoints?

Pass your OpenAI API key in the `Authorization` header using the format `Authorization: Bearer $OPENAI_API_KEY`. This authenticates your request to the OpenAI API gateway, which then routes to the appropriate plugin endpoint.