GET /api/public/v1/user-profiles/lookup performs a reverse-lookup by platform identity and returns the canonical profile.
A 404 means the user has no Open Notes profile yet. The server creates one lazily on the first request that references them — you can proceed to Step 3 using the platform user ID directly in requested_by.
Request
Query parameters
| Parameter | Required | Description |
|---|---|---|
platform | yes | Integration platform identifier, e.g. discourse |
platform_user_id | yes | The user’s ID on your platform (as a string) |
provider_scope | yes | Your community-server slug from opennotes_platform_community_server_id |
X-Adapter-* headers are required on every call. See Authentication for the full header reference.
Response
HTTP 200 — profile found:What to pass to the next step
Capturedata.id — this is the Open Notes user_profile_id. You’ll need it in Step 3 as the requested_by field.
Reference implementation
The Discourse plugin performs this lookup inOpenNotes::UserMapper#fetch_profile:
CACHE_DURATION = 15 * 60) to avoid redundant lookups on every incoming post.
API reference
Full parameter and response schema:GET /api/public/v1/user-profiles/lookup under API Reference → User Profiles.
Next: Step 2 — Identify the community