to navigate
to select
esc to close
GET Blueprints

Blueprints API

https://api.airogelcms.com/v1/accounts/:account_id/blueprints

Blueprints define the field schema for content. They specify what fields exist and their types.

Supported Operations

  • GET /v1/accounts/:account_id/blueprints - List all blueprints
  • GET /v1/accounts/:account_id/blueprints/:id - Get a specific blueprint
  • POST /v1/accounts/:account_id/blueprints - Create a new blueprint
  • PUT /v1/accounts/:account_id/blueprints/:id - Update a blueprint
  • DELETE /v1/accounts/:account_id/blueprints/:id - Delete a blueprint

Field Types

API TypeInternal TypeDescription
textBlueprintFieldTextPlain text
rich_textBlueprintFieldRichTextHTML content
imageBlueprintFieldImageImage attachment
videoBlueprintFieldVideoVideo embed (YouTube/Vimeo)
galleryBlueprintFieldGalleryMultiple images
templateBlueprintFieldTemplateTemplate reference
entityBlueprintFieldEntityReference to another entry
collectionBlueprintFieldCollectionDynamic collection query
toggleBlueprintFieldToggleBoolean
enumerateBlueprintFieldEnumerateSelect/dropdown
listBlueprintFieldListRepeatable items
dictionaryBlueprintFieldDictionaryKey-value pairs

Parameters

Name Type Required Description
account_id string Required Your account ID
handle string Optional Filter by exact handle match
page integer Optional Page number (default: 1)

Request Example

# List blueprints
curl https://api.airogelcms.com/v1/accounts/$ACCOUNT_ID/blueprints \
  -H "Authorization: Bearer $API_TOKEN"

# Create blueprint
curl -X POST \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Blog Post",
    "handle": "blog-post",
    "fields": [
      {"handle": "body", "display": "Body", "type": "rich_text", "position": 1},
      {"handle": "excerpt", "display": "Excerpt", "type": "text", "position": 2},
      {"handle": "featured_image", "display": "Featured Image", "type": "image", "position": 3}
    ]
  }' \
  https://api.airogelcms.com/v1/accounts/$ACCOUNT_ID/blueprints

Response Example

{
  "data": [
    {
      "id": "blprt_abc123",
      "handle": "blog-post",
      "title": "Blog Post",
      "created_at": "2025-01-08T12:00:00Z",
      "updated_at": "2025-01-08T12:00:00Z",
      "fields": [
        {
          "handle": "body",
          "display": "Body",
          "type": "BlueprintFieldRichText",
          "position": 1,
          "options": {}
        }
      ]
    }
  ],
  "pagination": {
    "current_page": 1,
    "total_pages": 1,
    "total_count": 1,
    "per_page": 25
  }
}

Additional Notes

Important: The handle is auto-generated from title if not provided.

Updating fields: When updating a blueprint, new fields are added, existing fields (matched by handle) are updated, and fields not included in the request are removed.