Extend API with Plugins

Enhance your GraphQL and REST APIs with powerful plugins. Add authentication, storage, and system integrations to extend your API capabilities.

Plugin System • API Extensions • Custom Integrations

Transform Your APIs with Plugins

Start with basic GraphQL and REST APIs, then extend them with plugins for authentication, storage, and system integrations

Basic API

Standard CRUD operations

  • Basic GraphQL queries & mutations
  • Standard REST endpoints
  • Simple data operations
  • No authentication
  • No file storage

Extended API

Enhanced with plugins

  • JWT & OAuth authentication
  • File upload & storage
  • Email notifications
  • Rate limiting & security
  • Custom business logic

Plugin Categories

Extend your APIs with plugins across different categories

Authentication

  • • JWT token management
  • • OAuth 2.0 integration
  • • SAML authentication
  • • Multi-factor authentication
  • • Social login providers
Project-based or System-wide

Storage

  • • AWS S3 integration
  • • Google Cloud Storage
  • • Local file storage
  • • Image processing
  • • CDN integration
Per-project configuration

System Integration

  • • Email service providers
  • • Payment gateways
  • • Analytics tracking
  • • Webhook management
  • • Third-party APIs
System-wide or per-project

How Plugins Extend Your APIs

See how plugins transform your basic APIs into powerful, feature-rich endpoints

GraphQL API Extension

Before Plugin

type Product {
id: ID!
name: String!
price: Float!
}
type Query {
products: [Product!]!
}

After Plugin

type Product {
id: ID!
name: String!
price: Float!
image: String
createdBy: User!
}
type Query {
products: [Product!]!
myProducts: [Product!]!
}
type Mutation {
uploadProductImage(file: Upload!): String!
}

REST API Extension

Before Plugin

GET /api/products
POST /api/products
PUT /api/products/:id
DELETE /api/products/:id

After Plugin

GET /api/products
POST /api/products
PUT /api/products/:id
DELETE /api/products/:id
# New endpoints from plugins
POST /api/auth/login
POST /api/auth/register
POST /api/upload
GET /api/my-products
POST /api/send-email

Flexible Plugin Configuration

Configure plugins at project level or system-wide based on your needs

Project-based Plugins

Configure plugins specific to individual projects. Each project can have its own set of plugins and configurations.

  • • Project-specific authentication
  • • Custom storage configurations
  • • Project-level rate limiting
  • • Isolated plugin environments

System-wide Plugins

Configure plugins that apply to all projects in your system. Perfect for shared services and global configurations.

  • • Global authentication system
  • • Shared storage services
  • • System-wide monitoring
  • • Centralized logging
Extensible Plugin System

Unlimited Possibilities with Custom Plugins

Apito is designed to be infinitely extensible. Use community plugins for common needs or build your own custom plugins in any language. The possibilities are truly unlimited.

Popular Community Plugins

50+ plugins available
Security

Authentication

JWT, OAuth, SAML integration

15k+ downloads
Storage

File Storage

AWS S3, Google Cloud, local storage

12k+ downloads
Communication

Email Service

SendGrid, Mailgun, SMTP support

8k+ downloads
Data

Database Sync

Real-time data synchronization

6k+ downloads
Security

Rate Limiting

API throttling and protection

9k+ downloads
Performance

Caching

Redis, Memcached integration

11k+ downloads

Build Your Own Plugins

Create custom plugins in your favorite programming language. Our plugin SDK provides everything you need to extend Apito's functionality exactly how you want it.

Hot-reload plugin development
Sandboxed execution environment
Built-in plugin marketplace
Version management & rollbacks
Plugin dependency resolution
Real-time monitoring & logs

Supported Languages

🟨
JavaScript
Node.js runtime support
🔷
TypeScript
Full type safety
🐍
Python
AI/ML integrations
🐹
Go
High-performance plugins
🦀
Rust
System-level extensions
Java
Enterprise integrations

Simple Plugin Development

process-order-plugin.js
import
{ init, registerQuery, StringField, StringArg, IntArg } from '@apito-io/js-apito-plugin-sdk';
async function
main
() {
// Initialize plugin
const plugin = init('process-order-plugin', '1.0.0');
// Register order processing query
plugin.registerQuery('processOrder',
StringField('Process customer order'), {
'orderId': StringArg('Order ID'),
'amount': IntArg('Order amount')
}, processOrderResolver);
async function
processOrderResolver(context, args) {
// Process the order
const status = 'Order processed successfully';
return status + " - Order #" + args.orderId;
}
main().catch(console.error);
}

Ready to Extend Apito?

Join our community of developers building amazing plugins and extensions.