API Reference
Assets API

Assets API

Upload and manage images, fonts, and other assets via the Canvelete (opens in a new tab) API.

Base URL

https://api.canvelete.com/v1/assets

List Assets

GET /assets

Parameters

ParameterTypeDescription
pageintegerPage number (default: 1)
limitintegerItems per page (default: 20)
typestringFilter by type: IMAGE, FONT, VIDEO, AUDIO

Example

curl -X GET "https://api.canvelete.com/v1/assets?type=IMAGE" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

{
  "success": true,
  "data": [
    {
      "id": "asset_abc123",
      "name": "logo.png",
      "type": "IMAGE",
      "url": "https://cdn.canvelete.com/assets/abc123.png",
      "size": 245760,
      "mimeType": "image/png",
      "createdAt": "2024-01-15T10:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 45
  }
}

Upload Asset

POST /assets/upload

Body (multipart/form-data)

FieldTypeDescription
filefileThe file to upload
namestringAsset name (optional)
typestringAsset type: IMAGE, FONT

Example

curl -X POST "https://api.canvelete.com/v1/assets/upload" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@logo.png" \
  -F "name=Company Logo" \
  -F "type=IMAGE"

Response

{
  "success": true,
  "data": {
    "id": "asset_xyz789",
    "name": "Company Logo",
    "type": "IMAGE",
    "url": "https://cdn.canvelete.com/assets/xyz789.png",
    "size": 102400,
    "mimeType": "image/png"
  }
}

Delete Asset

DELETE /assets/{assetId}

Example

curl -X DELETE "https://api.canvelete.com/v1/assets/asset_abc123" \
  -H "Authorization: Bearer YOUR_API_KEY"

Search Stock Images

Search Pixabay for free stock images:

GET /assets/stock/search

Parameters

ParameterTypeDescription
querystringSearch query
pageintegerPage number
perPageintegerResults per page (max: 50)

Example

curl -X GET "https://api.canvelete.com/v1/assets/stock/search?query=nature" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

{
  "success": true,
  "data": [
    {
      "id": "pixabay_123",
      "previewUrl": "https://pixabay.com/preview/123.jpg",
      "fullUrl": "https://pixabay.com/full/123.jpg",
      "width": 1920,
      "height": 1080,
      "tags": ["nature", "landscape", "mountain"]
    }
  ]
}

Search Icons

Search Iconify for icons:

GET /assets/icons/search

Parameters

ParameterTypeDescription
querystringSearch query
pageintegerPage number
perPageintegerResults per page

Example

curl -X GET "https://api.canvelete.com/v1/assets/icons/search?query=arrow" \
  -H "Authorization: Bearer YOUR_API_KEY"

List Fonts

GET /assets/fonts

Parameters

ParameterTypeDescription
categorystringFilter: serif, sans-serif, monospace, display

Example

curl -X GET "https://api.canvelete.com/v1/assets/fonts?category=sans-serif" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

{
  "success": true,
  "data": [
    {
      "name": "Inter",
      "category": "sans-serif",
      "weights": ["400", "500", "600", "700"],
      "styles": ["normal", "italic"]
    },
    {
      "name": "Poppins",
      "category": "sans-serif",
      "weights": ["300", "400", "500", "600", "700"],
      "styles": ["normal", "italic"]
    }
  ]
}

Supported File Types

Images

  • PNG, JPG, JPEG, GIF, WebP, SVG

Fonts

  • TTF, OTF, WOFF, WOFF2

Size Limits

PlanMax File Size
Free5 MB
Individual25 MB
Teams50 MB
Enterprise100 MB

SDK Examples

Python

from canvelete import CanveleteClient
 
client = CanveleteClient(api_key="YOUR_API_KEY")
 
# List assets
assets = client.assets.list(type="IMAGE")
 
# Upload asset
asset = client.assets.upload(
    file_path="logo.png",
    name="Company Logo"
)
 
# Search stock images
images = client.assets.search_stock("nature landscape")
 
# List fonts
fonts = client.assets.fonts(category="sans-serif")

TypeScript

import { CanveleteClient } from '@canveletedotcom/sdk';
 
const client = new CanveleteClient({ apiKey: 'YOUR_API_KEY' });
 
// List assets
const assets = await client.assets.list({ type: 'IMAGE' });
 
// Search stock images
const images = await client.assets.searchStock('nature landscape');
 
// List fonts
const fonts = await client.assets.fonts({ category: 'sans-serif' });

Next Steps