Brand profile
There is exactly one brand profile per workspace. It is not paginated and cannot be deleted, only updated. See Brand profile concepts for the field reference.
Retrieve
Section titled “Retrieve”GET /api/v1/brand_profilecurl https://app.nativpost.com/api/v1/brand_profile \ -H "Authorization: Bearer $NATIVPOST_API_KEY"Response:
{ "object": "brand_profile", "workspace_id": "org_2gK9c7dL3eX8fY1a", "voice": "practical, direct, no filler", "audience": "founders and product managers", "topics_to_lean_into": ["shipping speed", "distribution"], "topics_to_avoid": ["crypto"], "style_notes": "no em-dashes, sentences under 20 words", "example_posts": [ "We stopped writing weekly retros last quarter. Nothing broke." ], "updated_at": "2026-07-01T09:14:00Z"}Update
Section titled “Update”PATCH /api/v1/brand_profileSend only the fields you want to change. Arrays are replaced wholesale, not merged. To add a topic without removing existing ones, GET first, append, then PATCH.
curl -X PATCH https://app.nativpost.com/api/v1/brand_profile \ -H "Authorization: Bearer $NATIVPOST_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "voice": "warm and practical, never salesy", "topics_to_avoid": ["crypto", "gambling", "get-rich-quick"] }'Behaviour
Section titled “Behaviour”Updates take effect on the next generation request. In-flight campaigns already in generating finish with the previous profile.
Validation
Section titled “Validation”Field length limits are documented in Brand profile concepts. Requests that exceed them return 422 unprocessable_entity with the offending field in param.