openapi: 3.0.0 info: contact: email: contact@yousign.com name: Support url: https://yousign.com/contact description: Build the best experience of digital signature through your own platform. Increase your conversion rates, leverage your data and reduce your costs with Yousign API. license: name: proprietary url: https://yousign.com/terms title: Public Api v3 Applicant Archive API version: '3.0' servers: - description: Sandbox URL url: https://api-sandbox.yousign.app/v3 - description: Production URL url: https://api.yousign.app/v3 security: - bearerAuth: [] tags: - description: A feature allowing to store and retrieve documents on Arkhineo for some customers migrated from v2 name: Archive paths: /archives: post: description: Archive a file in a secure digital safe for 10 years operationId: post-archives requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/UploadArchivedFile' responses: '201': content: application/json: schema: $ref: '#/components/schemas/ArchivedFile' description: The upload of the archived file is successful. headers: RateLimit-Limit: $ref: '#/components/headers/rateLimit-limit' X-RateLimit-Limit-Hour: $ref: '#/components/headers/rateLimit-limit-hour' X-RateLimit-Limit-Minute: $ref: '#/components/headers/rateLimit-limit-minute' RateLimit-Remaining: $ref: '#/components/headers/rateLimit-remaining' X-RateLimit-Remaining-Hour: $ref: '#/components/headers/rateLimit-remaining-hour' X-RateLimit-Remaining-Minute: $ref: '#/components/headers/rateLimit-remaining-minute' RateLimit-Reset: $ref: '#/components/headers/rateLimit-reset' '400': content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' description: Bad request headers: RateLimit-Limit: $ref: '#/components/headers/rateLimit-limit' X-RateLimit-Limit-Hour: $ref: '#/components/headers/rateLimit-limit-hour' X-RateLimit-Limit-Minute: $ref: '#/components/headers/rateLimit-limit-minute' RateLimit-Remaining: $ref: '#/components/headers/rateLimit-remaining' X-RateLimit-Remaining-Hour: $ref: '#/components/headers/rateLimit-remaining-hour' X-RateLimit-Remaining-Minute: $ref: '#/components/headers/rateLimit-remaining-minute' RateLimit-Reset: $ref: '#/components/headers/rateLimit-reset' '401': content: application/json: schema: $ref: '#/components/schemas/UnauthorizedResponse' description: Access unauthorized headers: RateLimit-Limit: $ref: '#/components/headers/rateLimit-limit' X-RateLimit-Limit-Hour: $ref: '#/components/headers/rateLimit-limit-hour' X-RateLimit-Limit-Minute: $ref: '#/components/headers/rateLimit-limit-minute' RateLimit-Remaining: $ref: '#/components/headers/rateLimit-remaining' X-RateLimit-Remaining-Hour: $ref: '#/components/headers/rateLimit-remaining-hour' X-RateLimit-Remaining-Minute: $ref: '#/components/headers/rateLimit-remaining-minute' RateLimit-Reset: $ref: '#/components/headers/rateLimit-reset' '403': content: application/json: schema: $ref: '#/components/schemas/ForbiddenResponse' description: Access forbidden headers: RateLimit-Limit: $ref: '#/components/headers/rateLimit-limit' X-RateLimit-Limit-Hour: $ref: '#/components/headers/rateLimit-limit-hour' X-RateLimit-Limit-Minute: $ref: '#/components/headers/rateLimit-limit-minute' RateLimit-Remaining: $ref: '#/components/headers/rateLimit-remaining' X-RateLimit-Remaining-Hour: $ref: '#/components/headers/rateLimit-remaining-hour' X-RateLimit-Remaining-Minute: $ref: '#/components/headers/rateLimit-remaining-minute' RateLimit-Reset: $ref: '#/components/headers/rateLimit-reset' '404': content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' description: Resource not found headers: RateLimit-Limit: $ref: '#/components/headers/rateLimit-limit' X-RateLimit-Limit-Hour: $ref: '#/components/headers/rateLimit-limit-hour' X-RateLimit-Limit-Minute: $ref: '#/components/headers/rateLimit-limit-minute' RateLimit-Remaining: $ref: '#/components/headers/rateLimit-remaining' X-RateLimit-Remaining-Hour: $ref: '#/components/headers/rateLimit-remaining-hour' X-RateLimit-Remaining-Minute: $ref: '#/components/headers/rateLimit-remaining-minute' RateLimit-Reset: $ref: '#/components/headers/rateLimit-reset' '405': content: application/json: schema: $ref: '#/components/schemas/MethodNotAllowed' description: This method is not allowed headers: RateLimit-Limit: $ref: '#/components/headers/rateLimit-limit' X-RateLimit-Limit-Hour: $ref: '#/components/headers/rateLimit-limit-hour' X-RateLimit-Limit-Minute: $ref: '#/components/headers/rateLimit-limit-minute' RateLimit-Remaining: $ref: '#/components/headers/rateLimit-remaining' X-RateLimit-Remaining-Hour: $ref: '#/components/headers/rateLimit-remaining-hour' X-RateLimit-Remaining-Minute: $ref: '#/components/headers/rateLimit-remaining-minute' RateLimit-Reset: $ref: '#/components/headers/rateLimit-reset' Retry-After: $ref: '#/components/headers/retry-after' '415': content: application/json: schema: $ref: '#/components/schemas/UnsupportedMediaTypeResponse' description: UnsupportedMediaType headers: RateLimit-Limit: $ref: '#/components/headers/rateLimit-limit' X-RateLimit-Limit-Hour: $ref: '#/components/headers/rateLimit-limit-hour' X-RateLimit-Limit-Minute: $ref: '#/components/headers/rateLimit-limit-minute' RateLimit-Remaining: $ref: '#/components/headers/rateLimit-remaining' X-RateLimit-Remaining-Hour: $ref: '#/components/headers/rateLimit-remaining-hour' X-RateLimit-Remaining-Minute: $ref: '#/components/headers/rateLimit-remaining-minute' RateLimit-Reset: $ref: '#/components/headers/rateLimit-reset' '429': content: application/json: schema: $ref: '#/components/schemas/TooManyRequestsResponse' description: Too Many Requests, please try again later. headers: RateLimit-Limit: $ref: '#/components/headers/rateLimit-limit' X-RateLimit-Limit-Hour: $ref: '#/components/headers/rateLimit-limit-hour' X-RateLimit-Limit-Minute: $ref: '#/components/headers/rateLimit-limit-minute' RateLimit-Remaining: $ref: '#/components/headers/rateLimit-remaining' X-RateLimit-Remaining-Hour: $ref: '#/components/headers/rateLimit-remaining-hour' X-RateLimit-Remaining-Minute: $ref: '#/components/headers/rateLimit-remaining-minute' RateLimit-Reset: $ref: '#/components/headers/rateLimit-reset' Retry-After: $ref: '#/components/headers/retry-after' '500': content: application/json: schema: $ref: '#/components/schemas/InternalServerError' description: Internal Server Error headers: RateLimit-Limit: $ref: '#/components/headers/rateLimit-limit' X-RateLimit-Limit-Hour: $ref: '#/components/headers/rateLimit-limit-hour' X-RateLimit-Limit-Minute: $ref: '#/components/headers/rateLimit-limit-minute' RateLimit-Remaining: $ref: '#/components/headers/rateLimit-remaining' X-RateLimit-Remaining-Hour: $ref: '#/components/headers/rateLimit-remaining-hour' X-RateLimit-Remaining-Minute: $ref: '#/components/headers/rateLimit-remaining-minute' RateLimit-Reset: $ref: '#/components/headers/rateLimit-reset' summary: Direct upload an archived file tags: - Archive /archives/{archivedFileId}/download: get: description: Download the archived file using the ArchivedFileId. operationId: get-archives-archivedFileId-download parameters: - description: ArchivedFileId in: path name: archivedFileId required: true schema: $ref: '#/components/schemas/UUID' responses: '200': content: application/octet-stream: schema: format: binary type: string description: Download of archived file is successful headers: RateLimit-Limit: $ref: '#/components/headers/rateLimit-limit' X-RateLimit-Limit-Hour: $ref: '#/components/headers/rateLimit-limit-hour' X-RateLimit-Limit-Minute: $ref: '#/components/headers/rateLimit-limit-minute' RateLimit-Remaining: $ref: '#/components/headers/rateLimit-remaining' X-RateLimit-Remaining-Hour: $ref: '#/components/headers/rateLimit-remaining-hour' X-RateLimit-Remaining-Minute: $ref: '#/components/headers/rateLimit-remaining-minute' RateLimit-Reset: $ref: '#/components/headers/rateLimit-reset' '400': content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' description: Bad request headers: RateLimit-Limit: $ref: '#/components/headers/rateLimit-limit' X-RateLimit-Limit-Hour: $ref: '#/components/headers/rateLimit-limit-hour' X-RateLimit-Limit-Minute: $ref: '#/components/headers/rateLimit-limit-minute' RateLimit-Remaining: $ref: '#/components/headers/rateLimit-remaining' X-RateLimit-Remaining-Hour: $ref: '#/components/headers/rateLimit-remaining-hour' X-RateLimit-Remaining-Minute: $ref: '#/components/headers/rateLimit-remaining-minute' RateLimit-Reset: $ref: '#/components/headers/rateLimit-reset' '401': content: application/json: schema: $ref: '#/components/schemas/UnauthorizedResponse' description: Access unauthorized headers: RateLimit-Limit: $ref: '#/components/headers/rateLimit-limit' X-RateLimit-Limit-Hour: $ref: '#/components/headers/rateLimit-limit-hour' X-RateLimit-Limit-Minute: $ref: '#/components/headers/rateLimit-limit-minute' RateLimit-Remaining: $ref: '#/components/headers/rateLimit-remaining' X-RateLimit-Remaining-Hour: $ref: '#/components/headers/rateLimit-remaining-hour' X-RateLimit-Remaining-Minute: $ref: '#/components/headers/rateLimit-remaining-minute' RateLimit-Reset: $ref: '#/components/headers/rateLimit-reset' '403': content: application/json: schema: $ref: '#/components/schemas/ForbiddenResponse' description: Access forbidden headers: RateLimit-Limit: $ref: '#/components/headers/rateLimit-limit' X-RateLimit-Limit-Hour: $ref: '#/components/headers/rateLimit-limit-hour' X-RateLimit-Limit-Minute: $ref: '#/components/headers/rateLimit-limit-minute' RateLimit-Remaining: $ref: '#/components/headers/rateLimit-remaining' X-RateLimit-Remaining-Hour: $ref: '#/components/headers/rateLimit-remaining-hour' X-RateLimit-Remaining-Minute: $ref: '#/components/headers/rateLimit-remaining-minute' RateLimit-Reset: $ref: '#/components/headers/rateLimit-reset' '404': content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' description: Resource not found headers: RateLimit-Limit: $ref: '#/components/headers/rateLimit-limit' X-RateLimit-Limit-Hour: $ref: '#/components/headers/rateLimit-limit-hour' X-RateLimit-Limit-Minute: $ref: '#/components/headers/rateLimit-limit-minute' RateLimit-Remaining: $ref: '#/components/headers/rateLimit-remaining' X-RateLimit-Remaining-Hour: $ref: '#/components/headers/rateLimit-remaining-hour' X-RateLimit-Remaining-Minute: $ref: '#/components/headers/rateLimit-remaining-minute' RateLimit-Reset: $ref: '#/components/headers/rateLimit-reset' '405': content: application/json: schema: $ref: '#/components/schemas/MethodNotAllowed' description: This method is not allowed headers: RateLimit-Limit: $ref: '#/components/headers/rateLimit-limit' X-RateLimit-Limit-Hour: $ref: '#/components/headers/rateLimit-limit-hour' X-RateLimit-Limit-Minute: $ref: '#/components/headers/rateLimit-limit-minute' RateLimit-Remaining: $ref: '#/components/headers/rateLimit-remaining' X-RateLimit-Remaining-Hour: $ref: '#/components/headers/rateLimit-remaining-hour' X-RateLimit-Remaining-Minute: $ref: '#/components/headers/rateLimit-remaining-minute' RateLimit-Reset: $ref: '#/components/headers/rateLimit-reset' Retry-After: $ref: '#/components/headers/retry-after' '429': content: application/json: schema: $ref: '#/components/schemas/TooManyRequestsResponse' description: Too Many Requests, please try again later. headers: RateLimit-Limit: $ref: '#/components/headers/rateLimit-limit' X-RateLimit-Limit-Hour: $ref: '#/components/headers/rateLimit-limit-hour' X-RateLimit-Limit-Minute: $ref: '#/components/headers/rateLimit-limit-minute' RateLimit-Remaining: $ref: '#/components/headers/rateLimit-remaining' X-RateLimit-Remaining-Hour: $ref: '#/components/headers/rateLimit-remaining-hour' X-RateLimit-Remaining-Minute: $ref: '#/components/headers/rateLimit-remaining-minute' RateLimit-Reset: $ref: '#/components/headers/rateLimit-reset' Retry-After: $ref: '#/components/headers/retry-after' '500': content: application/json: schema: $ref: '#/components/schemas/InternalServerError' description: Internal Server Error headers: RateLimit-Limit: $ref: '#/components/headers/rateLimit-limit' X-RateLimit-Limit-Hour: $ref: '#/components/headers/rateLimit-limit-hour' X-RateLimit-Limit-Minute: $ref: '#/components/headers/rateLimit-limit-minute' RateLimit-Remaining: $ref: '#/components/headers/rateLimit-remaining' X-RateLimit-Remaining-Hour: $ref: '#/components/headers/rateLimit-remaining-hour' X-RateLimit-Remaining-Minute: $ref: '#/components/headers/rateLimit-remaining-minute' RateLimit-Reset: $ref: '#/components/headers/rateLimit-reset' summary: Download archived file tags: - Archive components: headers: rateLimit-remaining: description: The number of requests remaining in the current rate limit window schema: type: integer rateLimit-reset: description: The remaining time until the rate limit resets in seconds schema: type: integer rateLimit-remaining-hour: description: The number of requests remaining in the current hour rate limit window schema: type: integer rateLimit-limit: description: The maximum number of requests that the consumer is permitted to make in a given period schema: type: integer retry-after: description: Retry the request after X seconds schema: type: integer rateLimit-remaining-minute: description: The number of requests remaining in the current minute rate limit window schema: type: integer rateLimit-limit-minute: description: The maximum number of requests that the consumer is permitted to make in an minute window schema: type: integer rateLimit-limit-hour: description: The maximum number of requests that the consumer is permitted to make in an hour window schema: type: integer schemas: InternalServerError: properties: type: example: about:blank type: string detail: example: Something wrong occurred. type: string required: - detail - type title: InternalServerError type: object TooManyRequestsResponse: properties: message: type: string required: - message title: TooManyRequestsResponse type: object UnsupportedMediaTypeResponse: properties: type: type: string detail: type: string required: - detail - type title: UnsupportedMediaTypeResponse type: object MethodNotAllowed: properties: message: type: string required: - message title: MethodNotAllowed type: object NotFoundResponse: properties: type: type: string detail: type: string required: - detail - type title: NotFoundResponse type: object BadRequestResponse: properties: type: type: string detail: type: string required: - detail - type title: BadRequestResponse type: object ForbiddenResponse: properties: type: type: string detail: type: string required: - detail - type title: ForbiddenResponse type: object UnauthorizedResponse: properties: type: type: string detail: type: string required: - detail - type title: UnauthorizedResponse type: object ArchivedFile: description: ArchivedFile properties: id: example: 21ac9d25-e24d-4564-b964-d67eed561ca9 format: uuid minLength: 1 type: string sha256: description: Sha256 checksum example: 6ecf29381314217530c02c64a97050a0a6a0944bb974b6b417588277e289aef0 maxLength: 64 minLength: 64 type: string filename: maxLength: 255 minLength: 1 type: string created_at: description: Creation date of the file example: '2024-01-18T22:59:00Z' format: date-time type: string expired_at: description: Expiration date of the file example: '2025-01-18T22:59:00Z' format: date-time nullable: true type: string content_type: example: application/pdf type: string size: example: 123456 minimum: 1 type: integer archive_y_identifier: description: Identifier that allows to save the file in an additional storage. nullable: true type: string tags: description: Tags for the file items: maxLength: 1000 minLength: 1 pattern: '[^\x00-\x1F\x7F]*' type: string nullable: true type: array workspace_id: example: 528e2077-d0c1-4506-acd9-fac35a9cb7b4 format: uuid minLength: 1 type: string required: - archive_y_identifier - content_type - created_at - expired_at - filename - id - sha256 - size - tags - workspace_id title: ArchivedFile type: object UUID: description: The unique identifier for a resource. example: 9a93d3b5-fb3b-4abf-9e70-26315b33506c format: uuid type: string UploadArchivedFile: properties: file: description: File to be uploaded format: binary type: string workspace_id: example: 69120884-d29a-4b1a-ac7b-a9e73a872795 format: uuid nullable: true type: string archive_y: nullable: true pattern: ^(true|false)?$ type: string tags: description: Tags for the file items: maxLength: 1000 minLength: 1 pattern: '[^\x00-\x1F\x7F]*' type: string nullable: true type: array expired_at: description: Expiration date of the file example: '2024-06-24 09:26:44' nullable: true pattern: ^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]) ([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$ type: string required: - file type: object securitySchemes: bearerAuth: scheme: bearer type: http