RunWhen profile API
The profile API from RunWhen — 2 operation(s) for profile.
The profile API from RunWhen — 2 operation(s) for profile.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/runwhen-profile-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: papi alert-query-proxy Profile API
description: RunWhen Platform API
version: 2.0.0
servers:
- url: https://papi.beta.runwhen.com
description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: profile
paths:
/accounts/profile/{user_id}:
get:
tags:
- profile
summary: Get Profile
description: 'Retrieve a user''s public profile by user ID.
Intentionally readable by any authenticated user — profiles contain only
public-facing fields (avatar, bio, LinkedIn). Write/delete operations
enforce ownership.'
operationId: get_profile_accounts_profile__user_id__get
parameters:
- name: user_id
in: path
required: true
schema:
type: integer
title: User Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
put:
tags:
- profile
summary: Update Profile
description: 'Update a profile. Creates the profile if it doesn''t exist (PUT-as-create).
Users can only edit their own profile.'
operationId: update_profile_accounts_profile__user_id__put
parameters:
- name: user_id
in: path
required: true
schema:
type: integer
title: User Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileUpdateRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
delete:
tags:
- profile
summary: Delete Profile
description: Delete a profile. Only the profile owner or superuser can delete.
operationId: delete_profile_accounts_profile__user_id__delete
parameters:
- name: user_id
in: path
required: true
schema:
type: integer
title: User Id
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/accounts/sync-user-account:
post:
tags:
- profile
summary: Sync User Account
description: 'Reconcile workspace permissions for a user.
When workspace admins invite a user by email before that user has an
account, the permission row stores a placeholder email. This endpoint
links those placeholder rows to the actual user record.
Only the target user or staff may trigger this.'
operationId: sync_user_account_accounts_sync_user_account_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SyncUserAccountRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
additionalProperties: true
type: object
title: Response Sync User Account Accounts Sync User Account Post
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
components:
schemas:
ProfileResponse:
properties:
id:
type: integer
title: Id
user:
type: integer
title: User
publicEmail:
anyOf:
- type: string
- type: 'null'
title: Publicemail
publicFullName:
anyOf:
- type: string
- type: 'null'
title: Publicfullname
publicLinkedinUrl:
anyOf:
- type: string
- type: 'null'
title: Publiclinkedinurl
publicAvatarUrl:
anyOf:
- type: string
- type: 'null'
title: Publicavatarurl
publicBio:
anyOf:
- type: string
- type: 'null'
title: Publicbio
optOutPublicGroup:
type: boolean
title: Optoutpublicgroup
default: false
type: object
required:
- id
- user
title: ProfileResponse
description: Profile response matching Django's ProfileSerializer (all fields, camelCase).
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
SyncUserAccountRequest:
properties:
username:
type: string
title: Username
type: object
required:
- username
title: SyncUserAccountRequest
description: Request body matching Django's sync-user-account endpoint.
ProfileUpdateRequest:
properties:
publicEmail:
anyOf:
- type: string
- type: 'null'
title: Publicemail
publicFullName:
anyOf:
- type: string
- type: 'null'
title: Publicfullname
publicLinkedinUrl:
anyOf:
- type: string
- type: 'null'
title: Publiclinkedinurl
publicAvatarUrl:
anyOf:
- type: string
- type: 'null'
title: Publicavatarurl
publicBio:
anyOf:
- type: string
- type: 'null'
title: Publicbio
optOutPublicGroup:
anyOf:
- type: boolean
- type: 'null'
title: Optoutpublicgroup
type: object
title: ProfileUpdateRequest
description: Profile update request — all fields optional for partial updates.
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: JWT access token from /api/v3/token/ or Auth0 login