A wrapper around the bynder REST API that supports more methods.
$ dotnet add package BynderSdk.ExtendedA .NET 9 SDK that wraps the Bynder REST API and File Commands endpoints.
Supports PAT and OAuth2 authentication, metadata retrieval, asset operations, and both upload pipelines (legacy S3 multipart and modern v7/file_cmds).
dotnet add package BynderSdk.Extended
/api/upload/endpoint → /api/upload/init → chunk upload → register → poll → /api/v4/media/save/{importId}./v7/file_cmds/upload/prepare → chunk → /finalise_api.var client = new BynderClient(new BynderClientOptions
{
BaseUri = new Uri("https://yourportal.getbynder.com"),
AccessToken = "<PAT>" // or configure OAuth block
});
var brands = await client.Metadata.GetBrandsAsync();
await using var stream = File.OpenRead("image.jpg");
var result = await client.Uploads.UploadAssetAsync(new LegacyAssetUploadRequest
{
Content = stream,
FileName = "image.jpg",
BrandId = "<brand-id>",
Title = "Image uploaded via BynderSdk.Extended"
});
var metapropertyResponse = await client.Metadata.CreateMetapropertyAsync(new MetapropertyCreateRequest("campaign", "Campaign", "select")
{
Labels = new Dictionary<string, string>
{
["en_US"] = "Campaign"
},
IsFilterable = true,
IsEditable = true,
Options = new[]
{
new MetapropertyCreateOption("launch", "Launch")
}
});
var metapropertyId = metapropertyResponse.Id ?? throw new InvalidOperationException("Metaproperty creation did not return an identifier.");
await client.Metadata.CreateMetapropertyOptionAsync(metapropertyId, new MetapropertyOptionCreateRequest("blue", "Blue")
{
Labels = new Dictionary<string, string>
{
["en_US"] = "Blue"
},
IsSelectable = true
});
await client.Metadata.CreateMetapropertyOptionsAsync(metapropertyId, new[]
{
new MetapropertyOptionCreateRequest("red", "Red") { IsSelectable = true },
new MetapropertyOptionCreateRequest("green", "Green") { IsSelectable = true }
});
Source, documentation, and integration tests live at:
https://github.com/rabehajaloic/bynder-sdk