Skip to content

devopsarr/seerr-go

Repository files navigation

Go API client for seerr

This is the documentation for the Seerr 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 Seerr.

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: v3.3.0
  • Package version: 0.2.0
  • Generator version: 7.23.0
  • Build package: org.openapitools.codegen.languages.GoClientCodegen

Installation

Import the package in a go file in your project and run go mod tidy:

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

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 seerr.ContextServerIndex of type int.

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

Templated Server URL

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

ctx := context.WithValue(context.Background(), seerr.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 seerr.ContextOperationServerIndices and seerr.ContextOperationServerVariables context maps.

ctx := context.WithValue(context.Background(), seerr.ContextOperationServerIndices, map[string]int{
	"{classname}Service.{nickname}": 2,
})
ctx = context.WithValue(context.Background(), seerr.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 CreateAuthJellyfin Post /auth/jellyfin Sign in using a Jellyfin username and password
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
BlocklistAPI CreateBlacklist Post /blacklist Add media to blocklist
BlocklistAPI CreateBlocklist Post /blocklist Add media to blocklist
BlocklistAPI CreateBlocklistCollectionByCollectionId Post /blocklist/collection/{collectionId} Add collection to blocklist
BlocklistAPI DeleteBlacklist Delete /blacklist/{tmdbId} Remove media from blocklist
BlocklistAPI DeleteBlocklist Delete /blocklist/{tmdbId} Remove media from blocklist
BlocklistAPI DeleteBlocklistCollection Delete /blocklist/collection/{collectionId} Remove collection from blocklist
BlocklistAPI GetBlacklist Get /blacklist Returns blocklisted items
BlocklistAPI GetBlacklistByTmdbId Get /blacklist/{tmdbId} Get media from blocklist
BlocklistAPI GetBlocklist Get /blocklist Returns blocklisted items
BlocklistAPI GetBlocklistByTmdbId Get /blocklist/{tmdbId} Get media from blocklist
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 DeleteMediaFile Delete /media/{mediaId}/file Delete media file
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 GetMovieRatingscombined Get /movie/{movieId}/ratingscombined Get RT and IMDB movie ratings combined
MoviesAPI GetMovieRecommendations Get /movie/{movieId}/recommendations Get recommended movies
MoviesAPI GetMovieSimilar Get /movie/{movieId}/similar Get similar movies
OtherAPI GetCertificationsMovie Get /certifications/movie Get movie certifications
OtherAPI GetCertificationsTv Get /certifications/tv Get TV certifications
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
OverrideruleAPI CreateOverriderule Post /overrideRule Create override rule
OverrideruleAPI DeleteOverriderule Delete /overrideRule/{ruleId} Delete override rule by ID
OverrideruleAPI ListOverriderule Get /overrideRule Get override rules
OverrideruleAPI UpdateOverriderule Put /overrideRule/{ruleId} Update override rule
PersonAPI GetPersonByPersonId Get /person/{personId} Get person details
PersonAPI GetPersonCombinedCredits Get /person/{personId}/combined_credits Get combined credits
PublicAPI GetStatus Get /status Get Seerr 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 CreateCacheDnsFlush Post /settings/cache/dns/{dnsEntry}/flush Flush a specific DNS cache entry
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 CreateJellyfin Post /settings/jellyfin Update Jellyfin settings
SettingsAPI CreateJellyfinSync Post /settings/jellyfin/sync Start full Jellyfin library sync
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 CreateNetwork Post /settings/network Update network settings
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 CreateNotificationsNtfy Post /settings/notifications/ntfy Update ntfy.sh 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 GetJellyfin Get /settings/jellyfin Get Jellyfin settings
SettingsAPI GetJellyfinSync Get /settings/jellyfin/sync Get status of full Jellyfin library sync
SettingsAPI GetMain Get /settings/main Get main settings
SettingsAPI GetMetadatas Get /settings/metadatas Get Metadata settings
SettingsAPI GetNetwork Get /settings/network Get network 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 GetNotificationsNtfy Get /settings/notifications/ntfy Get ntfy.sh 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 ListJellyfinLibrary Get /settings/jellyfin/library Get Jellyfin libraries
SettingsAPI ListJellyfinUsers Get /settings/jellyfin/users Get Jellyfin Users
SettingsAPI ListJobs Get /settings/jobs Get scheduled jobs
SettingsAPI ListLogs Get /settings/logs Returns logs
SettingsAPI ListNotificationsPushoverSounds Get /settings/notifications/pushover/sounds Get Pushover sounds
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 PutMetadatas Put /settings/metadatas Update Metadata settings
SettingsAPI TestMetadatas Post /settings/metadatas/test Test Provider configuration
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 TestNotificationsNtfy Post /settings/notifications/ntfy/test Test ntfy.sh 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 GetTvSeasonBySeasonNumber Get /tv/{tvId}/season/{seasonNumber} 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 CreateUserImportFromJellyfin Post /user/import-from-jellyfin Import all users from Jellyfin
UsersAPI CreateUserImportFromPlex Post /user/import-from-plex Import all users from Plex
UsersAPI CreateUserRegisterPushSubscription Post /user/registerPushSubscription Register a web push /user/registerPushSubscription
UsersAPI CreateUserSettingsLinkedAccountsJellyfin Post /user/{userId}/settings/linked-accounts/jellyfin Link the provided Jellyfin account to the current user
UsersAPI CreateUserSettingsLinkedAccountsPlex Post /user/{userId}/settings/linked-accounts/plex Link the provided Plex account to the current user
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 DeleteUserPushSubscription Delete /user/{userId}/pushSubscription/{endpoint} Delete user push subscription by key
UsersAPI DeleteUserSettingsLinkedAccountsJellyfin Delete /user/{userId}/settings/linked-accounts/jellyfin Remove the linked Jellyfin account for a user
UsersAPI DeleteUserSettingsLinkedAccountsPlex Delete /user/{userId}/settings/linked-accounts/plex Remove the linked Plex account for a user
UsersAPI GetUser Get /user Get all users
UsersAPI GetUserByUserId Get /user/{userId} Get user by ID
UsersAPI GetUserJellyfinByJellyfinUserId Get /user/jellyfin/{jellyfinUserId} Get user by Jellyfin user ID
UsersAPI GetUserPushSubscriptionByEndpoint Get /user/{userId}/pushSubscription/{endpoint} Get web push notification settings for a user
UsersAPI GetUserPushSubscriptions Get /user/{userId}/pushSubscriptions Get all web push notification settings for a user
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
WatchlistAPI CreateWatchlist Post /watchlist Add media to watchlist
WatchlistAPI DeleteWatchlist Delete /watchlist/{tmdbId} Delete watchlist item

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: cookieAuth and passed in as the auth context for each request.

Example

auth := context.WithValue(
		context.Background(),
		seerr.ContextAPIKeys,
		map[string]seerr.APIKey{
			"cookieAuth": {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: apiKey and passed in as the auth context for each request.

Example

auth := context.WithValue(
		context.Background(),
		seerr.ContextAPIKeys,
		map[string]seerr.APIKey{
			"apiKey": {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

About

go SDK for Seerr

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors