> For the complete documentation index, see [llms.txt](https://docs.autocontentapi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.autocontentapi.com/code-samples/slide-decks/csharp/brand-with-project-id.md).

# Apply Brand Logo with projectId

Run the [brand logo slide deck recipe](/quick-start/slide-decks/brand-with-project-id.md) in C#. `projectId` pulls your saved brand package (logos) into the generated deck.

```csharp
// Requires .NET 7+ for raw string literals.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;

var token = Environment.GetEnvironmentVariable("AUTOCONTENT_TOKEN") ?? "YOUR_API_TOKEN";
var endpoint = "https://api.autocontentapi.com/content/Create";

var payloadJson = """
{
  "outputType": "slide_deck",
  "projects": ["YOUR_PROJECT_ID"],
  "topic": "Annual security posture update",
  "text": "Executive-level slides with KPIs, risks, mitigations, and a closing CTA.",
  "duration": "default",
  "slideDeckFormat": "detailed"
}
""";

using var client = new HttpClient();
using var request = new HttpRequestMessage(HttpMethod.Post, endpoint)
{
    Content = new StringContent(payloadJson, Encoding.UTF8, "application/json")
};
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);

var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();

if (!response.IsSuccessStatusCode)
{
    Console.Error.WriteLine("Request failed: " + (int)response.StatusCode + " " + response.ReasonPhrase);
    Console.Error.WriteLine(body);
    Environment.Exit(1);
}

Console.WriteLine("Slide deck request accepted:");
Console.WriteLine(body);
```

Set `YOUR_API_TOKEN` (or `AUTOCONTENT_TOKEN`) and `YOUR_PROJECT_ID` before running.
