---
title: "Save a person/company once (opt-in, encrypted at rest; up to 20); fill any form with profile_id"
method: POST
path: "/api/v1/profiles"
tags: ["Profiles & drafts"]
---

# Save a person/company once (opt-in, encrypted at rest; up to 20); fill any form with profile_id

`POST /api/v1/profiles`

## Request

- Base URL: `https://philforms.com`
- URL: `https://philforms.com/api/v1/profiles`
- Auth: HTTP bearer

## Request body

- object
  - `name` string, required
  - `data` object, required: Values — from a form's parameters or canonical keys (tin, last_name, address, …)
  - `form_id` string: The form the values came from
  - `kind` 'person' | 'business' | 'household': Default person
  - `relation` 'self' | 'spouse' | 'child' | 'mother' | 'father' | 'sibling' | 'employee' | 'other': Who this person is to you (default self). Only self profiles fill a form by themselves
  - `is_consented` boolean: Required true for another adult (spouse, parent, sibling, employee, other): they agreed to have their details kept (RA 10173)

## Response `201`

{ id, name, key, kind, relation, consented_at }

## Other responses

- `400`: Missing name or data, an unknown kind/relation, or another adult without is_consented
- `409`: 20 profiles already
- `413`: data over 200 KB

---

[API](https://skmtc.dev/philforms/apis/philforms-api.md) · [All operations](https://skmtc.dev/philforms/apis/philforms-api/llms.txt) · [OpenAPI document](https://skmtc.dev/philforms/apis/philforms-api/revisions/a43bf313729c?raw)
