Edensign API for Developer

API Endpoint

https://developer.edensign.io

Limits

  • The API enforces a 60-second timeout. If the GPU cannot complete processing within this time, please retry your request.

Authorization

To authorize API requests, create an API key on the "API Keys" page. Then, include your API key as a Bearer token in the Authorization header when calling the API.

Example:

Authorization: Bearer YOUR_API_KEY

Create a Render

Create a new render task.

Request

POST /v1/renders
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY

Request Body

{
  "image_url": "https://example.com/image.jpg",
  "variation_count": 3,
  "config": {
    "type": "staging",
    "remove_furniture": {
      "mode": "auto",
      "mask_url": "https://example.com/mask.png",
      "room_type": "living"
    },
    "add_furniture": {
      "style": "modern",
      "room_type": "living"
    }
  }
}

Parameters

  • image_url (required): URL of the image to process
  • variation_count (optional): Number of variations to generate, defaults to 3
  • config.type: Configuration type, currently only supports "staging"
  • config.remove_furniture.mode: Furniture removal mode
    • "on": Enable
    • "off": Disable
    • "auto": Automatic
  • config.remove_furniture.mask_url (optional): Mask image URL
  • config.remove_furniture.room_type: Room type
    • Available values: living, bed, kitchen, dining, bathroom, home_office, kids_room
  • config.add_furniture (optional): Add furniture configuration
    • style: Decoration style, available values: standard, modern, scandinavian, industrial, midcentury, luxury, farmhouse, coastal
    • room_type: Room type: living, bed, kitchen, dining, bathroom, home_office, kids_room

Response

{
  "id": "123456789",
  "images": [{ "url": "https://edensign.io/images/original.jpg" }],
  "variationCount": 3,
  "createdAt": "2025-10-13T12:00:00.000Z",
  "variations": [
    {
      "id": "987654321",
      "renderId": "123456789",
      "images": [{ "url": "https://edensign.io/images/result-1.jpg" }],
      "type": "staging",
      "style": "modern",
      "roomType": "living",
      "createdAt": "2025-10-13T12:00:00.000Z",
      "completedAt": "2025-10-13T12:01:30.000Z"
    }
  ]
}

Create Variations

Create additional variations for an existing render.

Request

POST /v1/renders/:renderId/variations
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY

Path Parameters

  • renderId: Render task ID

Request Body

{
  "variation_count": 2,
  "config": {
    "type": "staging",
    "remove_furniture": {
      "mode": "auto",
      "room_type": "living"
    },
    "add_furniture": {
      "style": "scandinavian",
      "room_type": "living"
    }
  }
}

Limits

  • Maximum of 20 variations per render task
  • If the limit is exceeded, an OUT_OF_RANGE error will be returned

Response

{
  "data": [
    {
      "id": "111222333",
      "renderId": "123456789",
      "images": [
        {
          "url": "https://edensign.io/images/result-2.jpg"
        }
      ],
      "type": "staging",
      "style": "scandinavian",
      "roomType": "living",
      "createdAt": "2025-10-13T12:05:00.000Z",
      "completedAt": null
    }
  ]
}

Get Render by ID

Retrieve detailed information about a render task by ID, including all variations.

Request

GET /v1/renders/:renderId
Authorization: Bearer YOUR_API_KEY

Path Parameters

  • renderId: Render task ID

Response

{
  "id": "123456789",
  "images": [{ "url": "https://edensign.io/images/original.jpg" }],
  "variationCount": 3,
  "createdAt": "2025-10-13T12:00:00.000Z",
  "variations": [
    {
      "id": "987654321",
      "renderId": "123456789",
      "images": [{ "url": "https://edensign.io/images/result-1.jpg" }],
      "type": "staging",
      "style": "modern",
      "roomType": "living",
      "createdAt": "2025-10-13T12:00:00.000Z",
      "completedAt": "2025-10-13T12:01:30.000Z"
    }
  ]
}

List Renders

Paginated query for render task list.

Request

GET /v1/renders?limit=10&next=CURSOR_TOKEN
Authorization: Bearer YOUR_API_KEY

Query Parameters

  • limit (optional): Number of items per page, defaults to 20
  • next (optional): Next page cursor
  • prev (optional): Previous page cursor

Response

{
  "data": [
    {
      "id": "123456789",
      "images": [{ "url": "https://edensign.io/images/original.jpg" }],
      "variationCount": 3,
      "createdAt": "2025-10-13T12:00:00.000Z",
      "variations": [...]
    }
  ],
  "paging": {
    "next": "NEXT_CURSOR_TOKEN",
    "prev": "PREV_CURSOR_TOKEN"
  }
}

Delete Render

Permanently delete a render task and all its variations.

Request

DELETE /v1/renders/:renderId
Authorization: Bearer YOUR_API_KEY

Path Parameters

  • renderId: Render task ID

Response

{}

Delete Variation

Delete a single variation. If no variations remain after deletion, the entire render task will also be deleted.

Request

DELETE /v1/renders/-/variations/:variationId
Authorization: Bearer YOUR_API_KEY

Path Parameters

  • variationId: Variation ID

Response

{}

Error Codes

The API uses standard HTTP status codes and returns structured error information:

  • 400 Bad Request: Invalid request parameters
  • 401 Unauthorized: Unauthorized or invalid API key
  • 403 Forbidden: Permission denied to access the resource
  • 404 Not Found: Resource not found
  • 416 Range Not Satisfiable: Variation count limit exceeded
  • 500 Internal Server Error: Internal server error

Error Response Example

{
  "error": {
    "code": "OUT_OF_RANGE",
    "message": "variation limit reached",
    "details": [
      {
        "type": "ERROR_INFO",
        "reason": "MAX_VARIATIONS_EXCEEDED"
      }
    ]
  }
}
Edensign - AI-Powered Virtual Staging That Instantly Elevates Real Estate Listings