New API Endpoint Available for Testing

Glimesh has started migrated to a new API because of major changes in the way result data is returned from the API. We’ve added pagination to all queries that return lists to improve performance on the app, and renamed several fields for consistency.

Timeline

The new API endpoint has already been introduced, however there are currently no plans to remove the old API endpoint. However we will be soon pointing all new developers to our new API only, and removing documentation relating to the older API as we continue to prove the new one out.

Using the New API

Using the new API is very easy. Simply point all requests to the new URL.

HTTP Endpoint: https://glimesh.tv/api/graph
WebSocket Endpoint: https://glimesh.tv/api/graph/websocket -- Work in Progress

This will give you full access to the new endpoints and features of the API.

What Changed?

Some changes are internal and do not affect the developer. However, the following changes will affect you:

  • The new API endpoint does not support a built-in graphical editor. This change was required to properly support CORS across the new API endpoint. We have a new tutorial about using your own editor here.
  • Query Complexity analysis has been added which will help us maintain API performance. You should not run into any limits with any possible queries (due to pagination), but if you do receive errors about query complexity, let us know so we can check it out!

  • The following fields have been added to the API.
    • Category
      • insertedAt: Creation time of the category.
      • updatedAt: When the category was last updated.
    • Channel
      • chatBgUrl : The URL of the channels chat background.
      • posterUrl: Image that is shown in place of the stream when the user is offline.
      • Streams: List of the streams the channel currently has (1). See pagination.
    • Channel Ban
      • id: The ID of the channel ban.
    • Channel Moderator
      • id: The ID of the channel moderator.
    • Stream
      • thumbnailUrl: The URL of the current thumbnail (stream snapshot)
    • User
      • allowGlimeshNewsletter: Does the user allow newsletters?
      • allowLiveSubscriptionEmails: Does the user allow “going live” emails?
      • channel: The user’s channel.
      • email: The user’s email address (scope protected).
      • followingLiveChannels: The channels that the user is following that are currently streaming.
      • insertedAt: When the user was inserted into the database.
        - showOnHomePage: Has the user enabled the selection to be on the homepage?
      • teamRole: The role the user has on the Glimesh Team (dev, design, GCT, etc)
      • updatedAt: The last time the user was modified.

  • The following are now paginated and no longer return every item in the collection at once. See pagination
    • Subcategories
    • Tags
    • Channels
    • Channel Bans
    • Channel Chat Messages
    • Channel Moderation Logs
    • Channel Streams
    • Channel Moderator List
    • Followers
    • Users
    • User Followers
    • User Following
    • User Following Live Channels

  • The following fields have been removed from the API. Some have been moved or had their names changed to a new field.
    • Channel
      • thumbnail: Moved to Stream as thumbnailUrl
      • Replaced hmackey and username as arguments. Added streamerId and streamerUsername
    • deleteMessage
      • Changed to deleteChatMessage
    • Emote Token
      • url: Use src instead.
    • Followers
      • Replaced streamerUsername and userUsername as arguments. Added streamerId and userId
    • Stream
      • avgChatters
      • avgViewers
      • countChatters
      • newSubscribers
      • resubSubscribers
      • subcategory: Moved to Channel.
      • thumbnail: Changed to thumbnailUrl.
    • User
      • avatar: Use avatarUrl instead.

This post was kindly written by @Mytho for our API docs and modified for the forum.

Support & Contact

If you have any questions about this change, or if you need help implementing them, please reach out to us in the #dev-questions channel on Discord or if you are not on Discord you can email me at luke@glimesh.tv

2 Likes