openapi: 3.2.0 info: contact: name: Canva Developer Community url: https://community.canva.dev/ description: API for building integrations with Canva via a REST api license: name: ©2023 All Rights Reserved termsOfService: https://www.canva.com/trust/legal/ title: Canva Connect Export API version: 2024-06-18 servers: - description: Canva Connect API url: https://api.canva.com/rest tags: - name: export paths: /v1/exports: post: description: "Starts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to export a file from Canva. Once the exported file is generated, you can download\nit using the URL(s) provided. The download URLs are only valid for 24 hours.\n\nThe request requires the design ID and the exported file format type.\n\nSupported file formats (and export file type values): JPG (`jpg`), PNG (`png`), GIF (`gif`), Microsoft PowerPoint (`pptx`), MP4 (`mp4`), PDF (`pdf`), CSV (`csv`), HTML bundle (`html_bundle`), and standalone HTML (`html_standalone`).\n\n\n\nThis endpoint has the following additional rate limits:\n\n - **Integration throttle:** Each integration can export a maximum of 750 times per 5-minute window, and 5,000 times per 24-hour window.\n - **Document throttle:** Each document can be exported a maximum of 75 times per 5-minute window.\n - **User throttle:** Each user can export a maximum of 75 times per 5-minute window, and 500 times per 24-hour window.\n\n\n\n\nFor more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints). You can check the status and get the results of export jobs created with this API using the [Get design export job API](https://www.canva.dev/docs/connect/api-reference/exports/get-design-export-job/).\n\n" operationId: createDesignExportJob requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateDesignExportJobRequest' responses: '200': content: application/json: examples: in_progress: $ref: '#/components/examples/InProgressExportJobExample' success: $ref: '#/components/examples/SuccessExportJobExample' failed: $ref: '#/components/examples/FailedExportJobExample' schema: $ref: '#/components/schemas/CreateDesignExportJobResponse' description: OK '400': content: application/json: examples: export_invalid_design_id: $ref: '#/components/examples/ExportInvalidDesignIdError' export_design_type_not_supported: $ref: '#/components/examples/UnsupportedDesignType' export_format_not_supported: $ref: '#/components/examples/UnsupportedFormatError' invalid_page_range: $ref: '#/components/examples/InvalidPageRangeError' transparent_background_not_allowed: $ref: '#/components/examples/TransparentBackgroundNotAllowedError' schema: $ref: '#/components/schemas/Error' description: Bad Request x-http-status-code: 400 '403': content: application/json: examples: design_permission_denied: $ref: '#/components/examples/DesignPermissionDeniedError' license_required: $ref: '#/components/examples/LicenseRequiredError' svg_export_unavailable: $ref: '#/components/examples/SvgExportUnavailableError' schema: $ref: '#/components/schemas/Error' description: Forbidden x-http-status-code: 403 '404': content: application/json: examples: export_design_not_found: $ref: '#/components/examples/ExportDesignNotFoundError' schema: $ref: '#/components/schemas/Error' description: Not Found x-http-status-code: 404 '429': content: application/json: examples: client_throttle: $ref: '#/components/examples/ClientThrottleError' client_daily_throttle: $ref: '#/components/examples/ClientDailyThrottleError' user_throttle: $ref: '#/components/examples/UserThrottleError' user_daily_throttle: $ref: '#/components/examples/UserDailyThrottleError' design_throttle: $ref: '#/components/examples/DesignThrottleError' schema: $ref: '#/components/schemas/Error' description: Too Many Requests x-http-status-code: 429 default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Error Response security: - oauthAuthCode: - design:content:read tags: - export x-rate-limit-per-client-user: 20 /v1/print-partner/exports: post: description: ' This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won''t produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can''t be made available to all Canva users. AVAILABILITY: This API is only available to Print Partners. Starts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to export a Print Partner file from Canva. Once the exported file is generated, you can download it using the URL(s) provided. The download URLs are only valid for 24 hours. The request requires the design ID and exports a file as a print-quality PDF. For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints). You can check the status and get the results of export jobs created with this API using the [Get design export job API](https://www.canva.dev/docs/connect/api-reference/exports/get-design-export-job/). ' operationId: createPrintPartnerDesignExportJob requestBody: content: application/json: schema: $ref: '#/components/schemas/CreatePrintPartnerDesignExportJobRequest' responses: '200': content: application/json: examples: in_progress: $ref: '#/components/examples/InProgressExportJobExample' success: $ref: '#/components/examples/SuccessExportJobExample' failed: $ref: '#/components/examples/FailedExportJobExample' schema: $ref: '#/components/schemas/CreatePrintPartnerDesignExportJobResponse' description: OK '400': content: application/json: examples: export_invalid_design_id: $ref: '#/components/examples/ExportInvalidDesignIdError' export_design_type_not_supported: $ref: '#/components/examples/UnsupportedDesignType' export_format_not_supported: $ref: '#/components/examples/UnsupportedFormatError' invalid_page_range: $ref: '#/components/examples/InvalidPageRangeError' print_partner_unsupported_design_type: $ref: '#/components/examples/PrintPartnerUnsupportedDesignTypeError' print_partner_unsupported_design: $ref: '#/components/examples/PrintPartnerUnsupportedDesignError' export_scale_factor_outside_range: $ref: '#/components/examples/ExportScaleFactorOutsideRangeError' schema: $ref: '#/components/schemas/Error' description: Bad Request x-http-status-code: 400 '403': content: application/json: examples: print_partner_export_forbidden: $ref: '#/components/examples/PrintPartnerExportForbidden' design_permission_denied: $ref: '#/components/examples/DesignPermissionDeniedError' license_required: $ref: '#/components/examples/LicenseRequiredError' resource_unavailable: $ref: '#/components/examples/ResourceUnavailableError' embedded_media_error: $ref: '#/components/examples/EmbeddedMediaError' schema: $ref: '#/components/schemas/Error' description: Forbidden x-http-status-code: 403 '404': content: application/json: examples: export_design_not_found: $ref: '#/components/examples/ExportDesignNotFoundError' schema: $ref: '#/components/schemas/Error' description: Not Found x-http-status-code: 404 '429': content: application/json: examples: client_throttle: $ref: '#/components/examples/ClientThrottleError' client_daily_throttle: $ref: '#/components/examples/ClientDailyThrottleError' user_throttle: $ref: '#/components/examples/UserThrottleError' user_daily_throttle: $ref: '#/components/examples/UserDailyThrottleError' design_throttle: $ref: '#/components/examples/DesignThrottleError' schema: $ref: '#/components/schemas/Error' description: Too Many Requests x-http-status-code: 429 default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Error Response security: - oauthAuthCode: - design:content:read tags: - export x-rate-limit-per-client-user: 20 /v1/exports/{exportId}: get: description: 'Gets the result of a design export job that was created using the [Create design export job API](https://www.canva.dev/docs/connect/api-reference/exports/create-design-export-job/). If the job is successful, the response includes an array of download URLs. Depending on the design type and export format, there is a download URL for each page in the design. The download URLs are only valid for 24 hours. You might need to make multiple requests to this endpoint until you get a `success` or `failed` status. For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints).' operationId: getDesignExportJob parameters: - description: The export job ID. explode: false in: path name: exportId required: true schema: pattern: ^[a-zA-Z0-9_-]{1,50}$ type: string style: simple responses: '200': content: application/json: examples: in_progress: $ref: '#/components/examples/InProgressExportJobExample' success: $ref: '#/components/examples/SuccessExportJobExample' failed: $ref: '#/components/examples/FailedExportJobExample' schema: $ref: '#/components/schemas/GetDesignExportJobResponse' description: OK '403': content: application/json: examples: export_job_permission_denied: $ref: '#/components/examples/ExportJobPermissionDeniedError' export_job_result_permission_denied: $ref: '#/components/examples/ExportJobResultPermissionDeniedError' schema: $ref: '#/components/schemas/Error' description: Forbidden '404': content: application/json: examples: export_job_expired: $ref: '#/components/examples/ExportJobExpiredError' schema: $ref: '#/components/schemas/Error' description: Not Found default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Error Response security: - oauthAuthCode: - design:content:read tags: - export x-rate-limit-per-client-user: 120 components: schemas: PngExportFormat: description: 'Export the design as a PNG. Height or width (or both) may be specified, otherwise the file will be exported at it''s default size. You may also specify whether to export the file losslessly, and whether to export a multi-page design as a single image. If the user is on the Canva Free plan, the export height and width for a fixed-dimension design can''t be upscaled by more than a factor of `1.125`.' properties: type: enum: - png type: string export_quality: $ref: '#/components/schemas/ExportQuality' height: description: 'Specify the height in pixels of the exported image. Note the following behavior: - If no height or width is specified, the image is exported using the dimensions of the design. - If only one of height or width is specified, then the image is scaled to match that dimension, respecting the design''s aspect ratio. - If both the height and width are specified, but the values don''t match the design''s aspect ratio, the export defaults to the larger dimension.' example: 400 format: int32 maximum: 25000 minimum: 40 type: integer width: description: 'Specify the width in pixels of the exported image. Note the following behavior: - If no width or height is specified, the image is exported using the dimensions of the design. - If only one of width or height is specified, then the image is scaled to match that dimension, respecting the design''s aspect ratio. - If both the width and height are specified, but the values don''t match the design''s aspect ratio, the export defaults to the larger dimension.' example: 400 format: int32 maximum: 25000 minimum: 40 type: integer lossless: default: true description: 'If set to `true` (default), the PNG is exported without compression. If set to `false`, the PNG is compressed using a lossy compression algorithm. AVAILABILITY: Lossy PNG compression is only available to users on a Canva plan that has premium features, such as Canva Pro. If the user is on the Canva Free plan and this parameter is set to `false`, the export operation will fail.' type: boolean transparent_background: default: false description: 'If set to `true`, the PNG is exported with a transparent background. AVAILABILITY: This option is only available to users on a Canva plan that has premium features, such as Canva Pro. If the user is on the Canva Free plan and this parameter is set to `true`, the export operation will fail.' type: boolean as_single_image: default: false description: 'When `true`, multi-page designs are merged into a single image. When `false` (default), each page is exported as a separate image.' type: boolean pages: description: 'To specify which pages to export in a multi-page design, provide the page numbers as an array. The first page in a design is page `1`. If `pages` isn''t specified, all the pages are exported.' example: - 2 - 3 - 4 items: format: int32 minimum: 1 type: integer type: array required: - type type: object ExportJob: description: The status of the export job. properties: id: description: The export job ID. example: e08861ae-3b29-45db-8dc1-1fe0bf7f1cc8 type: string status: $ref: '#/components/schemas/DesignExportStatus' urls: description: 'Download URL(s) for the completed export job. These URLs expire after 24 hours. Depending on the design type and export format, there is a download URL for each page in the design. The list is sorted by page order.' example: - https://export-download.canva.com/... items: type: string type: array error: $ref: '#/components/schemas/ExportError' required: - id - status type: object ExportError: description: If the export fails, this object provides details about the error. properties: code: $ref: '#/components/schemas/ExportErrorCode' message: description: A human-readable description of what went wrong. type: string required: - code - message type: object CsvExportFormat: description: 'Export the design as a CSV file. CSV export is only available for designs that contain tabular data, such as Canva Sheets.' properties: type: enum: - csv type: string pages: description: 'To specify which pages to export in a multi-page design, provide the page numbers as an array. The first page in a design is page `1`. If `pages` isn''t specified, all the pages are exported.' example: - 2 - 3 - 4 items: format: int32 minimum: 1 type: integer type: array required: - type type: object HtmlStandaloneExportFormat: description: Export the email design as a standalone HTML file with hosted assets. properties: type: enum: - html_standalone type: string pages: description: 'The pages of the design to export. Currently only a single page can be exported. If not provided, the first page of the design is used.' example: - 1 items: format: int32 minimum: 1 type: integer maxItems: 1 minItems: 1 type: array required: - type type: object ExportFormat: description: Details about the desired export format. discriminator: mapping: pdf: '#/components/schemas/PdfExportFormat' jpg: '#/components/schemas/JpgExportFormat' png: '#/components/schemas/PngExportFormat' pptx: '#/components/schemas/PptxExportFormat' gif: '#/components/schemas/GifExportFormat' mp4: '#/components/schemas/Mp4ExportFormat' html_bundle: '#/components/schemas/HtmlBundleExportFormat' html_standalone: '#/components/schemas/HtmlStandaloneExportFormat' csv: '#/components/schemas/CsvExportFormat' propertyName: type oneOf: - $ref: '#/components/schemas/PdfExportFormat' - $ref: '#/components/schemas/JpgExportFormat' - $ref: '#/components/schemas/PngExportFormat' - $ref: '#/components/schemas/PptxExportFormat' - $ref: '#/components/schemas/GifExportFormat' - $ref: '#/components/schemas/Mp4ExportFormat' - $ref: '#/components/schemas/HtmlBundleExportFormat' - $ref: '#/components/schemas/HtmlStandaloneExportFormat' - $ref: '#/components/schemas/CsvExportFormat' type: object PptxExportFormat: description: Export the design as a PPTX. properties: type: enum: - pptx type: string pages: description: 'To specify which pages to export in a multi-page design, provide the page numbers as an array. The first page in a design is page `1`. If `pages` isn''t specified, all the pages are exported.' example: - 2 - 3 - 4 items: format: int32 minimum: 1 type: integer type: array required: - type type: object ExportQuality: default: regular description: Specifies the export quality of the design. enum: - regular - pro type: string x-enum-descriptions: - Regular quality export. - 'Premium quality export. NOTE: A `pro` export might fail if the design contains [premium elements](https://www.canva.com/help/premium-elements/) and the calling user either hasn''t purchased the elements or isn''t on a Canva plan (such as Canva Pro) that has premium features.' GifExportFormat: description: 'Export the design as a GIF. Height or width (or both) may be specified, otherwise the file will be exported at it''s default size. Large designs will be scaled down, and aspect ratio will always be maintained.' properties: type: enum: - gif type: string export_quality: $ref: '#/components/schemas/ExportQuality' height: description: 'Specify the height in pixels of the exported image. Note the following behavior: - If no height or width is specified, the image is exported using the dimensions of the design. - If only one of height or width is specified, then the image is scaled to match that dimension, respecting the design''s aspect ratio. - If both the height and width are specified, but the values don''t match the design''s aspect ratio, the export defaults to the larger dimension.' example: 400 format: int32 maximum: 25000 minimum: 40 type: integer width: description: 'Specify the width in pixels of the exported image. Note the following behavior: - If no width or height is specified, the image is exported using the dimensions of the design. - If only one of width or height is specified, then the image is scaled to match that dimension, respecting the design''s aspect ratio. - If both the width and height are specified, but the values don''t match the design''s aspect ratio, the export defaults to the larger dimension.' example: 400 format: int32 maximum: 25000 minimum: 40 type: integer pages: description: 'To specify which pages to export in a multi-page design, provide the page numbers as an array. The first page in a design is page `1`. If `pages` isn''t specified, all the pages are exported.' example: - 2 - 3 - 4 items: format: int32 minimum: 1 type: integer type: array required: - type type: object CreatePrintPartnerDesignExportJobRequest: description: 'Body parameters for starting a Print Partner export job for a design. It must include a design ID. Canva Docs are not supported for export.' example: design_id: DAVZr1z5464 format: type: pdf pages: - 2 - 3 - 4 dimensions: width: 200 height: 300 units: px properties: design_id: description: The design ID. type: string dimensions: $ref: '#/components/schemas/PrintPartnerExportDimensions' format: $ref: '#/components/schemas/PrintPartnerExportFormat' pages: description: 'To specify which pages to export in a multi-page design, provide the page numbers as an array. The first page in a design is page `1`. If `pages` isn''t specified, all the pages are exported.' example: - 2 - 3 - 4 items: format: int32 minimum: 1 type: integer type: array required: - design_id - format type: object PrintPartnerExportDimensions: description: 'Dimensions of the export in the specified units. The design dimensions must be within a scale factor of 0.3 and 3 of the requested export dimensions.' properties: width: description: 'The width of the exported image. Note the following behavior: - If no height or width is specified, the image is exported using the dimensions of the design. - If only one of height or width is specified, then the image is scaled to match that dimension, respecting the design''s aspect ratio. - If both the height and width are specified, but the values don''t match the design''s aspect ratio, the export defaults to the larger dimension.' format: double minimum: 1 type: number height: description: 'The height of the exported image. Note the following behavior: - If no height or width is specified, the image is exported using the dimensions of the design. - If only one of height or width is specified, then the image is scaled to match that dimension, respecting the design''s aspect ratio. - If both the height and width are specified, but the values don''t match the design''s aspect ratio, the export defaults to the larger dimension.' format: double minimum: 1 type: number units: $ref: '#/components/schemas/PrintPartnerExportDimensionsUnits' type: object CreateDesignExportJobRequest: description: 'Body parameters for starting an export job for a design. It must include a design ID, and one of the supported export formats.' example: design_id: DAVZr1z5464 format: type: pdf size: a4 pages: - 2 - 3 - 4 properties: design_id: description: The design ID. type: string format: $ref: '#/components/schemas/ExportFormat' required: - design_id - format type: object Error: properties: code: $ref: '#/components/schemas/ErrorCode' message: description: A human-readable description of what went wrong. type: string required: - code - message type: object PrintPartnerExportDimensionsUnits: default: px description: The units of the dimensions. If no units are specified, pixels are used. enum: - px - in - cm - mm type: string ErrorCode: description: 'A short string indicating what failed. This field can be used to handle errors programmatically. ' enum: - internal_error - invalid_field - invalid_header_value - permission_denied - too_many_requests - not_found - bad_request_body - bad_http_method - bad_request_params - bad_query_params - user_role_required - endpoint_not_found - endpoint_gone - unsupported_version - invalid_access_token - revoked_access_token - missing_field - missing_scope - invalid_grant - invalid_request - invalid_client - unauthorized_client - unsupported_grant_type - invalid_scope - invalid_basic_header - invalid_file_format - quota_exceeded - ai_credit_quota_exceeded - ai_credit_quota_cooldown - unsupported_content_type - request_too_large - folder_not_found - item_in_multiple_folders - asset_not_found - max_limit_reached - permission_not_found - permission_exists - unauthorized_user - user_not_found - user_not_eligible - group_not_found - app_not_found - app_has_non_draft_versions - invalid_status_transition - translation_validation_failed - content_not_found - doctype_not_found - design_not_found - offset_too_large - page_not_found - design_or_comment_not_found - design_or_thread_not_found - review_dismissed - design_type_not_found - team_not_found - team_is_default - comment_not_found - too_many_comments - too_many_replies - message_too_long - thread_not_found - reply_not_found - design_not_fillable - autofill_data_invalid - feature_not_available - unsupported_design_type - design_generation_not_enabled - license_required - input_unsafe - display_name_unavailable - user_not_managed - saml_team_id_conflict - saml_name_id_not_available - user_email_unverified - user_not_active - user_pending_consent - account_exists type: string Mp4ExportQuality: description: 'The orientation and resolution of the exported video. Orientation is either `horizontal` or `vertical`, and resolution is one of `480p`, `720p`, `1080p` or `4k`.' enum: - horizontal_480p - horizontal_720p - horizontal_1080p - horizontal_4k - vertical_480p - vertical_720p - vertical_1080p - vertical_4k type: string CreatePrintPartnerDesignExportJobResponse: properties: job: $ref: '#/components/schemas/ExportJob' required: - job type: object DesignExportStatus: description: 'The export status of the job. A newly created job will be `in_progress` and will eventually become `success` or `failed`.' enum: - failed - in_progress - success type: string PrintPartnerExportFormat: description: Details about the desired export format. discriminator: mapping: pdf: '#/components/schemas/PrintPartnerPdfExportFormat' propertyName: type oneOf: - $ref: '#/components/schemas/PrintPartnerPdfExportFormat' type: object CreateDesignExportJobResponse: properties: job: $ref: '#/components/schemas/ExportJob' required: - job type: object ExportErrorCode: description: If the export failed, this specifies the reason why it failed. enum: - license_required - approval_required - internal_failure type: string x-enum-descriptions: - The design contains [premium elements](https://www.canva.com/help/premium-elements/) that haven't been purchased. You can either buy the elements or upgrade to a Canva plan (such as Canva Pro) that has premium features, then try again. Alternatively, you can set `export_quality` to `regular` to export your document in regular quality. - The design requires [reviewer approval](https://www.canva.com/en_au/help/design-approval/) before it can be exported. - The service encountered an error when exporting your design. Mp4ExportFormat: description: Export the design as an MP4. You must specify the quality of the exported video. properties: type: enum: - mp4 type: string export_quality: $ref: '#/components/schemas/ExportQuality' quality: $ref: '#/components/schemas/Mp4ExportQuality' pages: description: 'To specify which pages to export in a multi-page design, provide the page numbers as an array. The first page in a design is page `1`. If `pages` isn''t specified, all the pages are exported.' example: - 2 - 3 - 4 items: format: int32 minimum: 1 type: integer type: array required: - quality - type type: object PdfExportFormat: description: Export the design as a PDF. Providing a paper size is optional. properties: type: enum: - pdf type: string export_quality: $ref: '#/components/schemas/ExportQuality' size: $ref: '#/components/schemas/ExportPageSize' pages: description: 'To specify which pages to export in a multi-page design, provide the page numbers as an array. The first page in a design is page `1`. If `pages` isn''t specified, all the pages are exported.' example: - 2 - 3 - 4 items: format: int32 minimum: 1 type: integer type: array required: - type type: object HtmlBundleExportFormat: description: Export the email design as an HTML bundle. An HTML bundle is a zip file that contains an HTML file and the associated assets. properties: type: enum: - html_bundle type: string pages: description: 'The pages of the design to export. Currently only a single page can be exported. If not provided, the first page of the design is used.' example: - 1 items: format: int32 minimum: 1 type: integer maxItems: 1 minItems: 1 type: array required: - type type: object JpgExportFormat: description: 'Export the design as a JPEG. Compression quality must be provided. Height or width (or both) may be specified, otherwise the file will be exported at it''s default size. If the user is on the Canva Free plan, the export height and width for a fixed-dimension design can''t be upscaled by more than a factor of `1.125`.' properties: type: enum: - jpg type: string export_quality: $ref: '#/components/schemas/ExportQuality' quality: description: For the `jpg` type, the `quality` of the exported JPEG determines how compressed the exported file should be. A _low_ `quality` value will create a file with a smaller file size, but the resulting file will have pixelated artifacts when compared to a file created with a _high_ `quality` value. example: 80 format: int32 maximum: 100 minimum: 1 type: integer height: description: 'Specify the height in pixels of the exported image. Note the following behavior: - If no height or width is specified, the image is exported using the dimensions of the design. - If only one of height or width is specified, then the image is scaled to match that dimension, respecting the design''s aspect ratio. - If both the height and width are specified, but the values don''t match the design''s aspect ratio, the export defaults to the larger dimension.' example: 400 format: int32 maximum: 25000 minimum: 40 type: integer width: description: 'Specify the width in pixels of the exported image. Note the following behavior: - If no width or height is specified, the image is exported using the dimensions of the design. - If only one of width or height is specified, then the image is scaled to match that dimension, respecting the design''s aspect ratio. - If both the width and height are specified, but the values don''t match the design''s aspect ratio, the export defaults to the larger dimension.' example: 400 format: int32 maximum: 25000 minimum: 40 type: integer pages: description: 'To specify which pages to export in a multi-page design, provide the page numbers as an array. The first page in a design is page `1`. If `pages` isn''t specified, all the pages are exported.' example: - 2 - 3 - 4 items: format: int32 minimum: 1 type: integer type: array required: - quality - type type: object ExportPageSize: default: a4 description: The paper size of the export PDF file. The `size` attribute is only supported for Documents (Canva Docs). enum: - a4 - a3 - letter - legal example: a4 type: string PrintPartnerPdfExportFormat: description: Export the design as a Print-quality PDF. properties: type: enum: - pdf type: string bleed: default: 3000 description: The size of the bleed that should be added to the design. The units of the bleed must be microns. This should match the bleed value used when creating the design with the [Create print partner design API](https://www.canva.dev/docs/connect/api-reference/print-partner/create-print-partner-design/). Use 0 for no bleed. If bleed is not specified, a default of 3000 microns is used. format: int32 maximum: 150000 minimum: 0 type: integer crop_marks: default: false description: Whether crop marks should be added to the image. type: boolean cmyk: default: false description: Whether the PDF color space should be converted to CMYK. type: boolean pdfx: default: false description: 'Whether the PDF standard should be updated to PDF/X, a printer friendly standard.' type: boolean required: - type type: object GetDesignExportJobResponse: properties: job: $ref: '#/components/schemas/ExportJob' required: - job type: object examples: DesignPermissionDeniedError: summary: Not allowed to access design. value: code: permission_denied message: Not allowed to access design with id {designId} SuccessExportJobExample: summary: Successfully completed job value: job: id: e08861ae-3b29-45db-8dc1-1fe0bf7f1cc8 status: success urls: - https://export-download.canva.com/... UnsupportedDesignType: summary: Export not supported for this design type. value: code: bad_request_body message: '{formatType} export not supported for this design type' InvalidPageRangeError: summary: Requested invalid page range for design. value: code: bad_request_body message: Requested page(s) [{badPageNumbers}] of a design with {maxPageNumber} page(s) ExportJobExpiredError: summary: Export job result has expired. value: code: not_found message: export job result has expired ResourceUnavailableError: summary: One or more of the resources in the design did not upload properly. value: code: permission_denied message: One or more of the resources in the design did not upload properly ExportScaleFactorOutsideRangeError: summary: Requested dimensions exceed expected bounds. value: code: bad_request_body message: Requested dimensions exceed expected bounds PrintPartnerExportForbidden: summary: Client does not have permission to create a Print Partner export. value: code: permission_denied message: Client does not have permission to create a Print Partner export PrintPartnerUnsupportedDesignTypeError: summary: Print partner export not supported for this design type. value: code: bad_request_body message: Print partner export not supported for this design type InProgressExportJobExample: summary: In progress job value: job: id: e08861ae-3b29-45db-8dc1-1fe0bf7f1cc8 status: in_progress UnsupportedFormatError: summary: Export format not supported for requested page(s). value: code: bad_request_body message: '{formatType} export not supported for requested page(s) [{pageNumbers}]' PrintPartnerUnsupportedDesignError: summary: Print partner export not supported for this design. value: code: bad_request_body message: Print partner export not supported for this design ExportInvalidDesignIdError: summary: Request design ID does not match expected format. value: code: invalid_request message: '{designId} does not match expected format for designId' SvgExportUnavailableError: summary: SVG export is currently unavailable. value: code: feature_not_available message: SVG Export is currently unavailable TransparentBackgroundNotAllowedError: summary: User's plan does not allow exporting PNGs with transparent background. value: code: bad_request_params message: Users on the Canva Free plan can not export PNGs with transparent background. ClientThrottleError: summary: Too many requests for client. value: code: too_many_requests message: Too many export requests for client UserDailyThrottleError: summary: Too many daily requests for user. value: code: too_many_requests message: Too many daily export requests for user UserThrottleError: summary: Too many requests for user. value: code: too_many_requests message: Too many export requests for user ExportJobResultPermissionDeniedError: summary: Not allowed to access export job result. value: code: permission_denied message: Not allowed to access export job result DesignThrottleError: summary: Too many requests for design. value: code: too_many_requests message: Too many export requests for design LicenseRequiredError: summary: User doesn't have the required license to export in PRO quality. value: code: license_required message: User doesn't have the required license to export in PRO quality ExportJobPermissionDeniedError: summary: Not allowed to access export job. value: code: permission_denied message: Not allowed to access export job ExportDesignNotFoundError: summary: Design not found. value: code: design_not_found message: Design with id '{designId}' not found FailedExportJobExample: summary: Failed job value: job: id: e08861ae-3b29-45db-8dc1-1fe0bf7f1cc8 status: failed error: code: license_required message: User doesn't have the required license to export in PRO quality. ClientDailyThrottleError: summary: Too many daily requests for client. value: code: too_many_requests message: Too many daily export requests for client EmbeddedMediaError: summary: The design contains embedded media that no longer work. value: code: permission_denied message: The design contains embedded media that no longer work securitySchemes: basicAuth: scheme: basic type: http oauthAuthCode: flows: authorizationCode: authorizationUrl: https://www.canva.com/api/oauth/authorize scopes: design:content:read: View the contents of the user's designs. design:meta:read: View the metadata of the user's designs. design:content:write: Create designs on the user's behalf. folder:read: 'View the metadata and contents of the user''s folders, including their **Projects** folder.' folder:write: 'Add, move, or remove the user''s folders. It also lets you edit folder metadata, such as the folder''s name.' folder:permission:write: Set, update, or remove permissions assigned to the user's folders. asset:read: View the metadata for the user's assets, such as uploaded images. asset:write: Upload, update, or delete assets on the user's behalf. comment:read: View the comments on the user's designs, and the associated metadata. comment:write: Create comments and replies on the user's designs. collaboration:event: Receive webhook notifications about events relevant to the user. brandtemplate:meta:read: View the metadata of the brand templates associated with the user's brand. brandtemplate:content:read: Read the content of the brand templates associated with the user's brand. brandtemplate:content:write: Publish brand templates associated with the user's brand. profile:read: Read a user's profile and account information. openid: Read user information through Open ID Connect (OIDC). profile: Read user profile information through OIDC. email: Read user email address through OIDC. tokenUrl: https://api.canva.com/rest/v1/oauth/token type: oauth2