---
title: "Upload an opt-in form screenshot to IPFS"
method: POST
path: "/v1/dpp/opt-in-forms"
tags: ["DPP"]
---

# Upload an opt-in form screenshot to IPFS

`POST /v1/dpp/opt-in-forms`

## Request

- Base URL: `https://api.prod.keyban.io`
- URL: `https://api.prod.keyban.io/v1/dpp/opt-in-forms`
- Auth: API key in header `X-Api-Key`

Pins an opt-in form screenshot to IPFS and returns its content-addressed reference. The returned `uri` is stored as the reserved `opt_in_form` field in a passport `data` object so it is certified alongside the rest of the certificate.

## Request body

- OptInFormUploadDto
  - `filename` string, required
  - `mediaType` 'image/png' | 'image/jpeg' | 'image/webp', required
  - `content` string, base64, required

## Response `201`

Image pinned to IPFS

- OptInFormUploadResponseDto
  - `cid` string, required
  - `uri` string, required

---

[API](https://skmtc.dev/keyban/apis/keyban-rest-apis.md) · [All operations](https://skmtc.dev/keyban/apis/keyban-rest-apis/llms.txt) · [OpenAPI document](https://skmtc.dev/keyban/apis/keyban-rest-apis/revisions/0bb79a1da961?raw)
