Skip to content

devopsarr/overseerr-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go API client for overseerr

This is the documentation for the Overseerr API backend.

Two primary authentication methods are supported:

  • Cookie Authentication: A valid sign-in to the /auth/plex or /auth/local will generate a valid authentication cookie.
  • API Key Authentication: Sign-in is also possible by passing an X-Api-Key header along with a valid API Key generated by Overseerr.

Overview

This API client was generated by the OpenAPI Generator project. By using the OpenAPI-spec from a remote server, you can easily generate an API client.

  • API version: v1.33.2
  • Package version: 1.0.0
  • Generator version: 7.6.0
  • Build package: org.openapitools.codegen.languages.GoClientCodegen

Installation

Install the following dependencies:

go get github.com/stretchr/testify/assert
go get golang.org/x/net/context

Put the package under your project folder and add the following in import:

import overseerr "github.com/devopsarr/overseerr-go/overseerr"

To use a proxy, set the environment variable HTTP_PROXY:

os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")

Configuration of Server URL

Default configuration comes with Servers field that contains server objects as defined in the OpenAPI specification.

Select Server Configuration

For using other server than the one defined on index 0 set context value overseerr.ContextServerIndex of type int.

ctx := context.WithValue(context.Background(), overseerr.ContextServerIndex, 1)

Templated Server URL

Templated server URL is formatted using default variables from configuration or from context value overseerr.ContextServerVariables of type map[string]string.

ctx := context.WithValue(context.Background(), overseerr.ContextServerVariables, map[string]string{
	"basePath": "v2",
})

Note, enum values are always validated and all unused variables are silently ignored.

URLs Configuration per Operation

Each operation can use different server URL defined using OperationServers map in the Configuration. An operation is uniquely identified by "{classname}Service.{nickname}" string. Similar rules for overriding default operation server index and variables applies by using overseerr.ContextOperationServerIndices and overseerr.ContextOperationServerVariables context maps.

ctx := context.WithValue(context.Background(), overseerr.ContextOperationServerIndices, map[string]int{
	"{classname}Service.{nickname}": 2,
})
ctx = context.WithValue(context.Background(), overseerr.ContextOperationServerVariables, map[string]map[string]string{
	"{classname}Service.{nickname}": {
		"port": "8443",
	},
})

Documentation for API Endpoints

All URIs are relative to http://localhost:5055/api/v1

Class Method HTTP request Description
AuthAPI CreateAuthLocal Post /auth/local Sign in using a local account
AuthAPI CreateAuthLogout Post /auth/logout Sign out and clear session cookie
AuthAPI CreateAuthPlex Post /auth/plex Sign in using a Plex token
AuthAPI GetAuthMe Get /auth/me Get logged-in user
CollectionAPI GetCollectionByCollectionId Get /collection/{collectionId} Get collection details
IssueAPI CreateIssue Post /issue Create new issue
IssueAPI CreateIssueByStatus Post /issue/{issueId}/{status} Update an issue's status
IssueAPI CreateIssueComment Post /issue/{issueId}/comment Create a comment
IssueAPI DeleteIssue Delete /issue/{issueId} Delete issue
IssueAPI DeleteIssueComment Delete /issueComment/{commentId} Delete issue comment
IssueAPI GetIssue Get /issue Get all issues
IssueAPI GetIssueByIssueId Get /issue/{issueId} Get issue
IssueAPI GetIssueCommentByCommentId Get /issueComment/{commentId} Get issue comment
IssueAPI GetIssueCount Get /issue/count Gets issue counts
IssueAPI UpdateIssueComment Put /issueComment/{commentId} Update issue comment
MediaAPI CreateMediaByStatus Post /media/{mediaId}/{status} Update media status
MediaAPI DeleteMedia Delete /media/{mediaId} Delete media item
MediaAPI GetMedia Get /media Get media
MediaAPI GetMediaWatchData Get /media/{mediaId}/watch_data Get watch data
MoviesAPI GetMovieByMovieId Get /movie/{movieId} Get movie details
MoviesAPI GetMovieRatings Get /movie/{movieId}/ratings Get movie ratings
MoviesAPI GetMovieRecommendations Get /movie/{movieId}/recommendations Get recommended movies
MoviesAPI GetMovieSimilar Get /movie/{movieId}/similar Get similar movies
OtherAPI GetKeywordByKeywordId Get /keyword/{keywordId} Get keyword
OtherAPI ListWatchprovidersMovies Get /watchproviders/movies Get watch provider movies
OtherAPI ListWatchprovidersRegions Get /watchproviders/regions Get watch provider regions
OtherAPI ListWatchprovidersTv Get /watchproviders/tv Get watch provider series
PersonAPI GetPersonByPersonId Get /person/{personId} Get person details
PersonAPI GetPersonCombinedCredits Get /person/{personId}/combined_credits Get combined credits
PublicAPI GetStatus Get /status Get Overseerr status
PublicAPI GetStatusAppdata Get /status/appdata Get application data volume status
RequestAPI CreateRequest Post /request Create new request
RequestAPI CreateRequestByStatus Post /request/{requestId}/{status} Update a request's status
RequestAPI CreateRequestRetry Post /request/{requestId}/retry Retry failed request
RequestAPI DeleteRequest Delete /request/{requestId} Delete request
RequestAPI GetRequest Get /request Get all requests
RequestAPI GetRequestByRequestId Get /request/{requestId} Get MediaRequest
RequestAPI GetRequestCount Get /request/count Gets request counts
RequestAPI UpdateRequest Put /request/{requestId} Update MediaRequest
SearchAPI GetDiscoverKeywordMovies Get /discover/keyword/{keywordId}/movies Get movies from keyword
SearchAPI GetDiscoverMovies Get /discover/movies Discover movies
SearchAPI GetDiscoverMoviesGenreByGenreId Get /discover/movies/genre/{genreId} Discover movies by genre
SearchAPI GetDiscoverMoviesLanguageByLanguage Get /discover/movies/language/{language} Discover movies by original language
SearchAPI GetDiscoverMoviesStudioByStudioId Get /discover/movies/studio/{studioId} Discover movies by studio
SearchAPI GetDiscoverMoviesUpcoming Get /discover/movies/upcoming Upcoming movies
SearchAPI GetDiscoverTrending Get /discover/trending Trending movies and TV
SearchAPI GetDiscoverTv Get /discover/tv Discover TV shows
SearchAPI GetDiscoverTvGenreByGenreId Get /discover/tv/genre/{genreId} Discover TV shows by genre
SearchAPI GetDiscoverTvLanguageByLanguage Get /discover/tv/language/{language} Discover TV shows by original language
SearchAPI GetDiscoverTvNetworkByNetworkId Get /discover/tv/network/{networkId} Discover TV shows by network
SearchAPI GetDiscoverTvUpcoming Get /discover/tv/upcoming Discover Upcoming TV shows
SearchAPI GetDiscoverWatchlist Get /discover/watchlist Get the Plex watchlist.
SearchAPI GetSearch Get /search Search for movies, TV shows, or people
SearchAPI GetSearchCompany Get /search/company Search for companies
SearchAPI GetSearchKeyword Get /search/keyword Search for keywords
SearchAPI ListDiscoverGenresliderMovie Get /discover/genreslider/movie Get genre slider data for movies
SearchAPI ListDiscoverGenresliderTv Get /discover/genreslider/tv Get genre slider data for TV series
ServiceAPI GetServiceRadarrByRadarrId Get /service/radarr/{radarrId} Get Radarr server quality profiles and root folders
ServiceAPI GetServiceSonarrBySonarrId Get /service/sonarr/{sonarrId} Get Sonarr server quality profiles and root folders
ServiceAPI ListServiceRadarr Get /service/radarr Get non-sensitive Radarr server list
ServiceAPI ListServiceSonarr Get /service/sonarr Get non-sensitive Sonarr server list
ServiceAPI ListServiceSonarrLookupByTmdbId Get /service/sonarr/lookup/{tmdbId} Get series from Sonarr
SettingsAPI CreateCacheFlush Post /settings/cache/{cacheId}/flush Flush a specific cache
SettingsAPI CreateDiscover Post /settings/discover Batch update all sliders.
SettingsAPI CreateDiscoverAdd Post /settings/discover/add Add a new slider
SettingsAPI CreateInitialize Post /settings/initialize Initialize application
SettingsAPI CreateJobsCancel Post /settings/jobs/{jobId}/cancel Cancel a specific job
SettingsAPI CreateJobsRun Post /settings/jobs/{jobId}/run Invoke a specific job
SettingsAPI CreateJobsSchedule Post /settings/jobs/{jobId}/schedule Modify job schedule
SettingsAPI CreateMain Post /settings/main Update main settings
SettingsAPI CreateMainRegenerate Post /settings/main/regenerate Get main settings with newly-generated API key
SettingsAPI CreateNotificationsDiscord Post /settings/notifications/discord Update Discord notification settings
SettingsAPI CreateNotificationsEmail Post /settings/notifications/email Update email notification settings
SettingsAPI CreateNotificationsGotify Post /settings/notifications/gotify Update Gotify notification settings
SettingsAPI CreateNotificationsLunasea Post /settings/notifications/lunasea Update LunaSea notification settings
SettingsAPI CreateNotificationsPushbullet Post /settings/notifications/pushbullet Update Pushbullet notification settings
SettingsAPI CreateNotificationsPushover Post /settings/notifications/pushover Update Pushover notification settings
SettingsAPI CreateNotificationsSlack Post /settings/notifications/slack Update Slack notification settings
SettingsAPI CreateNotificationsTelegram Post /settings/notifications/telegram Update Telegram notification settings
SettingsAPI CreateNotificationsWebhook Post /settings/notifications/webhook Update webhook notification settings
SettingsAPI CreateNotificationsWebpush Post /settings/notifications/webpush Update Web Push notification settings
SettingsAPI CreatePlex Post /settings/plex Update Plex settings
SettingsAPI CreatePlexSync Post /settings/plex/sync Start full Plex library scan
SettingsAPI CreateRadarr Post /settings/radarr Create Radarr instance
SettingsAPI CreateSonarr Post /settings/sonarr Create Sonarr instance
SettingsAPI CreateTautulli Post /settings/tautulli Update Tautulli settings
SettingsAPI DeleteDiscover Delete /settings/discover/{sliderId} Delete slider by ID
SettingsAPI DeleteRadarr Delete /settings/radarr/{radarrId} Delete Radarr instance
SettingsAPI DeleteSonarr Delete /settings/sonarr/{sonarrId} Delete Sonarr instance
SettingsAPI GetAbout Get /settings/about Get server stats
SettingsAPI GetCache Get /settings/cache Get a list of active caches
SettingsAPI GetDiscoverReset Get /settings/discover/reset Reset all discover sliders
SettingsAPI GetMain Get /settings/main Get main settings
SettingsAPI GetNotificationsDiscord Get /settings/notifications/discord Get Discord notification settings
SettingsAPI GetNotificationsEmail Get /settings/notifications/email Get email notification settings
SettingsAPI GetNotificationsGotify Get /settings/notifications/gotify Get Gotify notification settings
SettingsAPI GetNotificationsLunasea Get /settings/notifications/lunasea Get LunaSea notification settings
SettingsAPI GetNotificationsPushbullet Get /settings/notifications/pushbullet Get Pushbullet notification settings
SettingsAPI GetNotificationsPushover Get /settings/notifications/pushover Get Pushover notification settings
SettingsAPI GetNotificationsSlack Get /settings/notifications/slack Get Slack notification settings
SettingsAPI GetNotificationsTelegram Get /settings/notifications/telegram Get Telegram notification settings
SettingsAPI GetNotificationsWebhook Get /settings/notifications/webhook Get webhook notification settings
SettingsAPI GetNotificationsWebpush Get /settings/notifications/webpush Get Web Push notification settings
SettingsAPI GetPlex Get /settings/plex Get Plex settings
SettingsAPI GetPlexSync Get /settings/plex/sync Get status of full Plex library scan
SettingsAPI GetPublic Get /settings/public Get public settings
SettingsAPI GetTautulli Get /settings/tautulli Get Tautulli settings
SettingsAPI ListDiscover Get /settings/discover Get all discover sliders
SettingsAPI ListJobs Get /settings/jobs Get scheduled jobs
SettingsAPI ListLogs Get /settings/logs Returns logs
SettingsAPI ListPlexDevicesServers Get /settings/plex/devices/servers Gets the user's available Plex servers
SettingsAPI ListPlexLibrary Get /settings/plex/library Get Plex libraries
SettingsAPI ListPlexUsers Get /settings/plex/users Get Plex users
SettingsAPI ListRadarr Get /settings/radarr Get Radarr settings
SettingsAPI ListRadarrProfiles Get /settings/radarr/{radarrId}/profiles Get available Radarr profiles
SettingsAPI ListSonarr Get /settings/sonarr Get Sonarr settings
SettingsAPI TestNotificationsDiscord Post /settings/notifications/discord/test Test Discord settings
SettingsAPI TestNotificationsEmail Post /settings/notifications/email/test Test email settings
SettingsAPI TestNotificationsGotify Post /settings/notifications/gotify/test Test Gotify settings
SettingsAPI TestNotificationsLunasea Post /settings/notifications/lunasea/test Test LunaSea settings
SettingsAPI TestNotificationsPushbullet Post /settings/notifications/pushbullet/test Test Pushbullet settings
SettingsAPI TestNotificationsPushover Post /settings/notifications/pushover/test Test Pushover settings
SettingsAPI TestNotificationsSlack Post /settings/notifications/slack/test Test Slack settings
SettingsAPI TestNotificationsTelegram Post /settings/notifications/telegram/test Test Telegram settings
SettingsAPI TestNotificationsWebhook Post /settings/notifications/webhook/test Test webhook settings
SettingsAPI TestNotificationsWebpush Post /settings/notifications/webpush/test Test Web Push settings
SettingsAPI TestRadarr Post /settings/radarr/test Test Radarr configuration
SettingsAPI TestSonarr Post /settings/sonarr/test Test Sonarr configuration
SettingsAPI UpdateDiscover Put /settings/discover/{sliderId} Update a single slider
SettingsAPI UpdateRadarr Put /settings/radarr/{radarrId} Update Radarr instance
SettingsAPI UpdateSonarr Put /settings/sonarr/{sonarrId} Update Sonarr instance
TmdbAPI GetNetworkByNetworkId Get /network/{networkId} Get TV network details
TmdbAPI GetStudioByStudioId Get /studio/{studioId} Get movie studio details
TmdbAPI ListBackdrops Get /backdrops Get backdrops of trending items
TmdbAPI ListGenresMovie Get /genres/movie Get list of official TMDB movie genres
TmdbAPI ListGenresTv Get /genres/tv Get list of official TMDB movie genres
TmdbAPI ListLanguages Get /languages Languages supported by TMDB
TmdbAPI ListRegions Get /regions Regions supported by TMDB
TvAPI GetTvByTvId Get /tv/{tvId} Get TV details
TvAPI GetTvRatings Get /tv/{tvId}/ratings Get TV ratings
TvAPI GetTvRecommendations Get /tv/{tvId}/recommendations Get recommended TV series
TvAPI GetTvSeasonBySeasonId Get /tv/{tvId}/season/{seasonId} Get season details and episode list
TvAPI GetTvSimilar Get /tv/{tvId}/similar Get similar TV series
UsersAPI CreateAuthResetPassword Post /auth/reset-password Send a reset password email
UsersAPI CreateAuthResetPasswordByGuid Post /auth/reset-password/{guid} Reset the password for a user
UsersAPI CreateUser Post /user Create new user
UsersAPI CreateUserImportFromPlex Post /user/import-from-plex Import all users from Plex
UsersAPI CreateUserRegisterPushSubscription Post /user/registerPushSubscription Register a web push /user/registerPushSubscription
UsersAPI CreateUserSettingsMain Post /user/{userId}/settings/main Update general settings for a user
UsersAPI CreateUserSettingsNotifications Post /user/{userId}/settings/notifications Update notification settings for a user
UsersAPI CreateUserSettingsPassword Post /user/{userId}/settings/password Update password for a user
UsersAPI CreateUserSettingsPermissions Post /user/{userId}/settings/permissions Update permission settings for a user
UsersAPI DeleteUser Delete /user/{userId} Delete user by ID
UsersAPI GetUser Get /user Get all users
UsersAPI GetUserByUserId Get /user/{userId} Get user by ID
UsersAPI GetUserQuota Get /user/{userId}/quota Get quotas for a specific user
UsersAPI GetUserRequests Get /user/{userId}/requests Get requests for a specific user
UsersAPI GetUserSettingsMain Get /user/{userId}/settings/main Get general settings for a user
UsersAPI GetUserSettingsNotifications Get /user/{userId}/settings/notifications Get notification settings for a user
UsersAPI GetUserSettingsPassword Get /user/{userId}/settings/password Get password page informatiom
UsersAPI GetUserSettingsPermissions Get /user/{userId}/settings/permissions Get permission settings for a user
UsersAPI GetUserWatchData Get /user/{userId}/watch_data Get watch data
UsersAPI GetUserWatchlist Get /user/{userId}/watchlist Get the Plex watchlist for a specific user
UsersAPI PutUser Put /user Update batch of users
UsersAPI UpdateUser Put /user/{userId} Update a user by user ID

Documentation For Models

Documentation For Authorization

Authentication schemes defined for the API:

cookieAuth

  • Type: API key
  • API key parameter name: connect.sid
  • Location:

Note, each API key must be added to a map of map[string]APIKey where the key is: connect.sid and passed in as the auth context for each request.

Example

auth := context.WithValue(
		context.Background(),
		overseerr.ContextAPIKeys,
		map[string]overseerr.APIKey{
			"connect.sid": {Key: "API_KEY_STRING"},
		},
	)
r, err := client.Service.Operation(auth, args)

apiKey

  • Type: API key
  • API key parameter name: X-Api-Key
  • Location: HTTP header

Note, each API key must be added to a map of map[string]APIKey where the key is: X-Api-Key and passed in as the auth context for each request.

Example

auth := context.WithValue(
		context.Background(),
		overseerr.ContextAPIKeys,
		map[string]overseerr.APIKey{
			"X-Api-Key": {Key: "API_KEY_STRING"},
		},
	)
r, err := client.Service.Operation(auth, args)

Documentation for Utility Methods

Due to the fact that model structure members are all pointers, this package contains a number of utility functions to easily obtain pointers to values of basic types. Each of these functions takes a value of the given basic type and returns a pointer to it:

  • PtrBool
  • PtrInt
  • PtrInt32
  • PtrInt64
  • PtrFloat
  • PtrFloat32
  • PtrFloat64
  • PtrString
  • PtrTime

Author