# ``plexswift`` An Open API Spec for interacting with Plex.tv and Plex Servers `plexswift` is a Swift library which provides functionality for making requests to the API using a modern, easy-to-use Swift API: ### SDK Example Usage ```swift import Foundation import Plexswift let client = Client(security: .accessToken("")) let response = try await client.server.getServerCapabilities() switch response.data { case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject): // Handle response break case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject): // Handle response break case .empty: // Handle empty response break } ``` ### Getting started - ``PlexswiftAPI`` defines the available API operations, including operations which are logically grouped by name (for example under ``PlexswiftAPI/server``). - ``Client`` is the main object used when making requests to the API, and implements ``PlexswiftAPI`` to provide this functionality. Each available API method is exposed as an `async` function, which you can call and `await` its response and handle any errors that are thrown. - API methods that require input data take a *request object* describing these parameters, and each method returns a *response object* containing information about the response. You can read more about these in . - Requests to the API must be authenticated. You can provide authentication credentials by initializing ``Client`` with a ``Shared/Security`` value. - If an error occurs when making a request to the API, a ``PlexswiftError`` error is thrown with more information about what went wrong. ## Topics ### Connecting to the API - ``Client`` - ``Shared/Security`` - ``Response`` - ``ResponseWithHeaders`` - ``ResponseFields`` - ``ResponseHeaders`` - ``PlexswiftError`` ### API operations - ``plexswift/PlexswiftAPI`` - ``ServerAPI`` - ``MediaAPI`` - ``ActivitiesAPI`` - ``ButlerAPI`` - ``HubsAPI`` - ``SearchAPI`` - ``LibraryAPI`` - ``LogAPI`` - ``PlaylistsAPI`` - ``SecurityAPI`` - ``SessionsAPI`` - ``UpdaterAPI`` - ``VideoAPI`` ### Server configuration ### Shared models ### Request objects ### Response objects - ``Operations/AddPlaylistContentsResponse`` - ``Operations/ApplyUpdatesResponse`` - ``Operations/CancelServerActivitiesResponse`` - ``Operations/CheckForUpdatesResponse`` - ``Operations/ClearPlaylistContentsResponse`` - ``Operations/CreatePlaylistResponse`` - ``Operations/DeleteLibraryResponse`` - ``Operations/DeletePlaylistResponse`` - ``Operations/EnablePaperTrailResponse`` - ``Operations/GetAvailableClientsResponse`` - ``Operations/GetButlerTasksResponse`` - ``Operations/GetDevicesResponse`` - ``Operations/GetFileHashResponse`` - ``Operations/GetGlobalHubsResponse`` - ``Operations/GetLibrariesResponse`` - ``Operations/GetLibraryResponse`` - ``Operations/GetLibraryHubsResponse`` - ``Operations/GetLibraryItemsResponse`` - ``Operations/GetMetadataResponse`` - ``Operations/GetMetadataChildrenResponse`` - ``Operations/GetMyPlexAccountResponse`` - ``Operations/GetOnDeckResponse`` - ``Operations/GetPlaylistResponse`` - ``Operations/GetPlaylistContentsResponse`` - ``Operations/GetPlaylistsResponse`` - ``Operations/GetRecentlyAddedResponse`` - ``Operations/GetResizedPhotoResponse`` - ``Operations/GetSearchResultsResponse`` - ``Operations/GetServerActivitiesResponse`` - ``Operations/GetServerCapabilitiesResponse`` - ``Operations/GetServerIdentityResponse`` - ``Operations/GetServerListResponse`` - ``Operations/GetServerPreferencesResponse`` - ``Operations/GetSessionHistoryResponse`` - ``Operations/GetSessionsResponse`` - ``Operations/GetSourceConnectionInformationResponse`` - ``Operations/GetTimelineResponse`` - ``Operations/GetTranscodeSessionsResponse`` - ``Operations/GetTransientTokenResponse`` - ``Operations/GetUpdateStatusResponse`` - ``Operations/LogLineResponse`` - ``Operations/LogMultiLineResponse`` - ``Operations/MarkPlayedResponse`` - ``Operations/MarkUnplayedResponse`` - ``Operations/PerformSearchResponse`` - ``Operations/PerformVoiceSearchResponse`` - ``Operations/RefreshLibraryResponse`` - ``Operations/SearchLibraryResponse`` - ``Operations/StartAllTasksResponse`` - ``Operations/StartTaskResponse`` - ``Operations/StartUniversalTranscodeResponse`` - ``Operations/StopAllTasksResponse`` - ``Operations/StopTaskResponse`` - ``Operations/StopTranscodeSessionResponse`` - ``Operations/UpdatePlaylistResponse`` - ``Operations/UpdatePlayProgressResponse`` - ``Operations/UploadPlaylistResponse`` ### Other models - ``Operations/One`` - ``Operations/Two`` - ``Operations/Activity`` - ``Operations/AddPlaylistContentsErrors`` - ``Operations/AddPlaylistContentsMediaContainer`` - ``Operations/AddPlaylistContentsMetadata`` - ``Operations/AddPlaylistContentsPlaylistsResponseBody`` - ``Operations/AddPlaylistContentsRequest`` - ``Operations/AddPlaylistContentsResponseBody`` - ``Operations/ApplyUpdatesErrors`` - ``Operations/ApplyUpdatesRequest`` - ``Operations/ApplyUpdatesResponseBody`` - ``Operations/ButlerTask`` - ``Operations/ButlerTasks`` - ``Operations/CancelServerActivitiesErrors`` - ``Operations/CancelServerActivitiesRequest`` - ``Operations/CancelServerActivitiesResponseBody`` - ``Operations/CheckForUpdatesErrors`` - ``Operations/CheckForUpdatesRequest`` - ``Operations/CheckForUpdatesResponseBody`` - ``Operations/ClearPlaylistContentsErrors`` - ``Operations/ClearPlaylistContentsRequest`` - ``Operations/ClearPlaylistContentsResponseBody`` - ``Operations/Context`` - ``Operations/Country`` - ``Operations/CreatePlaylistErrors`` - ``Operations/CreatePlaylistMediaContainer`` - ``Operations/CreatePlaylistMetadata`` - ``Operations/CreatePlaylistPlaylistsResponseBody`` - ``Operations/CreatePlaylistRequest`` - ``Operations/CreatePlaylistResponseBody`` - ``Operations/DeleteLibraryErrors`` - ``Operations/DeleteLibraryRequest`` - ``Operations/DeleteLibraryResponseBody`` - ``Operations/DeletePlaylistErrors`` - ``Operations/DeletePlaylistRequest`` - ``Operations/DeletePlaylistResponseBody`` - ``Operations/Device`` - ``Operations/Director`` - ``Operations/Directory`` - ``Operations/Download`` - ``Operations/EnablePaperTrailErrors`` - ``Operations/EnablePaperTrailResponseBody`` - ``Operations/Errors`` - ``Operations/Field`` - ``Operations/FieldType`` - ``Operations/Filter`` - ``Operations/Force`` - ``Operations/Genre`` - ``Operations/GetAvailableClientsErrors`` - ``Operations/GetAvailableClientsMediaContainer`` - ``Operations/GetAvailableClientsResponseBody`` - ``Operations/GetAvailableClientsServerResponseBody`` - ``Operations/GetButlerTasksButlerResponseBody`` - ``Operations/GetButlerTasksErrors`` - ``Operations/GetButlerTasksResponseBody`` - ``Operations/GetDevicesErrors`` - ``Operations/GetDevicesMediaContainer`` - ``Operations/GetDevicesResponseBody`` - ``Operations/GetDevicesServerResponseBody`` - ``Operations/GetFileHashErrors`` - ``Operations/GetFileHashRequest`` - ``Operations/GetFileHashResponseBody`` - ``Operations/GetGlobalHubsErrors`` - ``Operations/GetGlobalHubsHubsResponseBody`` - ``Operations/GetGlobalHubsMediaContainer`` - ``Operations/GetGlobalHubsMetadata`` - ``Operations/GetGlobalHubsRequest`` - ``Operations/GetGlobalHubsResponseBody`` - ``Operations/GetLibrariesDirectory`` - ``Operations/GetLibrariesErrors`` - ``Operations/GetLibrariesLibraryResponseBody`` - ``Operations/GetLibrariesMediaContainer`` - ``Operations/GetLibrariesResponseBody`` - ``Operations/GetLibraryDirectory`` - ``Operations/GetLibraryErrors`` - ``Operations/GetLibraryLibraryResponseBody`` - ``Operations/GetLibraryMediaContainer`` - ``Operations/GetLibraryRequest`` - ``Operations/GetLibraryResponseBody`` - ``Operations/GetLibraryType`` - ``Operations/GetLibraryHubsCountry`` - ``Operations/GetLibraryHubsDirector`` - ``Operations/GetLibraryHubsErrors`` - ``Operations/GetLibraryHubsGenre`` - ``Operations/GetLibraryHubsHub`` - ``Operations/GetLibraryHubsHubsResponseBody`` - ``Operations/GetLibraryHubsMedia`` - ``Operations/GetLibraryHubsMediaContainer`` - ``Operations/GetLibraryHubsMetadata`` - ``Operations/GetLibraryHubsPart`` - ``Operations/GetLibraryHubsRequest`` - ``Operations/GetLibraryHubsResponseBody`` - ``Operations/GetLibraryHubsRole`` - ``Operations/GetLibraryHubsWriter`` - ``Operations/GetLibraryItemsCountry`` - ``Operations/GetLibraryItemsDirector`` - ``Operations/GetLibraryItemsGenre`` - ``Operations/GetLibraryItemsMedia`` - ``Operations/GetLibraryItemsMediaContainer`` - ``Operations/GetLibraryItemsMetadata`` - ``Operations/GetLibraryItemsPart`` - ``Operations/GetLibraryItemsRequest`` - ``Operations/GetLibraryItemsResponseBody`` - ``Operations/GetLibraryItemsRole`` - ``Operations/GetLibraryItemsWriter`` - ``Operations/GetMetadataCountry`` - ``Operations/GetMetadataDirector`` - ``Operations/GetMetadataErrors`` - ``Operations/GetMetadataGenre`` - ``Operations/GetMetadataLibraryResponseBody`` - ``Operations/GetMetadataMedia`` - ``Operations/GetMetadataMediaContainer`` - ``Operations/GetMetadataMetadata`` - ``Operations/GetMetadataPart`` - ``Operations/GetMetadataRequest`` - ``Operations/GetMetadataResponseBody`` - ``Operations/GetMetadataRole`` - ``Operations/GetMetadataWriter`` - ``Operations/GetMetadataChildrenDirectory`` - ``Operations/GetMetadataChildrenErrors`` - ``Operations/GetMetadataChildrenLibraryResponseBody`` - ``Operations/GetMetadataChildrenMediaContainer`` - ``Operations/GetMetadataChildrenMetadata`` - ``Operations/GetMetadataChildrenRequest`` - ``Operations/GetMetadataChildrenResponseBody`` - ``Operations/GetMyPlexAccountErrors`` - ``Operations/GetMyPlexAccountResponseBody`` - ``Operations/GetMyPlexAccountServerResponseBody`` - ``Operations/GetOnDeckErrors`` - ``Operations/GetOnDeckGuids`` - ``Operations/GetOnDeckLibraryResponseBody`` - ``Operations/GetOnDeckMedia`` - ``Operations/GetOnDeckMediaContainer`` - ``Operations/GetOnDeckMetadata`` - ``Operations/GetOnDeckPart`` - ``Operations/GetOnDeckResponseBody`` - ``Operations/GetOnDeckStream`` - ``Operations/GetPlaylistErrors`` - ``Operations/GetPlaylistMediaContainer`` - ``Operations/GetPlaylistMetadata`` - ``Operations/GetPlaylistPlaylistsResponseBody`` - ``Operations/GetPlaylistRequest`` - ``Operations/GetPlaylistResponseBody`` - ``Operations/GetPlaylistContentsCountry`` - ``Operations/GetPlaylistContentsDirector`` - ``Operations/GetPlaylistContentsErrors`` - ``Operations/GetPlaylistContentsGenre`` - ``Operations/GetPlaylistContentsMedia`` - ``Operations/GetPlaylistContentsMediaContainer`` - ``Operations/GetPlaylistContentsMetadata`` - ``Operations/GetPlaylistContentsPart`` - ``Operations/GetPlaylistContentsPlaylistsResponseBody`` - ``Operations/GetPlaylistContentsRequest`` - ``Operations/GetPlaylistContentsResponseBody`` - ``Operations/GetPlaylistContentsRole`` - ``Operations/GetPlaylistContentsWriter`` - ``Operations/GetPlaylistsErrors`` - ``Operations/GetPlaylistsMediaContainer`` - ``Operations/GetPlaylistsMetadata`` - ``Operations/GetPlaylistsPlaylistsResponseBody`` - ``Operations/GetPlaylistsRequest`` - ``Operations/GetPlaylistsResponseBody`` - ``Operations/GetRecentlyAddedErrors`` - ``Operations/GetRecentlyAddedLibraryResponseBody`` - ``Operations/GetRecentlyAddedMediaContainer`` - ``Operations/GetRecentlyAddedResponseBody`` - ``Operations/GetResizedPhotoErrors`` - ``Operations/GetResizedPhotoRequest`` - ``Operations/GetResizedPhotoResponseBody`` - ``Operations/GetSearchResultsCountry`` - ``Operations/GetSearchResultsDirector`` - ``Operations/GetSearchResultsErrors`` - ``Operations/GetSearchResultsGenre`` - ``Operations/GetSearchResultsMedia`` - ``Operations/GetSearchResultsMediaContainer`` - ``Operations/GetSearchResultsMetadata`` - ``Operations/GetSearchResultsPart`` - ``Operations/GetSearchResultsRequest`` - ``Operations/GetSearchResultsResponseBody`` - ``Operations/GetSearchResultsRole`` - ``Operations/GetSearchResultsSearchResponseBody`` - ``Operations/GetSearchResultsWriter`` - ``Operations/GetServerActivitiesActivitiesResponseBody`` - ``Operations/GetServerActivitiesErrors`` - ``Operations/GetServerActivitiesMediaContainer`` - ``Operations/GetServerActivitiesResponseBody`` - ``Operations/GetServerCapabilitiesResponseBody`` - ``Operations/GetServerCapabilitiesServerResponseBody`` - ``Operations/GetServerIdentityErrors`` - ``Operations/GetServerIdentityMediaContainer`` - ``Operations/GetServerIdentityResponseBody`` - ``Operations/GetServerIdentityServerResponseBody`` - ``Operations/GetServerListErrors`` - ``Operations/GetServerListMediaContainer`` - ``Operations/GetServerListResponseBody`` - ``Operations/GetServerListServer`` - ``Operations/GetServerListServerResponseBody`` - ``Operations/GetServerPreferencesErrors`` - ``Operations/GetServerPreferencesMediaContainer`` - ``Operations/GetServerPreferencesResponseBody`` - ``Operations/GetServerPreferencesServerResponseBody`` - ``Operations/GetSessionHistoryErrors`` - ``Operations/GetSessionHistoryMediaContainer`` - ``Operations/GetSessionHistoryMetadata`` - ``Operations/GetSessionHistoryResponseBody`` - ``Operations/GetSessionHistorySessionsResponseBody`` - ``Operations/GetSessionsErrors`` - ``Operations/GetSessionsMedia`` - ``Operations/GetSessionsMediaContainer`` - ``Operations/GetSessionsMetadata`` - ``Operations/GetSessionsPart`` - ``Operations/GetSessionsResponseBody`` - ``Operations/GetSessionsSessionsResponseBody`` - ``Operations/GetSessionsStream`` - ``Operations/GetSourceConnectionInformationErrors`` - ``Operations/GetSourceConnectionInformationRequest`` - ``Operations/GetSourceConnectionInformationResponseBody`` - ``Operations/GetTimelineErrors`` - ``Operations/GetTimelineRequest`` - ``Operations/GetTimelineResponseBody`` - ``Operations/GetTranscodeSessionsErrors`` - ``Operations/GetTranscodeSessionsMediaContainer`` - ``Operations/GetTranscodeSessionsResponseBody`` - ``Operations/GetTranscodeSessionsSessionsResponseBody`` - ``Operations/GetTransientTokenErrors`` - ``Operations/GetTransientTokenQueryParamType`` - ``Operations/GetTransientTokenRequest`` - ``Operations/GetTransientTokenResponseBody`` - ``Operations/GetUpdateStatusErrors`` - ``Operations/GetUpdateStatusMediaContainer`` - ``Operations/GetUpdateStatusResponseBody`` - ``Operations/GetUpdateStatusUpdaterResponseBody`` - ``Operations/Guids`` - ``Operations/Hub`` - ``Operations/IncludeDetails`` - ``Operations/Level`` - ``Operations/Location`` - ``Operations/LogLineErrors`` - ``Operations/LogLineRequest`` - ``Operations/LogLineResponseBody`` - ``Operations/LogMultiLineErrors`` - ``Operations/LogMultiLineResponseBody`` - ``Operations/MarkPlayedErrors`` - ``Operations/MarkPlayedRequest`` - ``Operations/MarkPlayedResponseBody`` - ``Operations/MarkUnplayedErrors`` - ``Operations/MarkUnplayedRequest`` - ``Operations/MarkUnplayedResponseBody`` - ``Operations/Media`` - ``Operations/MediaContainer`` - ``Operations/Metadata`` - ``Operations/MinSize`` - ``Operations/MyPlex`` - ``Operations/OnlyTransient`` - ``Operations/Operator`` - ``Operations/Part`` - ``Operations/PathParamTaskName`` - ``Operations/PerformSearchErrors`` - ``Operations/PerformSearchRequest`` - ``Operations/PerformSearchResponseBody`` - ``Operations/PerformVoiceSearchErrors`` - ``Operations/PerformVoiceSearchRequest`` - ``Operations/PerformVoiceSearchResponseBody`` - ``Operations/Player`` - ``Operations/PlaylistType`` - ``Operations/Producer`` - ``Operations/Provider`` - ``Operations/QueryParamOnlyTransient`` - ``Operations/QueryParamSmart`` - ``Operations/QueryParamType`` - ``Operations/Ratings`` - ``Operations/RefreshLibraryErrors`` - ``Operations/RefreshLibraryRequest`` - ``Operations/RefreshLibraryResponseBody`` - ``Operations/Release`` - ``Operations/Role`` - ``Operations/Scope`` - ``Operations/SearchLibraryMediaContainer`` - ``Operations/SearchLibraryMetadata`` - ``Operations/SearchLibraryRequest`` - ``Operations/SearchLibraryResponseBody`` - ``Operations/Server`` - ``Operations/Session`` - ``Operations/Setting`` - ``Operations/Skip`` - ``Operations/Smart`` - ``Operations/Sort`` - ``Operations/StartAllTasksErrors`` - ``Operations/StartAllTasksResponseBody`` - ``Operations/StartTaskErrors`` - ``Operations/StartTaskRequest`` - ``Operations/StartTaskResponseBody`` - ``Operations/StartUniversalTranscodeErrors`` - ``Operations/StartUniversalTranscodeRequest`` - ``Operations/StartUniversalTranscodeResponseBody`` - ``Operations/State`` - ``Operations/StopAllTasksErrors`` - ``Operations/StopAllTasksResponseBody`` - ``Operations/StopTaskErrors`` - ``Operations/StopTaskRequest`` - ``Operations/StopTaskResponseBody`` - ``Operations/StopTranscodeSessionErrors`` - ``Operations/StopTranscodeSessionRequest`` - ``Operations/StopTranscodeSessionResponseBody`` - ``Operations/Stream`` - ``Operations/Tag`` - ``Operations/TaskName`` - ``Operations/Tonight`` - ``Operations/TranscodeSession`` - ``Operations/TypeModel`` - ``Operations/UpdatePlaylistErrors`` - ``Operations/UpdatePlaylistRequest`` - ``Operations/UpdatePlaylistResponseBody`` - ``Operations/UpdatePlayProgressErrors`` - ``Operations/UpdatePlayProgressRequest`` - ``Operations/UpdatePlayProgressResponseBody`` - ``Operations/UploadPlaylistErrors`` - ``Operations/UploadPlaylistRequest`` - ``Operations/UploadPlaylistResponseBody`` - ``Operations/Upscale`` - ``Operations/User`` - ``Operations/Writer`` ### Type groupings - ``Operations`` - ``Shared`` ### Data types - ``AnyValue`` - ``APIValue`` ### Internal data types - ``DateConvertible`` - ``DateOnly`` - ``DateTime`` - ``DecimalSerialized`` - ``DoubleConvertible``