openapi: 3.2.0 info: title: Social Media Posting CSV API description: Documentation for Social Media Posting API version: '1.0' contact: {} servers: - url: https://services.leadconnectorhq.com tags: - name: CSV description: Documentation for Social Media Posting API paths: /social-media-posting/{locationId}/csv: post: operationId: upload-csv summary: Upload CSV parameters: - name: Version in: header description: API Version required: true schema: type: string enum: - '2021-07-28' - name: locationId required: true in: path description: Location Id example: ve9EPM428h8vShlRW1KT schema: type: string requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/UploadCSVDTO' responses: '201': description: Successful response content: application/json: schema: $ref: '#/components/schemas/UploadFileResponseDTO' '400': description: Bad Request content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/BadRequestDTO '401': description: Unauthorized content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/UnauthorizedDTO '422': description: Unprocessable Entity content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/UnprocessableDTO tags: - CSV security: - bearer: - socialplanner/csv.write get: operationId: get-upload-status summary: Get Upload Status parameters: - name: Version in: header description: API Version required: true schema: type: string enum: - '2021-07-28' - name: locationId required: true in: path description: Location Id example: ve9EPM428h8vShlRW1KT schema: type: string - name: skip required: false in: query example: '1' schema: default: '0' type: string - name: limit required: false in: query example: '10' schema: default: '10' type: string - name: includeUsers required: false in: query example: 'true' schema: type: string - name: userId required: false in: query description: User ID example: sdfdsfdsfEWEsdfsdsW32dd schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/GetUploadStatusResponseDTO' '400': description: Bad Request content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/BadRequestDTO '401': description: Unauthorized content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/UnauthorizedDTO '422': description: Unprocessable Entity content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/UnprocessableDTO tags: - CSV security: - bearer: [] /social-media-posting/{locationId}/set-accounts: post: operationId: set-accounts summary: Set Accounts parameters: - name: Version in: header description: API Version required: true schema: type: string enum: - '2021-07-28' - name: locationId required: true in: path description: Location Id example: ve9EPM428h8vShlRW1KT schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SetAccountsDTO' responses: '201': description: Successful response content: application/json: schema: $ref: '#/components/schemas/SetAccountsResponseDTO' '400': description: Bad Request content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/BadRequestDTO '401': description: Unauthorized content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/UnauthorizedDTO '422': description: Unprocessable Entity content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/UnprocessableDTO tags: - CSV security: - bearer: - socialplanner/csv.write /social-media-posting/{locationId}/csv/{id}: get: operationId: get-csv-post summary: Get CSV Post parameters: - name: Version in: header description: API Version required: true schema: type: string enum: - '2021-07-28' - name: locationId required: true in: path example: sdfdsfdsfEWEsdfsdsW32dd schema: type: string - name: id required: true in: path example: 65f92e55cc884f0d0845e447 description: CSV Id schema: type: string - name: skip required: false in: query example: '0' schema: type: string - name: limit required: false in: query example: '10' schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/GetCsvPostResponseDTO' '400': description: Bad Request content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/BadRequestDTO '401': description: Unauthorized content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/UnauthorizedDTO '422': description: Unprocessable Entity content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/UnprocessableDTO tags: - CSV security: - bearer: [] patch: operationId: start-csv-finalize summary: Start CSV Finalize parameters: - name: Version in: header description: API Version required: true schema: type: string enum: - '2021-07-28' - name: locationId required: true in: path example: sdfdsfdsfEWEsdfsdsW32dd schema: type: string - name: id required: true in: path example: 65f92e55cc884f0d0845e447 description: CSV Id schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CSVDefaultDTO' responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/CsvPostStatusResponseDTO' '400': description: Bad Request content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/BadRequestDTO '401': description: Unauthorized content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/UnauthorizedDTO '422': description: Unprocessable Entity content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/UnprocessableDTO tags: - CSV security: - bearer: [] delete: operationId: delete-csv summary: Delete CSV parameters: - name: Version in: header description: API Version required: true schema: type: string enum: - '2021-07-28' - name: locationId required: true in: path example: sdfdsfdsfEWEsdfsdsW32dd schema: type: string - name: id required: true in: path example: 65f92e55cc884f0d0845e447 description: CSV Id schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/DeleteCsvResponseDTO' '400': description: Bad Request content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/BadRequestDTO '401': description: Unauthorized content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/UnauthorizedDTO '422': description: Unprocessable Entity content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/UnprocessableDTO tags: - CSV security: - bearer: [] /social-media-posting/{locationId}/csv/{csvId}/post/{postId}: delete: operationId: delete-csv-post summary: Delete CSV Post parameters: - name: Version in: header description: API Version required: true schema: type: string enum: - '2021-07-28' - name: locationId required: true in: path example: sdfdsfdsfEWEsdfsdsW32dd schema: type: string - name: postId required: true in: path example: 65f92e55cc884f0d0845e447 description: CSV Post Id schema: type: string - name: csvId required: true in: path example: 65f92e55cc884f0d0845e447 description: CSV Id schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/DeletePostResponseDTO' '400': description: Bad Request content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/BadRequestDTO '401': description: Unauthorized content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/UnauthorizedDTO '422': description: Unprocessable Entity content: application/json: schema: $ref: ../common/common-schemas.json#/components/schemas/UnprocessableDTO tags: - CSV security: - bearer: [] components: schemas: UploadFileResponseDTO: type: object properties: success: type: boolean description: Success or Failure example: true statusCode: type: number description: Status Code example: 201 message: type: string description: Message example: Uploaded CSV results: description: Requested Results allOf: - $ref: '#/components/schemas/UploadFileResponseSchema' required: - success - statusCode - message StartDateSchema: type: object properties: startDate: description: Start Date allOf: - $ref: '#/components/schemas/DateSchema' startTime: description: Start Time allOf: - $ref: '#/components/schemas/TimeSchema' OgImageSchema: type: object properties: url: type: string description: Image url example: https://knowledge.wharton.upenn.edu/wp-content/uploads/2019/07/072619_socialmedia_phonelikes-600x440.jpg width: type: number description: Image width example: 400 height: type: number description: Image height example: 400 type: type: string description: Image Type example: image/jpg CSVResponseSchema: type: object properties: csv: description: CSV Data allOf: - $ref: '#/components/schemas/CsvResponse' SetAccountsDTO: type: object properties: accountIds: description: Account Ids example: - aF3KhyL8JIuBwzK3m7Ly_iVrVJ2uoXNF0wzcBzgl5_12554616564525983496 type: array items: type: string filePath: type: string description: File path example: o6241QsiRwUIJHyjuhos/social-planner-import/a6d04a26-0401-4e52-8f48-dbb274050fab.csv rowsCount: type: number description: Entires Count. rowcCount must be between 1 and number of posts in CSV example: 1 fileName: type: string description: Name of file example: test.csv approver: type: string example: o6241QsiRwUIJHyjuhos userId: type: string description: User ID example: sdfdsfdsfEWEsdfsdsW32dd required: - accountIds - filePath - rowsCount - fileName EndDateSchema: type: object properties: endDate: description: End Date allOf: - $ref: '#/components/schemas/DateSchema' endTime: description: End Time allOf: - $ref: '#/components/schemas/TimeSchema' DateSchema: type: object properties: year: type: number example: 2022 month: type: number example: 1 day: type: number example: 1 required: - year - month - day CSVPostSchema: type: object properties: accountIds: description: Account Ids example: - aF3KhyL8JIuBwzK3m7Ly_iVrVJ2uoXNF0wzcBzgl5_12554616564525983496 type: array items: type: string link: description: OG Tag allOf: - $ref: '#/components/schemas/IOgTagsSchema' medias: description: Post Media List type: array items: $ref: '#/components/schemas/CSVMediaResponseSchema' scheduleDate: type: string example: '2022-11-23T05:53:00.000Z' summary: type: string example: First post followUpComment: type: string example: Initial Comment type: type: object example: post tiktokPostDetails: description: Tiktok Post Details allOf: - $ref: '#/components/schemas/TiktokPostSchema' gmbPostDetails: description: GMB Post Details allOf: - $ref: '#/components/schemas/GMBPostSchema' errorMessage: type: string description: Error Description DeletePostResponseDTO: type: object properties: success: type: boolean description: Success or Failure example: true statusCode: type: number description: Status Code example: 200 message: type: string description: Message example: Deleted Post results: description: Requested Results allOf: - $ref: '#/components/schemas/DeletePostResponseSchema' required: - success - statusCode - message CsvResponse: type: object properties: locationId: type: string example: Location Name fileName: type: string example: File Name accountIds: description: Account Ids example: - aF3KhyL8JIuBwzK3m7Ly_iVrVJ2uoXNF0wzcBzgl5_12554616564525983496 type: array items: type: string file: type: string example: File status: type: object description: 'status must be one of the following values: pending, in_progress, completed, failed, in_review, importing, deleted' example: completed count: type: number example: 5 createdBy: type: string example: AccountId_SDsdfdf45Dgs4w3ssss traceId: type: string example: FSeSDsdfdf45Dgs4w3ssss originId: type: string example: FSeSDsdfdf45Dgs4w3ssss approver: type: string example: FSeSDsdfdf45Dgs4w3ssss SetAccountsResponseDTO: type: object properties: success: type: boolean description: Success or Failure example: true statusCode: type: number description: Status Code example: 201 message: type: string description: Message example: Accounts Set Successfully required: - success - statusCode - message GetCsvPostResponseSchema: type: object properties: csv: description: CSV Data allOf: - $ref: '#/components/schemas/CSVImportSchema' count: type: number example: 6 posts: description: CSV Posts type: array items: $ref: '#/components/schemas/CSVPostSchema' CSVDefaultDTO: type: object properties: userId: type: string description: User ID example: sdfdsfdsfEWEsdfsdsW32dd CSVMediaResponseSchema: type: object properties: url: type: string description: Media Url example: https://storage.googleapis.com/ghl-test/omaDY3RbWtTP511e808O/media/38e53059-b92706571605.png type: type: string description: Media Type example: image/webp size: type: number description: Media Size example: 18362 width: type: number description: Media Width example: 500 height: type: number description: Media Height example: 500 aspectRatio: type: number description: Media Aspect Ratio example: 1.5 duration: type: number description: Media Aspect Ratio example: 60 format: type: string description: Media format example: jpg videoCodecName: type: string description: Video Codec example: h264 frameRate: type: number description: Video Frame Rate example: 21 audioCodecName: type: string description: Audio Codec example: aac audioChannels: type: number description: Audio Channel example: 1 displayAspectRatio: type: string description: Display Aspect Ratio example: '250 : 167' frames: description: List of frames type: array items: type: string selectedPoster: type: number description: Selected Poster example: 0 error: type: string description: Error example: Image is larger than 10MB instagramError: type: string description: 'Instagram media error. It can we one of the following errors: imageSize, imageType, imageAspectRatio, videoType, videoDuration, videoSize, videoAspectRatio, videoWidthHeight, audioCodec, audioCodecChannels, videoCodec, videoFrameRate' example: imageSize gmbError: type: string description: 'GMB media error. It can be one of the following errors: imageSize, imageDimension, imageType' example: imageDimension facebookError: type: string description: 'Facebook media error. It can be one of the following errors: imageSize, imageType, videoDuration, videoSize' example: videoDuration linkedinError: type: string description: 'LinkedIn media error. It can be one of the following errors: imageSize, imageType, videoType, videoDuration, videoSize' example: imageType twitterError: type: string description: 'Twitter media error. It can be one of the following errors: imageSize, videoType, videoDuration, videoSize' example: videoSize tiktokError: type: string description: 'Tiktok media error. It can be one of the following errors: videoType, videoDuration, videoSize, videoWidthHeight, videoCodec, videoFrameRate' example: videoFrameRate tiktokBusinessError: type: string description: 'Tikok Business media error. It can be one of the following errors: videoType, videoDuration, videoSize, videoWidthHeight, videoCodec, videoFrameRate' example: videoType invalidError: type: string description: 'Media error. It can be one of the following values: imageSize, imageWidth' example: imageSize GMBPostSchema: type: object properties: gmbEventType: type: string example: STANDARD description: 'gmbEventType must be one of the following values: STANDARD, EVENT, OFFER' title: type: string description: Title example: Event Title offerTitle: type: string description: Offer Title example: Hey startDate: description: Start Date allOf: - $ref: '#/components/schemas/StartDateSchema' endDate: description: End Date allOf: - $ref: '#/components/schemas/EndDateSchema' termsConditions: type: string description: Terms Condition Url example: https://google.com/privacy url: type: string description: Url example: https://google.com couponCode: type: string description: Coupon Code example: BOGO-50 redeemOnlineUrl: type: string description: Redeem Online Url example: https://google.com actionType: type: object description: 'Action Type must be one of the following values: none, order, book, shop, learn_more, call, sign_up' example: book DeleteCsvResponseDTO: type: object properties: success: type: boolean description: Success or Failure example: true statusCode: type: number description: Status Code example: 200 message: type: string description: Message example: Deleted Post results: description: Requested Results allOf: - $ref: '#/components/schemas/CSVResponseSchema' required: - success - statusCode - message UploadFileResponseSchema: type: object properties: filePath: type: string example: omaDY3RbWtTP511e/social-import/d23d68c2-82c0-1db6e2.csv rowsCount: type: number example: 6 fileName: type: string example: CSV Import Sample - CSV Import Sample.csv DeletePostResponseSchema: type: object properties: postId: type: string description: Post Id required: - postId GetUploadStatusResponseDTO: type: object properties: success: type: boolean description: Success or Failure example: true statusCode: type: number description: Status Code example: 200 message: type: string description: Message example: Fetched CSV Upload Status results: description: Requested Results allOf: - $ref: '#/components/schemas/GetUploadStatusResponseSchema' required: - success - statusCode - message GetUploadStatusResponseSchema: type: object properties: csvs: description: CSV Data allOf: - $ref: '#/components/schemas/CSVImportSchema' count: type: number example: 6 required: - csvs - count CsvPostStatusResponseDTO: type: object properties: success: type: boolean description: Success or Failure example: true statusCode: type: number description: Status Code example: 200 message: type: string description: Message example: Updated Successfully required: - success - statusCode - message CSVImportSchema: type: object properties: _id: type: string description: Csv Id example: ve9EPM428h8vShlRW1KT locationId: type: string description: locationId example: iVrVJ2uoXNF0wzcBzgl5 fileName: type: string description: File Name example: sample.csv accountIds: description: Account Ids example: - aF3KhyL8JIuBwzK3m7Ly_iVrVJ2uoXNF0wzcBzgl5_12554616564525983496 type: array items: type: string file: type: string description: File path example: File status: type: string description: 'status must be one of the following values: pending, in_progress, completed, failed, in_review, importing, deleted' example: completed count: type: number description: Posts count example: 5 createdBy: type: string description: Created By Id example: SDsdfdf45Dgs4w3ssss traceId: type: string description: Trace Id example: FSeSDsdfdf45Dgs4w3ssss originId: type: string description: Origin Id example: FSeSDsdfdf45Dgs4w3ssss approver: type: string description: Approver Id example: FSeSDsdfdf45Dgs4w3ssss createdAt: format: date-time type: string description: Date Created example: '2023-08-02T00:00:00.000Z' required: - _id GetCsvPostResponseDTO: type: object properties: success: type: boolean description: Success or Failure example: true statusCode: type: number description: Status Code example: 200 message: type: string description: Message example: Fetched CSV Post results: description: Requested Results allOf: - $ref: '#/components/schemas/GetCsvPostResponseSchema' required: - success - statusCode - message TimeSchema: type: object properties: hours: type: number example: 23 minutes: type: number example: 56 seconds: type: number example: 34 required: - hours - minutes - seconds TiktokPostSchema: type: object properties: privacyLevel: type: object description: 'privacy level is an enum and must be one of the following values: PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, SELF_ONLY' example: PUBLIC_TO_EVERYONE promoteOtherBrand: type: boolean description: promote other brand example: true enableComment: type: boolean description: enable comment example: true enableDuet: type: boolean description: enable duet example: true enableStitch: type: boolean description: enable stitch example: true videoDisclosure: type: boolean description: video disclosure example: true promoteYourBrand: type: boolean description: promote your brand example: true IOgTagsSchema: type: object properties: url: type: string description: Tag url example: https://knowledge.wharton.upenn.edu/article/impact-of-social-media/ ogDescription: type: string description: Tag description example: Social media as we know it has barely ogImage: description: Tag description allOf: - $ref: '#/components/schemas/OgImageSchema' ogTitle: type: string description: Tag Title example: 'The Impact of Social Media: Is it Irreplaceable?' ogUrl: type: string description: Tag Url example: https://knowledge.wharton.upenn.edu/article/impact-of-social-media/ ogSiteName: type: string description: Site Name example: Knowledge at Wharton error: type: string description: Og Tag Error example: InvalidLink UploadCSVDTO: type: object properties: file: type: string format: binary securitySchemes: bearer: scheme: bearer bearerFormat: JWT name: Authorization in: header description: Use the Access Token generated with user type as Sub-Account (OR) Private Integration Token of Sub-Account. type: http Location-Access: scheme: bearer bearerFormat: JWT name: Authorization in: header description: Use the Access Token generated with user type as Sub-Account (OR) Private Integration Token of Sub-Account. type: http Agency-Access: scheme: bearer bearerFormat: JWT name: Authorization in: header description: Use the Access Token generated with user type as Agency (OR) Private Integration Token of Agency. type: http x-tagGroups: name: Social Planner tags: - Oauth | Google - Post - Account - Oauth | Facebook - Oauth | Instagram - Oauth | LinkedIn - Oauth | Twitter - CSV - Oauth | Tiktok - Category - Tag - Statistics