---
title: "Upload Material"
method: POST
path: "/api/app-auto-gtm/outreach/materials"
tags: ["outreach"]
---

# Upload Material

`POST /api/app-auto-gtm/outreach/materials`

Upload a file into ONE project's library. Moderated the same way regardless.

``project_id`` is required (T-1069: materials are strictly project-scoped —
the uploading page always knows its project). ``ephemeral=true`` = a one-off
file attached inline from the inbox composer for a single reply — it does
NOT enter the project's materials library and is not AI-described.
``ephemeral=false`` (default) = a curated library material (``description``
is a note read by the autopilot agent; AI-drafted if blank).

## Cookies

- `ex_access` string, nullable
- `ex_org` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/explee/apis/explee-api.md) · [All operations](https://skmtc.dev/explee/apis/explee-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/explee/explee-api/revisions/f169bc6e9447/schema)
