api-party
nuxt-api-party

Securely connect to any API with a server proxy and dynamic composables

Nuxt API Party module

Nuxt API Party

Nuxt module to talk to APIs you don't control, with generated type-safe composables and a server proxy that keeps credentials off the client.

Features

Setup

npx nuxt module add api-party

Basic Usage

Add Nuxt API Party to your Nuxt configuration and describe your first API under the apiParty module option:

// `nuxt.config.ts`
export default defineNuxtConfig({
  modules: ['nuxt-api-party'],

  apiParty: {
    endpoints: {
      jsonPlaceholder: {
        url: process.env.JSON_PLACEHOLDER_API_BASE_URL!,
        // Global headers sent with each request
        headers: {
          Authorization: `Bearer ${process.env.JSON_PLACEHOLDER_API_TOKEN}`
        }
      }
    }
  }
})

If you were to call your API jsonPlaceholder, the generated composables are:

Use these composables in your templates or components:

<script setup lang="ts">
const { data, refresh, error, status, clear } = await useJsonPlaceholderData('posts/1')
</script>

<template>
  <h1>{{ data?.title }}</h1>
  <pre>{{ JSON.stringify(data, undefined, 2) }}</pre>
</template>

!TIP You can connect as many APIs as you want, just add them to the endpoints object.

The documentation covers the OpenAPI integration, caching and every module option.

💻 Development

  1. Clone this repository
  2. Enable Corepack using corepack enable
  3. Install dependencies using pnpm install
  4. Run pnpm run dev:prepare
  5. Start development server using pnpm run dev

Credits

  • Dennis Baum for sponsoring the initial version of this package.
  • Konkon for his logo pixel art.

License

MIT License © 2022-PRESENT Johann Schopplich and © 2025-PRESENT Matthew Messinger