Skip to main content

Overview

Available APIs

All APIs are REST API based on JSON API.

Available

Partner API v2

This is the second version of the API created for Bloomflow clients and partners. It is built in a modernized format allowing access to more information, compared to API v1, and more importantly, to edit, update and delete information.

Deprecated

Open Public API

This does not require any authentication and can be used to retrieve basic platform information.

Partner API v1

This is the first version of the API created for Bloomflow clients and partners. Its main purpose is to access platform, user, and program information.

Partner API v2

Base URL

All Partner API v2 endpoints are served from the domain of the Bloomflow platform you were given access to:

https://<your-platform-domain>/api/partners/v2

info

The examples below use example.com as a placeholder for <your-platform-domain>. On the reference pages, set the same domain once in the Servers field displayed above the endpoints before using Try it out.

Authentication

Bearer token in request header (Bearer XXXXXXXXXXXXX)

info

Token: Provided by Bloomflow Structure: Based on JSON API standards

Available Objects

  • Users
  • Programs (aka Challenges)
  • Juries
  • Steps
  • Teams
  • Team Memberships
  • Communities
  • Participations
  • Participation Tags
  • Questions
  • Answers
  • Projects
  • Announcements
  • Trackers
  • Messages
  • Webinars
  • Hubs (Catalogs and Kanbans)
  • Rewarded Events

Filter Capabilities

Overview

The filtering logic described below applies to all Partner API v2 endpoints that are in a GET list mode (index).

It allows the API user to use the objects and relationships attributes to filter the elements to be returned by the API response.

Additionally, the filters can be used along with specific logic elements called predicates in order to refine the filter.

Filterable Elements

Any direct attribute described in the response content of GET [INDEX] request type can be used as a filterable element.

For example, the locale attribute can be used as a filter on the GET User list request.

If available, it is possible to use relationship elements to filter. For example, the id attribute of the relationship step can be used as a filter on the GET Participations list request.

Available Predicates

Predicates should be used inside a specific URL parameter in the API request: ?q[*predicate]

For example: https://example.com/api/partners/v2/object?q[attribute_eq]=value

PredicateDescriptionNotes
*_eqEqual
*_not_eqNot equal
*_matchesMatches with LIKEExample: q[email_matches]=%@gmail.com
*_does_not_matchDoes not match with LIKE
*_matches_anyMatches any
*_matches_allMatches all
*_does_not_match_anyDoes not match any
*_ltLess than
*_lteqLess than or equal
*_gtGreater than
*_gteqGreater than or equal
*_presentNot null and not emptyOnly compatible with string columns. Example: q[name_present]=1 SQL: col is not null AND col != ''
*_blankIs null or emptySQL: col is null OR col = ''
*_nullIs null
*_not_nullIs not null
*_inMatch any values in arrayExample: q[name_in][]=Alice&q[name_in][]=Bob
*_not_inMatch none of values in array
*_lt_anyLess than anySQL: col < value1 OR col < value2
*_lteq_anyLess than or equal to any
*_gt_anyGreater than any
*_gteq_anyGreater than or equal to any
*_lt_allLess than allSQL: col < value1 AND col < value2
*_lteq_allLess than or equal to all
*_gt_allGreater than all
*_gteq_allGreater than or equal to all
*_not_eq_allNone of values in a set
*_startStarts withSQL: col LIKE 'value%'
*_not_startDoes not start with
*_start_anyStarts with any of
*_start_allStarts with all of
*_not_start_anyDoes not start with any of
*_not_start_allDoes not start with all of
*_endEnds withSQL: col LIKE '%value'
*_not_endDoes not end with
*_end_anyEnds with any of
*_end_allEnds with all of
*_not_end_anyDoes not end with any of
*_not_end_allDoes not end with all of
*_contContains valueUses LIKE
*_cont_anyContains any of
*_cont_allContains all of
*_not_contDoes not contain
*_not_cont_anyDoes not contain any of
*_not_cont_allDoes not contain all of
*_i_contContains value (case insensitive)Uses ILIKE
*_i_cont_anyContains any of values (case insensitive)
*_i_cont_allContains all of values (case insensitive)
*_not_i_contDoes not contain (case insensitive)
*_not_i_cont_anyDoes not contain any of values (case insensitive)
*_not_i_cont_allDoes not contain all of values (case insensitive)
*_trueIs true
*_falseIs false

Sorting

Results from GET list endpoints can be sorted using the q[s] parameter.

Format: q[s]=property+direction

DirectionDescription
ascAscending
descDescending
info

Example: https://example.com/api/partners/v2/object?q[s]=updated_at+desc will return results sorted by updated_at in descending order.

Pagination

For responses containing a list of elements, results are returned in multiple pages.

The pagination can be configured according to the following dedicated page filters:

FilterDescriptionExample
pageDefines the current pagepage=3
perDefines the number of elements returned per page. Defaults to 100; values must be between 1 and 1000 (out-of-range values fall back to the default).per=50
info

Example: https://example.com/api/partners/v2/object?page=3&per=50 will return page 3 containing 50 elements.