openapi: 3.1.0 info: title: Hootsuite Platform API description: | REST API for the Hootsuite social media management platform. Provides programmatic access to messages, scheduling, approvals, media uploads, and social profiles connected to a Hootsuite account. Authentication is OAuth 2.0 (authorization-code grant with refresh tokens) and the `member_app` / `organization_app` grant scopes determine whether requests act on behalf of a single member or the organization. version: "1.0" contact: name: Hootsuite Developer Portal url: https://developer.hootsuite.com/docs/api servers: - url: https://platform.hootsuite.com/v1 description: Hootsuite Platform API security: - OAuth2: [offline] components: securitySchemes: OAuth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://platform.hootsuite.com/oauth2/auth tokenUrl: https://platform.hootsuite.com/oauth2/token refreshUrl: https://platform.hootsuite.com/oauth2/token scopes: offline: Issue a refresh token alongside the access token paths: /messages: get: summary: List scheduled and sent outbound messages operationId: listMessages responses: "200": { description: OK } post: summary: Schedule a message operationId: createMessage responses: "201": { description: Created } /messages/{messageId}: parameters: - name: messageId in: path required: true schema: { type: string } get: summary: Retrieve a specific message operationId: getMessage responses: "200": { description: OK } delete: summary: Delete a message operationId: deleteMessage responses: "204": { description: Deleted } /messages/{messageId}/approve: parameters: - name: messageId in: path required: true schema: { type: string } post: summary: Approve a message awaiting review operationId: approveMessage responses: "200": { description: OK } /messages/{messageId}/reject: parameters: - name: messageId in: path required: true schema: { type: string } post: summary: Reject a message awaiting review operationId: rejectMessage responses: "200": { description: OK } /messages/{messageId}/history: parameters: - name: messageId in: path required: true schema: { type: string } get: summary: Get a message's review history operationId: getMessageHistory responses: "200": { description: OK } /media: post: summary: Create a media upload URL operationId: createMediaUpload responses: "201": { description: Created } /media/{mediaId}: parameters: - name: mediaId in: path required: true schema: { type: string } get: summary: Retrieve media upload status operationId: getMedia responses: "200": { description: OK } /socialProfiles: get: summary: Retrieve all social profiles operationId: listSocialProfiles responses: "200": { description: OK } /socialProfiles/{socialProfileId}: parameters: - name: socialProfileId in: path required: true schema: { type: string } get: summary: Retrieve a specific social profile operationId: getSocialProfile responses: "200": { description: OK } /socialProfiles/{socialProfileId}/teams: parameters: - name: socialProfileId in: path required: true schema: { type: string } get: summary: Retrieve the teams associated with a social profile operationId: getSocialProfileTeams responses: "200": { description: OK } /me: get: summary: Retrieve the authenticated member's profile operationId: getCurrentMember responses: "200": { description: OK }