Create Configurations with Custom Resources via the API
Create custom sources, destinations, processors, and extensions with the Bindplane API.
This guide uses POST /v1/apply with JSON to create Bindplane resources that store OpenTelemetry component YAML and a Bindplane configuration that references them by name.
Prerequisites
Access to the Bindplane API (Growth and Enterprise)
An API key sent on every request as
X-Bindplane-Api-KeyYour server base URL (cloud:
https://app.bindplane.com, or your self-hosted URL)
Step 1 - Define custom sources and destinations
Define Bindplane resources whose spec.parameters include telemetry_types and configuration. The configuration value should contain YAML for a single OTel component (receiver, exporter, and so on).
Custom source (hostmetrics receiver)
apiVersion: bindplane.observiq.com/v1
kind: Source
metadata:
id: hostmetrics-id
name: hostmetrics
spec:
type: custom
parameters:
- name: telemetry_types
value:
- Metrics
- name: configuration
value: |-
hostmetrics:
collection_interval: 1m0s
scrapers:
filesystem:
metrics:
system.filesystem.utilization:
enabled: true
load:
metrics: null
memory:
metrics:
system.memory.utilization:
enabled: true
network:
metrics:
system.network.conntrack.count:
enabled: true
system.network.conntrack.max:
enabled: true
Identifiers metadata.id and metadata.name identify this source. The configuration you build later references the resource by metadata.name (hostmetrics here). id is commonly a unique string or GUID; what matters for linking is a stable name.
Parameters
telemetry_typescontrols which pipelines Bindplane adds this receiver to. Hostmetrics produces metrics only, so useMetrics.configurationis the YAML for that one component. Do not paste a full collector config here, only the receiver block.
Custom destination (OTLP exporter)

When a telemetry type is present from a source in the configuration, Bindplane attaches this destination to pipelines for those signal types. The configuration block is the OTLP exporter YAML only.
Step 2 - Apply resources with the API
Bindplane resources are often edited as YAML, but /v1/apply expects a JSON body: an object with a resources array.
Example body that creates the destination and source above:
Save that object to a file (for example resources.json) and send it:
Set BINDPLANE_URL to your base URL (no trailing slash), for example https://app.bindplane.com.
Step 3 - Create and apply a configuration
A configuration lists which sources and destinations to use. Under each entry, id is local to that configuration; name must match the metadata.name of the source or destination resource.
YAML
Set metadata.labels.platform to the OS where collectors run: macos, linux, or windows.
JSON for /v1/apply

Save the JSON to a file such as configuration.json and apply it:
After apply, roll out the configuration to collectors from the Bindplane UI if you do not have automatic rollouts enabled.
Processors
Custom processors follow the same telemetry_types and configuration pattern. Use the spec.type value your account expects for custom processors (often custom or custom:1); keep new resources consistent with your existing YAML exports.
Standalone processor resource (YAML)
JSON for /v1/apply
Attach a processor to a configuration
Processors are not declared as a separate top-level list on the configuration. Attach them under a source or destination:
Under a source, the processor runs after that source in the pipeline.
Under a destination, the processor runs before that destination.
Processor after source
Processor before destination
With multiple processors in one list, Bindplane runs the first entry first.
Extensions
Define extensions inline on the configuration spec with type: custom and the same parameter shape.
Convert the configuration to the same {"resources":[...]} JSON shape and POST it to /v1/apply if you manage it through the API.
Next Steps
Last updated
Was this helpful?