{"openapi":"3.1.0","info":{"title":"ImageKit (BYOK) API","version":"0.1.0","description":"ImageKit (BYOK) lets an AI assistant read your own ImageKit data through the ImageKit API with a key you supply (private API key (a restricted key with read-only media access is enough)). Read-only: 9 tools (list_files, get_file_details, list_file_versions, get_file_metadata, list_custom_metadata_fields, get_account_usage, get_usage_analytics, list_url_endpoints, list_origins). The BYOK key...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-imagekit.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-imagekit/docs"},"termsOfService":"https://connectorbay.com/byok-imagekit/terms"},"servers":[{"url":"https://byok-imagekit.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-imagekit/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_files":{"post":{"operationId":"list_files","summary":"List or search files and folders in the ImageKit media library with type, path, size, dimensions, tags and dates. Up to ","description":"List or search files and folders in the ImageKit media library with type, path, size, dimensions, tags and dates. Up to 100 per call; page with skip. Use for \"What files are in my ImageKit /products folder\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"path":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Only assets in this folder, for example '/products/'.","title":"Path"},"search_query":{"anyOf":[{"maxLength":400,"type":"string"},{"type":"null"}],"default":null,"description":"Lucene-like query, for example 'createdAt > \"7d\"' or 'name : \"logo\"'. When set, tags, type and name filters are ignored.","title":"Search Query"},"type":{"anyOf":[{"enum":["file","file-version","folder","all"],"type":"string"},{"type":"null"}],"default":"file","description":"Assets to return: file, file-version, folder or all (files and folders).","title":"Type"},"file_type":{"anyOf":[{"enum":["all","image","non-image"],"type":"string"},{"type":"null"}],"default":"all","description":"Filter files: all, image or non-image.","title":"File Type"},"sort":{"anyOf":[{"enum":["ASC_NAME","DESC_NAME","ASC_CREATED","DESC_CREATED","ASC_UPDATED","DESC_UPDATED","ASC_HEIGHT","DESC_HEIGHT","ASC_WIDTH","DESC_WIDTH","ASC_SIZE","DESC_SIZE","ASC_RELEVANCE","DESC_RELEVANCE"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order.","title":"Sort"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"skip":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging.","title":"Skip"}},"title":"list_filesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_file_details":{"post":{"operationId":"get_file_details","summary":"Get one ImageKit file by id: name, path, type, size, dimensions, tags, AI tags, publish state, URL and dates. Use for \"S","description":"Get one ImageKit file by id: name, path, type, size, dimensions, tags, AI tags, publish state, URL and dates. Use for \"Show details of ImageKit file 598821f949c0a938d57563bd\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"file_id":{"description":"ImageKit file id, as returned by list_files (the fileId field).","maxLength":60,"title":"File Id","type":"string"}},"required":["file_id"],"title":"get_file_detailsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_file_versions":{"post":{"operationId":"list_file_versions","summary":"List the stored versions of an ImageKit file with version id, name, size and dates. Use for \"What versions exist of this","description":"List the stored versions of an ImageKit file with version id, name, size and dates. Use for \"What versions exist of this ImageKit file\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"file_id":{"description":"ImageKit file id, as returned by list_files (the fileId field).","maxLength":60,"title":"File Id","type":"string"}},"required":["file_id"],"title":"list_file_versionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_file_metadata":{"post":{"operationId":"get_file_metadata","summary":"Get technical metadata of an uploaded ImageKit file: format, dimensions, size, quality, density, duration and codecs. Us","description":"Get technical metadata of an uploaded ImageKit file: format, dimensions, size, quality, density, duration and codecs. Use for \"What are the dimensions and format of this ImageKit image\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"file_id":{"description":"ImageKit file id, as returned by list_files (the fileId field).","maxLength":60,"title":"File Id","type":"string"}},"required":["file_id"],"title":"get_file_metadataArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_custom_metadata_fields":{"post":{"operationId":"list_custom_metadata_fields","summary":"List custom metadata fields defined in the ImageKit media library with their value types and constraints. Use for \"Which","description":"List custom metadata fields defined in the ImageKit media library with their value types and constraints. Use for \"Which custom metadata fields have I defined in ImageKit\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"include_deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include fields that were deleted.","title":"Include Deleted"},"folder_path":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Only fields that apply to this folder path.","title":"Folder Path"}},"title":"list_custom_metadata_fieldsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_account_usage":{"post":{"operationId":"get_account_usage","summary":"Get ImageKit account usage between two dates: bandwidth, media library storage, video processing units, extension units ","description":"Get ImageKit account usage between two dates: bandwidth, media library storage, video processing units, extension units and original cache storage. Use for \"How much ImageKit bandwidth and storage did I use in September 2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_date":{"description":"First day, YYYY-MM-DD. The range must be shorter than 90 days.","maxLength":10,"title":"Start Date","type":"string"},"end_date":{"description":"Last day, YYYY-MM-DD, after start_date.","maxLength":10,"title":"End Date","type":"string"}},"required":["start_date","end_date"],"title":"get_account_usageArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_usage_analytics":{"post":{"operationId":"get_usage_analytics","summary":"Get ImageKit delivery analytics between two dates: request count, bandwidth, status codes, error reasons, top 404 assets","description":"Get ImageKit delivery analytics between two dates: request count, bandwidth, status codes, error reasons, top 404 assets and cache hits. Use for \"How many requests and cache hits did my ImageKit account serve in September 2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_date":{"description":"First day, YYYY-MM-DD. The range must be shorter than 90 days.","maxLength":10,"title":"Start Date","type":"string"},"end_date":{"description":"Last day, YYYY-MM-DD, after start_date.","maxLength":10,"title":"End Date","type":"string"}},"required":["start_date","end_date"],"title":"get_usage_analyticsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_url_endpoints":{"post":{"operationId":"list_url_endpoints","summary":"List ImageKit URL endpoints with description, URL prefix and the origins each uses. Use for \"What URL endpoints does my ","description":"List ImageKit URL endpoints with description, URL prefix and the origins each uses. Use for \"What URL endpoints does my ImageKit account have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_url_endpointsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_origins":{"post":{"operationId":"list_origins","summary":"List ImageKit origins (where originals are fetched from) with name, type, bucket and prefix. Credentials are not returne","description":"List ImageKit origins (where originals are fetched from) with name, type, bucket and prefix. Credentials are not returned. Use for \"Which origins is my ImageKit account configured with\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_originsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}