API Subscriptions
Manage API access and authentication with subscriptions
API Subscriptions control which clients can access your APIs and define authentication parameters.
Configuration
apiVersion: weik.io/v1alpha1
kind: ApiSubscription
metadata:
name: mobile-app-subscription
description: Subscription for mobile application
spec:
apis:
- users-api
- orders-api
isActive: true
parameters:
key: "your-api-key"
Properties
| Property | Type | Required | Description |
|---|---|---|---|
| apis | string[] | Yes | List of API names this subscription grants access to |
| isActive | bool | No | Whether the subscription is active (default: true) |
| parameters | object | No | Authentication and configuration parameters |
| additionalHeaders | object | No | HTTP headers to include in requests |
| variables | object | No | Variables specific to this subscription |
Authentication Examples
API Key
apiVersion: weik.io/v1alpha1
kind: ApiSubscription
metadata:
name: my-apikey
category: apikey
spec:
apis:
- petstore
isActive: true
parameters:
key: "NGWdkceFPYyXmaH15jS3K0uCsk7KnnPA"
Basic Authentication
apiVersion: weik.io/v1alpha1
kind: ApiSubscription
metadata:
name: dev-basicauth
category: basic
spec:
apis:
- petstore
isActive: true
parameters:
username: "hello"
password: "test123"
OpenID Connect
apiVersion: weik.io/v1alpha1
kind: ApiSubscription
metadata:
name: oidc-aad
category: oidc
spec:
apis:
- petstore
isActive: true
parameters:
issuer: "https://sts.windows.net/37e55da6-fb62-456a-8d8e-f6f5b649092f/"
audience: "api://f2f62be5-bc3a-4786-b42c-209a4e0f22bb"
additionalHeaders:
custom-source: 'entra'
anotherdata: 'More header data for this subscription'
Anonymous
apiVersion: weik.io/v1alpha1
kind: ApiSubscription
metadata:
name: anonymous-apis
category: anonymous
spec:
apis:
- webhook
isActive: true
Additional Headers
Headers defined in additionalHeaders are automatically included in all requests made under this subscription:
apiVersion: weik.io/v1alpha1
kind: ApiSubscription
metadata:
name: partner-subscription
spec:
apis:
- partner-api
isActive: true
additionalHeaders:
X-Partner-Id: partner-123
X-Request-Source: partner-portal
Variables
Use variables for dynamic configuration:
apiVersion: weik.io/v1alpha1
kind: ApiSubscription
metadata:
name: partner-subscription
spec:
apis:
- partner-api
isActive: true
parameters:
apiKey: "{{apiKey}}"
variables:
apiKey: "{{sys:PARTNER_API_KEY}}"
See Using Variables for more details.
What’s Next
- API Management Overview - Learn about APIM
- Data APIs - Generate REST APIs from databases
- ApiSubscription Configuration Reference