Charthop profile-tab API
The profile-tab API from Charthop — 7 operation(s) for profile-tab.
The profile-tab API from Charthop — 7 operation(s) for profile-tab.
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/charthop-profile-tab-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
description: REST API for ChartHop
version: V1.0.0
title: ChartHop access Profile Tab API
contact:
name: ChartHop
url: https://www.charthop.com
email: support@charthop.com
servers:
- url: https://localhost
- url: http://localhost
tags:
- name: profile-tab
paths:
/v1/org/{orgId}/profile-tab:
get:
tags:
- profile-tab
summary: Return all profile tabs in the organization paginated
operationId: findProfileTabs
parameters:
- name: orgId
in: path
description: Org identifier (either id or slug)
required: true
schema:
type: string
- name: status
in: query
description: Status to filter by
required: false
schema:
type: string
enum:
- ACTIVE
- INACTIVE
- name: from
in: query
description: Content id to start paginating from
required: false
schema:
type: string
- name: limit
in: query
description: Number of results to return
required: false
schema:
type: integer
format: int32
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ResultsProfileTab'
'400':
description: bad request
'401':
description: not authorized
'404':
description: not found
post:
tags:
- profile-tab
summary: Create a profile tab
operationId: createProfileTab
parameters:
- name: orgId
in: path
description: Org identifier (either id or slug)
required: true
schema:
type: string
responses:
'201':
description: created
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileTab'
'400':
description: invalid data
'401':
description: not authorized
'403':
description: permission denied
'404':
description: org not found
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateProfileTab'
description: Profile tab data to create
required: true
/v1/org/{orgId}/profile-tab/job/{jobId}:
get:
tags:
- profile-tab
summary: Return all profile tabs applicable to a particular job
operationId: findProfileTabsForJob
parameters:
- name: orgId
in: path
description: Org identifier (either id or slug)
required: true
schema:
type: string
- name: jobId
in: path
description: Job id
required: true
schema:
type: string
- name: date
in: query
description: Date
required: false
schema:
type: string
format: date
- name: fields
in: query
description: Return profile tabs that contain particular fields (comma-separated)
required: false
schema:
type: string
- name: formIds
in: query
description: Return profile tabs that contain particular formIds (comma-separated)
required: false
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ResultsProfileTabSummary'
'400':
description: bad request
'401':
description: not authorized
'404':
description: not found
/v1/org/{orgId}/profile-tab/job/{jobId}/profile-tab/{tabId}:
get:
tags:
- profile-tab
summary: Fetch and evaluate the content of a particular profile tab id, relative to a particular job
operationId: evaluateProfileTabForJob
parameters:
- name: orgId
in: path
description: Org identifier (either id or slug)
required: true
schema:
type: string
- name: jobId
in: path
description: Job id
required: true
schema:
type: string
- name: tabId
in: path
description: Profile tab id
required: true
schema:
type: string
- name: date
in: query
description: Date
required: false
schema:
type: string
format: date
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileTabSummary'
'400':
description: bad request
'401':
description: not authorized
'404':
description: not found
/v1/org/{orgId}/profile-tab/person/{personId}:
get:
tags:
- profile-tab
summary: Return all profile tabs applicable to a particular person
operationId: findProfileTabsForPerson
parameters:
- name: orgId
in: path
description: Org identifier (either id or slug)
required: true
schema:
type: string
- name: personId
in: path
description: Person id
required: true
schema:
type: string
- name: date
in: query
description: Date
required: false
schema:
type: string
format: date
- name: fields
in: query
description: Return profile tabs that contain particular fields (comma-separated)
required: false
schema:
type: string
- name: formIds
in: query
description: Return profile tabs that contain particular formIds (comma-separated)
required: false
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ResultsProfileTabSummary'
'400':
description: bad request
'401':
description: not authorized
'404':
description: not found
/v1/org/{orgId}/profile-tab/person/{personId}/profile-tab/{tabId}:
get:
tags:
- profile-tab
summary: Fetch and evaluate the content of a particular profile tab id, relative to a particular person
operationId: evaluateProfileTabForPerson
parameters:
- name: orgId
in: path
description: Org identifier (either id or slug)
required: true
schema:
type: string
- name: personId
in: path
description: Person id
required: true
schema:
type: string
- name: tabId
in: path
description: Profile tab id
required: true
schema:
type: string
- name: date
in: query
description: Date
required: false
schema:
type: string
format: date
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileTabSummary'
'400':
description: bad request
'401':
description: not authorized
'404':
description: not found
/v1/org/{orgId}/profile-tab/person/{personId}/profile-tab/{tabId}/history:
get:
tags:
- profile-tab
summary: Evaluate the history (in the form of various cards) on a particular profile tab id, relative to a particular person
operationId: findProfileTabHistory
parameters:
- name: orgId
in: path
description: Org identifier (either id or slug)
required: true
schema:
type: string
- name: personId
in: path
description: Person id
required: true
schema:
type: string
- name: tabId
in: path
description: Profile tab id
required: true
schema:
type: string
- name: from
in: query
description: Search backwards in time from timestamp
required: false
schema:
type: string
- name: limit
in: query
description: Number of results to return
required: false
schema:
type: integer
format: int32
- name: returnAccess
in: query
description: 'Return access information -- pass a list of actions to check, for example: create,update,delete'
required: false
schema:
type: string
- name: format
in: query
description: Data format to use; default is json, can also use json-extended or json-readable
required: false
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ResultsProfileTabResponseCard'
'400':
description: bad request
'401':
description: not authorized
'404':
description: not found
/v1/org/{orgId}/profile-tab/{profileTabId}:
get:
tags:
- profile-tab
summary: Return a particular profile tab by id
operationId: getProfileTab
parameters:
- name: orgId
in: path
description: Org identifier (either id or slug)
required: true
schema:
type: string
- name: profileTabId
in: path
description: Content id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileTab'
'400':
description: bad request
'404':
description: not found
patch:
tags:
- profile-tab
summary: Update an existing profile tab
operationId: updateProfileTab
parameters:
- name: orgId
in: path
description: Org identifier (either id or slug)
required: true
schema:
type: string
- name: profileTabId
in: path
description: Profile tab id
required: true
schema:
type: string
responses:
'204':
description: updated
'400':
description: invalid data
'401':
description: not authorized
'403':
description: permission denied
'404':
description: not found
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateProfileTab'
description: Profile tab data to update
required: true
delete:
tags:
- profile-tab
summary: Delete a profile tab
operationId: deleteProfileTab
parameters:
- name: orgId
in: path
description: Org identifier (either id or slug)
required: true
schema:
type: string
- name: profileTabId
in: path
description: Profile tab id
required: true
schema:
type: string
responses:
'204':
description: deleted
'400':
description: invalid data
'401':
description: not authorized
'403':
description: permission denied
'404':
description: not found
components:
schemas:
Money:
type: object
required:
- amount
- currency
properties:
amount:
type: number
currency:
type: string
places:
type: integer
format: int32
JobRelationship:
type: object
required:
- jobId
- type
properties:
jobId:
type: string
description: destination job id
example: 5887a7718f138b6a2a0041a7
type:
type: string
description: type of relationship
enum:
- MANAGER
- DIRECT
- INDIRECT_MANAGER
- INDIRECT
- NONE
StockGrant:
type: object
required:
- id
- stock
- date
- shares
- price
- type
- vestSchedule
properties:
id:
type: string
description: unique identifier of grant
stock:
type: string
description: ticker symbol of this stock
example: GOOG
date:
type: string
format: date
description: date of grant
vestStartDate:
type: string
format: date
description: vesting start date of grant
expireDate:
type: string
format: date
description: expiration date of grant
shares:
type: number
description: number of shares granted
price:
type: number
description: per share strike price
type:
type: string
description: type of grant
enum:
- ISO
- NSO
- RSU
- SAR
- PERFORMANCE_SHARES
- PHANTOM_STOCK
- RSA
vestSchedule:
type: string
description: vesting schedule
originalPrice:
type: number
description: original per share value of stock (grant price at time of issue)
currentPrice:
type: number
description: current per share value of stock
vestedShares:
type: number
description: current number of shares vested
vestedSharesNextYear:
type: number
description: number of shares vested one year from today
vestedSharesByDate:
type: object
description: number of shares vested, by future date
additionalProperties:
type: number
vestEndDate:
type: string
format: date
description: vesting end date
cancelDate:
type: string
format: date
description: cancellation date
terminationDate:
type: string
format: date
description: termination date — vesting freezes on this date when the holder separates
lastExercisableDate:
type: string
format: date
description: last date on which vested shares can be exercised; after this the grant is forfeited
details:
type: string
description: details of the grant (arbitrary text)
description:
type: string
description: human-readable description of vesting schedule
ShareAccess:
type: object
required:
- access
properties:
access:
type: string
description: access permission level
enum:
- NONE
- LIMITED_READ
- LIMITED_WRITE
- STANDARD_READ
- STANDARD_WRITE
- COMPENSATION_READ
- FULL_READ
- COMP_PLANNING_PARTICIPANT
- COMPENSATION_WRITE
- WRITE
- COMPENSATION_OWNER
- OWNER
userId:
type: string
description: user id
example: 5887a7718f138b6a2a0041a7
groupId:
type: string
description: group id
example: 5887a7718f138b6a2a0041a7
fields:
type: string
description: fields
example: name,image,title
LayoutButton:
type: object
required:
- url
- label
properties:
url:
type: string
label:
type: string
ResultsAccess:
type: object
required:
- allowed
properties:
ids:
type: array
uniqueItems: true
items:
type: string
example: 588f7ee98f138b19220041a7
allowed:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/AccessAction'
ProfileTabSummary:
type: object
required:
- id
- label
- isBuiltin
properties:
id:
type: string
example: 588f7ee98f138b19220041a7
label:
type: string
labelTr:
$ref: '#/components/schemas/Translations'
isBuiltin:
type: boolean
isSensitive:
type: boolean
blocks:
type: array
items:
$ref: '#/components/schemas/Block'
layout:
$ref: '#/components/schemas/Layout'
PartialJob:
type: object
properties:
jobId:
type: string
description: globally unique job id
example: 588f7ee98f138b19220041a7
orgId:
type: string
description: parent organization id
example: 588f7ee98f138b19220041a7
snapshotId:
type: string
description: snapshot that this job belongs to
example: 588f7ee98f138b19220041a7
title:
type: string
description: job title
example: Senior Engineer
minItems: 1
maxItems: 160
comp:
description: compensation
$ref: '#/components/schemas/Comp'
sensitive:
type: string
description: view sensitive of the job while open
enum:
- GLOBAL
- ORG
- SENSITIVE
- PERSONAL
- MANAGER
- HIGH
- PRIVATE
relationships:
type: array
description: relationship to other jobs
uniqueItems: true
items:
$ref: '#/components/schemas/JobRelationship'
groupIds:
type: array
description: groups that this job is a member of
uniqueItems: true
items:
type: string
example: 588f7ee98f138b19220041a7
groupIdsByType:
type: object
description: groups that this job is a member of, mapped by group type id
additionalProperties:
type: array
uniqueItems: true
items:
type: string
example: 588f7ee98f138b19220041a7
placement:
type: string
description: guidance on placement
enum:
- NORMAL
- ASSISTANT
employment:
type: string
description: employment status
enum:
- FULL
- PART
- TEMP
- CONTRACT
- INTERN
- EXPAT
state:
type: string
description: current state - whether the job is open, filled, or has someone departed or hired
enum:
- OPEN
- FILLED
- DEPART
- START
fields:
type: object
description: fields containing custom data
additionalProperties:
type: object
fieldDates:
type: object
description: dates of the field data
additionalProperties:
type: string
format: date
fieldsProposed:
type: object
description: proposed values for fields
additionalProperties:
type: object
createDate:
type: string
format: date
description: job creation date
startDate:
type: string
format: date
description: for empty jobs, expected start date - for filled jobs, confirmed start date
startDatePlanned:
type: string
format: date
description: expected start date whether job is open or has been filled - doesn't change when job is filled
personStartDate:
type: string
format: date
description: if personId is present, the first day of that person in the org after the latest departure (if any)
personEndDate:
type: string
format: date
description: if personId is present and the person is departing, the last day of that person in the org
personJobStartDate:
type: string
format: date
description: if personId is present, the first day of that person in the job
personIdDate:
type: string
format: date
description: if personId is present, the first day that the personId actually filled the job
personJobEndDate:
type: string
format: date
description: if personId is present and the person is departing or moving out, the last day of that person in the job
personId:
type: string
description: the person holding this job -- either currently in the job, or upcoming announced hire
example: 588f7ee98f138b19220041a7
backfillPersonId:
type: string
description: the person who most recently held the job, who this represents a backfill for
example: 588f7ee98f138b19220041a7
jobCodeId:
type: string
description: the ID of the job code for this job
example: 588f7ee98f138b19220041a7
backfillByJobId:
type: string
description: another job which is planned to be a backfill for this job
example: 588f7ee98f138b19220041a7
upcoming:
type: array
description: if a HIRE, MOVE, or DEPART are upcoming, the details on those changes - should only include id, type, date, announceDate, personId
items:
$ref: '#/components/schemas/UpcomingChange'
scenarioId:
type: string
description: scenario that the job was created in (null if job is on primary timeline)
example: 588f7ee98f138b19220041a7
scenarioChangedId:
type: string
description: scenario that the job was changed in (null if job is on primary timeline)
example: 588f7ee98f138b19220041a7
fetchState:
type: string
description: scenario that the job was changed in (null if job is on primary timeline)
enum:
- PERSON
- STRUCTURE
- ALL
AccessAction:
type: object
required:
- action
properties:
action:
type: string
fields:
type: array
uniqueItems: true
items:
type: string
types:
type: array
uniqueItems: true
items:
type: string
FormResponseAnswer:
type: object
required:
- id
- questionId
properties:
id:
type: string
example: 588f7ee98f138b19220041a7
questionId:
type: string
example: 588f7ee98f138b19220041a7
value:
type: object
type:
type: string
enum:
- ADDRESS
- AUDIO
- BOOLEAN
- COMP
- COMPOUND
- COMP_BAND
- CONTACTS
- CURRENCY
- DATE
- DECIMAL
- ELAPSED_DAYS
- ELAPSED_MONTHS
- ELAPSED_YEARS
- EMAIL
- ENUM
- ENUM_EXPR
- ENUM_MULTI
- ENUM_SCALE
- EXPR
- FILE
- GROUP
- GROUPS
- GROUP_ASSIGNMENTS
- GROUP_TYPE
- GROUP_POSITION_ASSIGNMENTS
- IMAGE
- INTEGER
- JOB
- JOB_CODE
- JOBS
- JOB_TIER
- LIST
- MAP
- MONEY
- NAME
- OBJECT
- PAY_INTERVAL
- PERCENT
- PERSON
- PERSONS
- PHONE
- STOCKGRANT
- STRING
- TABLE_REF
- TEXT
- TIMEOFF
- TIMESTAMP
- TRACKED_GROUP
- URL
- USER
- VARIABLE_COMP
- VARIABLE_COMPS
plural:
type: string
enum:
- SINGLE
- LIST
- SET
Attribution:
type: object
properties:
principalUserId:
type: string
example: 588f7ee98f138b19220041a7
agentUserIds:
type: array
items:
type: string
example: 588f7ee98f138b19220041a7
eventId:
type: string
example: 588f7ee98f138b19220041a7
aiChatId:
type: string
example: 588f7ee98f138b19220041a7
aiToolUseId:
type: string
channel:
type: string
enum:
- WEB
- MOBILE
- SLACK
- TEAMS
- MCP
LayoutRow:
type: object
required:
- columns
- format
properties:
columns:
type: array
items:
$ref: '#/components/schemas/LayoutColumn'
format:
type: string
ProfileTab:
type: object
required:
- id
- orgId
- label
- blocks
- status
properties:
id:
type: string
description: globally unique id
example: 588f7ee98f138b19220041a7
orgId:
type: string
description: parent organization id
example: 588f7ee98f138b19220041a7
label:
type: string
description: human-readable name of profile tab
example: Performance
labelTr:
description: translations for the human-readable label
$ref: '#/components/schemas/Translations'
blocks:
type: array
description: ordered list of blocks contained by profile tab
items:
$ref: '#/components/schemas/Block'
layout:
description: block layout configuration
$ref: '#/components/schemas/Layout'
status:
type: string
description: status of the profile tab
enum:
- ACTIVE
- INACTIVE
targetFilter:
type: string
description: filter that controls on which profiles this tab will appear
readFilter:
type: string
description: filter that controls which viewers can read this profile tab. The profileTab:read permission, if present, overrides this filter
sort:
type: integer
format: int32
description: sort order
createId:
type: string
description: created by user id
example: 588f7ee98f138b19220041a7
createBehalfId:
type: string
description: created on behalf of user id
example: 588f7ee98f138b19220041a7
createAttribution:
$ref: '#/components/schemas/Attribution'
createAt:
type: string
description: created timestamp
example: '2017-01-24T13:57:52Z'
updateId:
type: string
description: last updated by user id
example: 588f7ee98f138b19220041a7
updateBehalfId:
type: string
description: last updated on behalf of user id
example: 588f7ee98f138b19220041a7
updateAttribution:
$ref: '#/components/schemas/Attribution'
updateAt:
type: string
description: last updated timestamp
example: '2017-01-24T13:57:52Z'
deleteId:
type: string
description: deleted by user id
example: 588f7ee98f138b19220041a7
deleteBehalfId:
type: string
description: deleted on behalf of user id
example: 588f7ee98f138b19220041a7
deleteAttribution:
$ref: '#/components/schemas/Attribution'
deleteAt:
type: string
description: deleted timestamp
example: '2017-01-24T13:57:52Z'
TimeOff:
type: object
required:
- id
- startDate
- endDate
properties:
id:
type: string
description: unique id of a time off request
startDate:
type: string
format: date
description: start date of time off, inclusive
endDate:
type: string
format: date
description: end date of time off, inclusive
days:
type: number
description: number of days used
hours:
type: number
description: number of hours used
type:
type: string
description: type of time off
note:
type: string
description: notes on the time off
approval:
type: string
description: approval status of the time off
enum:
- APPROVED
- PENDING
- CANCELLED
- REJECTED
- SUPERSEDED
Change:
type: object
required:
- id
- jobId
- orgId
- type
- date
- status
properties:
id:
type: string
description: unique id
example: 588f7ee98f138b19220041a7
jobId:
type: string
description: job id
example: 588f7ee98f138b19220041a7
orgId:
type: string
description: parent organization id
example: 588f7ee98f138b19220041a7
scenarioId:
type: string
description: scenario that this change belongs to
example: 588f7ee98f138b19220041a7
mergeScenarioId:
type: string
description: scenario that this change was merged in from, if the change originally came from a scenario
example: 588f7ee98f138b19220041a7
parentChangeId:
type: string
description: change that this change emanates from
example: 588f7ee98f138b19220041a7
priorStateChangeId:
type: string
description: connects this change to a previous version if itself that you might want to roll back to because of bad edits
example: 588f7ee98f138b19220041a7
type:
type: string
description: type of change
enum:
- HIRE
- DEPART
- MOVE
- UPCOMING
- CREATE
- UPDATE
- DATA
- DELETE
- RELATE
- BACKFILL
date:
type: string
format: date
description: date of change
sort:
type: integer
format: int64
description: sort order of change
announceDate:
type: string
format: date
description: for HIRE and DEPART changes, the announce date, if the announce date is different from the date of change
status:
type: string
description: whether the change is active or not
enum:
- ACTIVE
- STRUCK
- CONFLICT
- INACTIVE
- PROPOSED
personId:
type: string
description: the id of the person involved, or empty if no person attached to job
example: 588f7ee98f138b19220041a7
otherJobId:
type: string
description: for MOVE changes, the id of the job moving from; for RELATE changes, the id of the other job
example: 588f7ee98f138b19220041a7
otherPersonId:
type: string
description: for MOVE changes, the id of the other person involved in the move
example: 588f7ee98f138b19220041a7
departType:
type: string
description: for DEPART changes, the type of departure
enum:
- VOLUNTARY
- INVOLUNTARY
departRegret:
type: string
description: for DEPART changes, whether the departure was regrettable
enum:
- REGRET
- NONREGRET
promotionType:
type: string
description: if it's a promotion or a demotion
enum:
- PROMOTION
- DEMOTION
- NONE
reason:
# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/charthop/refs/heads/main/openapi/charthop-profile-tab-api-openapi.yml