FINOS Presence API
The Presence API from FINOS — 8 operation(s) for presence.
The Presence API from FINOS — 8 operation(s) for presence.
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/finos-presence-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:
version: 20.17.1
title: Pod Presence API
description: 'This document refers to Symphony API calls that do not need
encryption or decryption of content.
- sessionToken can be obtained by calling the
authenticationAPI on the symphony back end and the key manager
respectively. Refer to the methods described in authenticatorAPI.yaml.
- Actions are defined to be atomic, ie will succeed in their entirety
or fail and have changed nothing.
- If it returns a 40X status then it will have made no change to the
system even if ome subset of the request would have succeeded.
- If this contract cannot be met for any reason then this is an error
and the response code will be 50X.
'
servers:
- url: https://yourpodURL.symphony.com/pod
tags:
- name: Presence
paths:
/v1/presence/feed/create:
post:
summary: Create Presence status feed.
description: 'Create a new stream capturing presence status changes ("presence feed").
When read from, the feed will return the current presence status of company (pod) users
if it has changed since the last read.
Returns the ID of the presence feed to be used in subsequent read operations.
'
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
schema:
type: string
tags:
- Presence
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/StringId'
example:
id: c4dca251-8639-48db-a9d4-f387089e17cf
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: // Client error, see response body for further details.
'401':
description: 'Unauthorized: Invalid session token.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 401
message: Invalid session
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: The user lacks the required entitlement to perform this operation
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 500
message: // Server error, see response body for further details.
/v1/presence/feed/{feedId}/read:
get:
summary: Read a presence status feed.
description: 'Returns the current presence status of company (pod) users
if it has changed since the last read. Returns up to 500 records at a time.
'
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
schema:
type: string
- name: feedId
description: Presence feed ID.
in: path
required: true
schema:
type: string
tags:
- Presence
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/V2PresenceList'
example:
- category: AVAILABLE
userId: 14568529068038
timestamp: 1533928483800
- category: ON_THE_PHONE
userId: 974217539631
timestamp: 1503286226030
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: // Client error, see response body for further details.
'401':
description: 'Unauthorized: Invalid session token.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 401
message: Invalid session
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: The user lacks the required entitlement to perform this operation
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 500
message: // Server error, see response body for further details.
/v1/presence/feed/{feedId}/delete:
post:
summary: Delete a presence status feed.
description: 'Returns the ID of the deleted feed.
'
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
schema:
type: string
- name: feedId
description: Presence feed ID.
in: path
required: true
schema:
type: string
tags:
- Presence
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/StringId'
example:
id: c4dca251-8639-48db-a9d4-f387089e17cf
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: // Client error, see response body for further details.
'401':
description: 'Unauthorized: Invalid session token.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 401
message: Invalid session
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: The user lacks the required entitlement to perform this operation
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 500
message: // Server error, see response body for further details.
/v1/user/presence/register:
post:
summary: Register interest in a user's presence status
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
schema:
type: string
tags:
- Presence
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
example:
format: TEXT
message: OK
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: // Client error, see response body for further details.
'401':
description: 'Unauthorized: Invalid session token.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 401
message: Invalid session
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: The user lacks the required entitlement to perform this operation
'404':
description: 'Not Found: user id cannot be located.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: // Not Found. User id cannot be located. See response body for fruther details.
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 500
message: // Server error, see response body for further details.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserIdList'
description: List of (integer) User IDs of users whose presence to query
required: true
/v2/user/presence:
get:
summary: Get presence information about the requesting user.
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
schema:
type: string
tags:
- Presence
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/V2Presence'
example:
category: AVAILABLE
userId: 14568529068038
timestamp: 1533928483800
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: // Client error, see response body for further details.
'401':
description: 'Unauthorized: Invalid session token.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 401
message: Invalid session
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 500
message: // Server error, see response body for further details.
post:
summary: Set the presence of the requesting user.
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
schema:
type: string
- name: soft
description: 'If true, the user''s current status is taken into consideration. If the user is currently OFFLINE,
the user''s presence will still be OFFLINE, but the new presence will take effect when the
user comes online. If the user is currently online, the user''s activity state will be
applied to the presence if applicable. (e.g. if you are setting their presence to AVAILABLE,
but the user is currently idle, their status will be represented as AWAY)
'
in: query
required: false
schema:
type: boolean
tags:
- Presence
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/V2Presence'
example:
category: AWAY
userId: 14568529068038
timestamp: 1533928483800
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: // Client error, see response body for further details.
'401':
description: 'Unauthorized: Invalid session token.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 401
message: Invalid session
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 500
message: // Server error, see response body for further details.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/V2PresenceStatus'
required: true
/v3/user/{uid}/presence:
get:
summary: Get presence information about a particular user.
parameters:
- name: uid
description: 'User ID as a decimal integer
'
in: path
required: true
schema:
type: integer
format: int64
- name: local
description: 'If true, a local query will be performed and the presence will be
set to OFFLINE for users who are not local to the calling user''s
pod. If false or absent, then the presence of all local users and
the presence of all external users to whom the calling user is
connected will be queried.
For external users, a "presence interest" should be registered through
/v1/user/presence/register before querying for presence.
'
in: query
required: false
schema:
type: boolean
default: false
- name: sessionToken
description: Session authentication token.
in: header
required: true
schema:
type: string
tags:
- Presence
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/V2Presence'
example:
category: AVAILABLE
userId: 14568529068038
timestamp: 1533928483800
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: // Client error, see response body for further details.
'401':
description: 'Unauthorized: Invalid session token.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 401
message: Invalid session
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: The user lacks the required entitlement to perform this operation
'404':
description: 'Not Found: user id cannot be located.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: // Not Found. User id cannot be located. See response body for fruther details.
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 500
message: // Server error, see response body for further details.
/v2/users/presence:
get:
summary: Get presence information about all company (pod) users.
description: 'The returned data is taken from the in-memory cache for performance
reasons which means inactive users may be omitted from the response.
All non-inactive users WILL be returned and some inactive users MAY
be included. Any omitted user IS inactive.
Returned records are sorted by user ID, ascending.
This method is expensive. It pulls ALL records from the cache, sorts them and then only uses a subset.
For large numbers of users, this can be very inefficient both due to sorting
and due to the cache being distributed across many nodes.
Addiionally, there is the potential to miss users if they become active
after the page in which their user ID falls has already been read by the client.
To avoid this situation, a presence feed should be created (and optionally read from)
first to capture presence changes of users who get reactivated during a paged call to this endpoint.
'
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
schema:
type: string
- name: lastUserId
description: Last user ID retrieved. Used for paging; if provided, results will skip users with IDs less than this parameter.
in: query
required: false
schema:
type: integer
format: int64
- name: limit
description: Max number of records to return. If no value is provided, 1000 is the default. The maximum supported value is 5000.
in: query
required: false
schema:
type: integer
tags:
- Presence
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/V2PresenceList'
example:
- category: AVAILABLE
userId: 14568529068038
timestamp: 1533928483800
- category: OFFLINE
userId: 974217539631
timestamp: 1503286226030
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: // Client error, see response body for further details.
'401':
description: 'Unauthorized: Invalid session token.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 401
message: Invalid session
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: The user lacks the required entitlement to perform this operation
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 500
message: // Server error, see response body for further details.
/v3/user/presence:
post:
summary: Set presence information for a particular user.
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
schema:
type: string
- name: soft
description: 'If true, the user''s current status is taken into consideration. If the user is currently OFFLINE,
the user''s presence will still be OFFLINE, but the new presence will take effect when the
user comes online. If the user is currently online, the user''s activity state will be
applied to the presence if applicable. (e.g. if you are setting their presence to AVAILABLE,
but the user is currently idle, their status will be represented as AWAY)
'
in: query
required: false
schema:
type: boolean
tags:
- Presence
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/V2Presence'
example:
category: AVAILABLE
userId: 14568529068038
timestamp: 1533928483800
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: // Client error, see response body for further details.
'401':
description: 'Unauthorized: Invalid session token.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 401
message: Invalid session
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: The user lacks the required entitlement to perform this operation
'404':
description: 'Not Found: user id cannot be located.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: // Not Found. User id cannot be located. See response body for fruther details.
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 500
message: // Server error, see response body for further details.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/V2UserPresence'
required: true
components:
schemas:
Error:
type: object
properties:
code:
type: integer
format: int32
example: 401
message:
type: string
example: Invalid session
V2PresenceList:
type: array
items:
$ref: '#/components/schemas/V2Presence'
example:
- category: AVAILABLE
userId: 14568529068038
timestamp: 1533928483800
- category: OFFLINE
userId: 974217539631
timestamp: 1503286226030
V2PresenceStatus:
type: object
properties:
category:
type: string
description: "Presence status. Possible values are:\n - UNDEFINED\n - AVAILABLE\n - BUSY\n - DO_NOT_DISTURB\n - ON_THE_PHONE\n - BE_RIGHT_BACK\n - IN_A_MEETING\n - AWAY\n - OUT_OF_OFFICE\n - OFF_WORK\n - OFFLINE\n"
example: AWAY
required:
- category
V2Presence:
allOf:
- $ref: '#/components/schemas/V2UserPresence'
- type: object
properties:
timestamp:
type: integer
format: int64
description: The time, in milliseconds since Jan 1 1970, when the presence state was set.
example: 1533928483800
V2UserPresence:
allOf:
- $ref: '#/components/schemas/V2PresenceStatus'
- type: object
properties:
userId:
type: integer
format: int64
description: The ID of the user to whom the presence state relates.
example: 14568529068038
UserIdList:
type: array
items:
type: integer
format: int64
example:
- 7215545058313
- 7215545078461
StringId:
type: object
properties:
id:
type: string
example: xhGxbTcvTDK6EIMMrwdOrX___quztr2HdA
SuccessResponse:
type: object
properties:
format:
type: string
enum:
- TEXT
- XML
example: TEXT
message:
type: string
example: Success