openapi: 3.0.3 info: title: ImageKit Account Management API Origins API version: 1.0.0 description: Checkout [API overview](/docs/api-overview) to learn about ImageKit's APIs, authentication, rate limits, and error codes etc. contact: email: developer@imagekit.io name: ImageKit Team url: https://imagekit.io termsOfService: https://imagekit.io/terms/ servers: - url: https://api.imagekit.io security: - basicAuth: [] tags: - name: Origins paths: /v1/accounts/origins: get: summary: List origins tags: - Origins operationId: list-origins description: "**Note:** This API is currently in beta. \nReturns an array of all configured origins for the current account.\n" responses: '200': description: Successful response. content: application/json: schema: type: array items: $ref: '#/components/schemas/OriginResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/RateLimitExceeded' post: summary: Create origin tags: - Origins operationId: create-origin description: "**Note:** This API is currently in beta. \nCreates a new origin and returns the origin object.\n" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OriginRequest' responses: '201': description: Origin created successfully. content: application/json: schema: $ref: '#/components/schemas/OriginResponse' '400': description: Bad request. The request body is invalid. content: application/json: schema: type: object properties: message: type: string examples: - Invalid origin type. Must be one of S3, S3_COMPATIBLE, CLOUDINARY_BACKUP, WEB_FOLDER, WEB_PROXY, GCS, AZURE_BLOB, AKENEO_PIM. - name is required and must be a string - bucket is required and must be a string help: type: string example: For support kindly contact us at support@imagekit.io. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/RateLimitExceeded' /v1/accounts/origins/{id}: get: summary: Get origin tags: - Origins operationId: get-origin description: "**Note:** This API is currently in beta. \nRetrieves the origin identified by `id`.\n" parameters: - in: path name: id schema: description: Unique identifier for the origin. This is generated by ImageKit when you create a new origin. type: string required: true description: Unique identifier for the origin. This is generated by ImageKit when you create a new origin. responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/OriginResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': description: Resource not found content: application/json: schema: type: object properties: message: type: string examples: - Origin not found. help: type: string example: For support kindly contact us at support@imagekit.io. '429': $ref: '#/components/responses/RateLimitExceeded' put: summary: Update origin tags: - Origins operationId: update-origin description: "**Note:** This API is currently in beta. \nUpdates the origin identified by `id` and returns the updated origin object.\n" parameters: - in: path name: id schema: description: Unique identifier for the origin. This is generated by ImageKit when you create a new origin. type: string required: true description: Unique identifier for the origin. This is generated by ImageKit when you create a new origin. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OriginRequest' responses: '200': description: Origin updated successfully. content: application/json: schema: $ref: '#/components/schemas/OriginResponse' '400': description: Bad request. The request body is invalid. content: application/json: schema: type: object properties: message: type: string examples: - Invalid origin type. Must be one of S3, S3_COMPATIBLE, CLOUDINARY_BACKUP, WEB_FOLDER, WEB_PROXY, GCS, AZURE_BLOB, AKENEO_PIM. - name is required and must be a string - bucket is required and must be a string help: type: string example: For support kindly contact us at support@imagekit.io. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': description: Resource not found content: application/json: schema: type: object properties: message: type: string examples: - Origin not found. help: type: string example: For support kindly contact us at support@imagekit.io. '429': $ref: '#/components/responses/RateLimitExceeded' delete: summary: Delete origin tags: - Origins operationId: delete-origin description: "**Note:** This API is currently in beta. \nPermanently removes the origin identified by `id`. If the origin is in use by any URL‑endpoints, the API will return an error.\n" parameters: - in: path name: id schema: description: Unique identifier for the origin. This is generated by ImageKit when you create a new origin. type: string required: true description: Unique identifier for the origin. This is generated by ImageKit when you create a new origin. responses: '204': description: Origin deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': description: Resource not found content: application/json: schema: type: object properties: message: type: string examples: - Origin not found. help: type: string example: For support kindly contact us at support@imagekit.io. '429': $ref: '#/components/responses/RateLimitExceeded' components: schemas: OriginRequest: title: Origin request description: Schema for origin request resources. example: name: My S3 Origin type: S3 bucket: test-bucket prefix: images accessKey: AKIATEST123 secretKey: secrettest123 discriminator: propertyName: type oneOf: - title: S3 type: object properties: name: description: Display name of the origin. example: US S3 Storage type: string minLength: 1 maxLength: 100 pattern: ^[a-zA-Z0-9 ]+$ type: type: string enum: - S3 includeCanonicalHeader: description: Whether to send a Canonical header. example: false default: false type: boolean baseUrlForCanonicalHeader: description: URL used in the Canonical header (if enabled). example: https://cdn.example.com type: string format: uri bucket: description: S3 bucket name. example: product-images type: string minLength: 1 maxLength: 100 prefix: description: Path prefix inside the bucket. example: raw-assets default: '' type: string maxLength: 100 accessKey: description: Access key for the bucket. example: AKIAIOSFODNN7EXAMPLE type: string minLength: 1 maxLength: 100 secretKey: description: Secret key for the bucket. example: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY type: string minLength: 1 maxLength: 100 required: - name - type - bucket - accessKey - secretKey additionalProperties: false - title: S3 Compatible type: object properties: name: description: Display name of the origin. example: US S3 Storage type: string minLength: 1 maxLength: 100 pattern: ^[a-zA-Z0-9 ]+$ type: type: string enum: - S3_COMPATIBLE includeCanonicalHeader: description: Whether to send a Canonical header. example: false default: false type: boolean baseUrlForCanonicalHeader: description: URL used in the Canonical header (if enabled). example: https://cdn.example.com type: string format: uri bucket: description: S3 bucket name. example: product-images type: string minLength: 1 maxLength: 100 prefix: description: Path prefix inside the bucket. example: raw-assets default: '' type: string maxLength: 100 accessKey: description: Access key for the bucket. example: AKIAIOSFODNN7EXAMPLE type: string minLength: 1 maxLength: 100 secretKey: description: Secret key for the bucket. example: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY type: string minLength: 1 maxLength: 100 endpoint: description: Custom S3-compatible endpoint. example: https://s3.eu-central-1.wasabisys.com type: string format: uri s3ForcePathStyle: default: false description: Use path-style S3 URLs? example: true type: boolean required: - name - type - bucket - accessKey - secretKey - endpoint additionalProperties: false - title: Cloudinary Backup type: object properties: name: description: Display name of the origin. example: US S3 Storage type: string minLength: 1 maxLength: 100 pattern: ^[a-zA-Z0-9 ]+$ type: type: string enum: - CLOUDINARY_BACKUP includeCanonicalHeader: description: Whether to send a Canonical header. example: false default: false type: boolean baseUrlForCanonicalHeader: description: URL used in the Canonical header (if enabled). example: https://cdn.example.com type: string format: uri bucket: description: S3 bucket name. example: product-images type: string minLength: 1 maxLength: 100 prefix: description: Path prefix inside the bucket. example: raw-assets default: '' type: string maxLength: 100 accessKey: description: Access key for the bucket. example: AKIAIOSFODNN7EXAMPLE type: string minLength: 1 maxLength: 100 secretKey: description: Secret key for the bucket. example: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY type: string minLength: 1 maxLength: 100 required: - name - type - bucket - accessKey - secretKey additionalProperties: false - title: Web Folder type: object properties: name: description: Display name of the origin. example: US S3 Storage type: string minLength: 1 maxLength: 100 pattern: ^[a-zA-Z0-9 ]+$ type: type: string enum: - WEB_FOLDER includeCanonicalHeader: description: Whether to send a Canonical header. example: false default: false type: boolean baseUrlForCanonicalHeader: description: URL used in the Canonical header (if enabled). example: https://cdn.example.com type: string format: uri baseUrl: description: Root URL for the web folder origin. example: https://images.example.com/assets type: string format: uri forwardHostHeaderToOrigin: description: Forward the Host header to origin? example: false default: false type: boolean required: - name - type - baseUrl additionalProperties: false - title: Web Proxy type: object properties: name: description: Display name of the origin. example: US S3 Storage type: string minLength: 1 maxLength: 100 pattern: ^[a-zA-Z0-9 ]+$ type: type: string enum: - WEB_PROXY includeCanonicalHeader: description: Whether to send a Canonical header. example: false default: false type: boolean baseUrlForCanonicalHeader: description: URL used in the Canonical header (if enabled). example: https://cdn.example.com type: string format: uri required: - name - type additionalProperties: false - title: Google Cloud Storage (GCS) type: object properties: name: description: Display name of the origin. example: US S3 Storage type: string minLength: 1 maxLength: 100 pattern: ^[a-zA-Z0-9 ]+$ type: type: string enum: - GCS includeCanonicalHeader: description: Whether to send a Canonical header. example: false default: false type: boolean baseUrlForCanonicalHeader: description: URL used in the Canonical header (if enabled). example: https://cdn.example.com type: string format: uri bucket: example: gcs-media type: string minLength: 1 maxLength: 100 prefix: example: products default: '' type: string maxLength: 100 clientEmail: example: service-account@project.iam.gserviceaccount.com type: string format: email pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$ privateKey: example: '-----BEGIN PRIVATE KEY-----\nMIIEv...' type: string minLength: 1 required: - name - type - bucket - clientEmail - privateKey additionalProperties: false - title: Azure Blob Storage type: object properties: name: description: Display name of the origin. example: US S3 Storage type: string minLength: 1 maxLength: 100 pattern: ^[a-zA-Z0-9 ]+$ type: type: string enum: - AZURE_BLOB includeCanonicalHeader: description: Whether to send a Canonical header. example: false default: false type: boolean baseUrlForCanonicalHeader: description: URL used in the Canonical header (if enabled). example: https://cdn.example.com type: string format: uri container: example: images type: string minLength: 1 maxLength: 100 prefix: example: uploads default: '' type: string maxLength: 100 accountName: example: account123 type: string minLength: 1 maxLength: 100 sasToken: example: ?sv=2023-01-03&sr=c&sig=abc123 type: string minLength: 1 required: - name - type - container - accountName - sasToken additionalProperties: false - title: Akeneo PIM type: object properties: name: description: Display name of the origin. example: US S3 Storage type: string minLength: 1 maxLength: 100 pattern: ^[a-zA-Z0-9 ]+$ type: type: string enum: - AKENEO_PIM includeCanonicalHeader: description: Whether to send a Canonical header. example: false default: false type: boolean baseUrlForCanonicalHeader: description: URL used in the Canonical header (if enabled). example: https://cdn.example.com type: string format: uri baseUrl: description: Akeneo instance base URL. example: https://akeneo.company.com type: string format: uri clientId: description: Akeneo API client ID. example: akeneo-client-id type: string minLength: 1 maxLength: 100 clientSecret: description: Akeneo API client secret. example: akeneo-client-secret type: string minLength: 1 maxLength: 100 username: description: Akeneo API username. example: integration-user type: string minLength: 1 maxLength: 100 password: description: Akeneo API password. example: strongpassword123 type: string minLength: 1 maxLength: 100 required: - name - type - baseUrl - clientId - clientSecret - username - password additionalProperties: false type: object OriginResponse: title: Origin Response description: Origin object as returned by the API (sensitive fields removed). discriminator: propertyName: type oneOf: - title: S3 type: object properties: name: description: Display name of the origin. example: US S3 Storage type: string minLength: 1 maxLength: 100 pattern: ^[a-zA-Z0-9 ]+$ type: type: string enum: - S3 includeCanonicalHeader: description: Whether to send a Canonical header. example: false default: false type: boolean baseUrlForCanonicalHeader: description: URL used in the Canonical header (if enabled). example: https://cdn.example.com type: string format: uri bucket: description: S3 bucket name. example: product-images type: string minLength: 1 maxLength: 100 prefix: type: string description: Path prefix inside the bucket. example: raw-assets id: readOnly: true description: Unique identifier for the origin. This is generated by ImageKit when you create a new origin. type: string required: - name - type - includeCanonicalHeader - bucket - prefix - id additionalProperties: false - title: S3 Compatible type: object properties: name: description: Display name of the origin. example: US S3 Storage type: string minLength: 1 maxLength: 100 pattern: ^[a-zA-Z0-9 ]+$ type: type: string enum: - S3_COMPATIBLE includeCanonicalHeader: description: Whether to send a Canonical header. example: false default: false type: boolean baseUrlForCanonicalHeader: description: URL used in the Canonical header (if enabled). example: https://cdn.example.com type: string format: uri bucket: description: S3 bucket name. example: product-images type: string minLength: 1 maxLength: 100 prefix: type: string description: Path prefix inside the bucket. example: raw-assets endpoint: description: Custom S3-compatible endpoint. example: https://s3.eu-central-1.wasabisys.com type: string format: uri s3ForcePathStyle: default: false description: Use path-style S3 URLs? example: true type: boolean id: readOnly: true description: Unique identifier for the origin. This is generated by ImageKit when you create a new origin. type: string required: - name - type - includeCanonicalHeader - bucket - prefix - endpoint - s3ForcePathStyle - id additionalProperties: false - title: Cloudinary Backup type: object properties: name: description: Display name of the origin. example: US S3 Storage type: string minLength: 1 maxLength: 100 pattern: ^[a-zA-Z0-9 ]+$ type: type: string enum: - CLOUDINARY_BACKUP includeCanonicalHeader: description: Whether to send a Canonical header. example: false default: false type: boolean baseUrlForCanonicalHeader: description: URL used in the Canonical header (if enabled). example: https://cdn.example.com type: string format: uri bucket: description: S3 bucket name. example: product-images type: string minLength: 1 maxLength: 100 prefix: type: string description: Path prefix inside the bucket. example: raw-assets id: readOnly: true description: Unique identifier for the origin. This is generated by ImageKit when you create a new origin. type: string required: - name - type - includeCanonicalHeader - bucket - prefix - id additionalProperties: false - title: Web Folder type: object properties: name: description: Display name of the origin. example: US S3 Storage type: string minLength: 1 maxLength: 100 pattern: ^[a-zA-Z0-9 ]+$ type: type: string enum: - WEB_FOLDER includeCanonicalHeader: description: Whether to send a Canonical header. example: false default: false type: boolean baseUrlForCanonicalHeader: description: URL used in the Canonical header (if enabled). example: https://cdn.example.com type: string format: uri baseUrl: type: string format: uri description: Root URL for the web folder origin. example: https://images.example.com/assets forwardHostHeaderToOrigin: description: Forward the Host header to origin? example: false default: false type: boolean id: readOnly: true description: Unique identifier for the origin. This is generated by ImageKit when you create a new origin. type: string required: - name - type - includeCanonicalHeader - baseUrl - forwardHostHeaderToOrigin - id additionalProperties: false - title: Web Proxy type: object properties: name: description: Display name of the origin. example: US S3 Storage type: string minLength: 1 maxLength: 100 pattern: ^[a-zA-Z0-9 ]+$ type: type: string enum: - WEB_PROXY includeCanonicalHeader: description: Whether to send a Canonical header. example: false default: false type: boolean baseUrlForCanonicalHeader: description: URL used in the Canonical header (if enabled). example: https://cdn.example.com type: string format: uri id: readOnly: true description: Unique identifier for the origin. This is generated by ImageKit when you create a new origin. type: string required: - name - type - includeCanonicalHeader - id additionalProperties: false - title: Google Cloud Storage (GCS) type: object properties: name: description: Display name of the origin. example: US S3 Storage type: string minLength: 1 maxLength: 100 pattern: ^[a-zA-Z0-9 ]+$ type: type: string enum: - GCS includeCanonicalHeader: description: Whether to send a Canonical header. example: false default: false type: boolean baseUrlForCanonicalHeader: description: URL used in the Canonical header (if enabled). example: https://cdn.example.com type: string format: uri bucket: example: gcs-media type: string minLength: 1 maxLength: 100 prefix: type: string example: products clientEmail: example: service-account@project.iam.gserviceaccount.com type: string format: email pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$ id: readOnly: true description: Unique identifier for the origin. This is generated by ImageKit when you create a new origin. type: string required: - name - type - includeCanonicalHeader - bucket - prefix - clientEmail - id additionalProperties: false - title: Azure Blob Storage type: object properties: name: description: Display name of the origin. example: US S3 Storage type: string minLength: 1 maxLength: 100 pattern: ^[a-zA-Z0-9 ]+$ type: type: string enum: - AZURE_BLOB includeCanonicalHeader: description: Whether to send a Canonical header. example: false default: false type: boolean baseUrlForCanonicalHeader: description: URL used in the Canonical header (if enabled). example: https://cdn.example.com type: string format: uri container: example: images type: string minLength: 1 maxLength: 100 prefix: type: string example: uploads accountName: example: account123 type: string minLength: 1 maxLength: 100 id: readOnly: true description: Unique identifier for the origin. This is generated by ImageKit when you create a new origin. type: string required: - name - type - includeCanonicalHeader - container - prefix - accountName - id additionalProperties: false - title: Akeneo PIM type: object properties: name: description: Display name of the origin. example: US S3 Storage type: string minLength: 1 maxLength: 100 pattern: ^[a-zA-Z0-9 ]+$ type: type: string enum: - AKENEO_PIM includeCanonicalHeader: description: Whether to send a Canonical header. example: false default: false type: boolean baseUrlForCanonicalHeader: description: URL used in the Canonical header (if enabled). example: https://cdn.example.com type: string format: uri baseUrl: type: string format: uri description: Akeneo instance base URL. example: https://akeneo.company.com id: readOnly: true description: Unique identifier for the origin. This is generated by ImageKit when you create a new origin. type: string required: - name - type - includeCanonicalHeader - baseUrl - id additionalProperties: false type: object responses: Forbidden: description: Forbidden. content: application/json: schema: type: object properties: message: type: string examples: - Your account cannot be authenticated. - Your request contains expired private API key. - Your account is disabled. help: type: string example: For support kindly contact us at support@imagekit.io. Unauthorized: description: Unauthorized request. content: application/json: schema: type: object properties: message: type: string example: Your request does not contain private API key. help: type: string example: For support kindly contact us at support@imagekit.io. RateLimitExceeded: description: The request exceeded the rate limit. Contains headers indicating the limits and a message detailing the error. headers: X-RateLimit-Limit: schema: type: integer description: The maximum number of requests that can be made to this endpoint in the interval specified by `X-RateLimit-Interval` response header. X-RateLimit-Reset: schema: type: integer description: The amount of time in milliseconds before you can make another request to this endpoint. Pause/sleep your workflow for this duration. X-RateLimit-Interval: schema: type: integer description: The duration of the interval in milliseconds for which this rate limit was exceeded. content: application/json: schema: type: object properties: message: type: string description: A description of the error, providing details about why the rate limit has been exceeded. securitySchemes: basicAuth: description: 'Basic HTTP authentication. Allowed headers-- Authorization: Basic | Authorization: Basic ImageKit API uses API keys to authenticate requests. You can view and manage your API keys in [the dashboard](https://imagekit.io/dashboard/developer/api-keys). All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.' scheme: basic type: http