Empezar

SDKs

SDKs oficiales de Python y JavaScript/TypeScript para la API de Pedra. Home staging virtual, renovación, mejora de imágenes y vídeos para anuncios en unas pocas líneas de código — cada método espera a que el recurso esté listo y devuelve la URL final.

SDKs oficiales

Dos clientes oficiales envuelven la API REST de Pedra. Ambos son de código abierto, no tienen dependencias en tiempo de ejecución y exponen todos los endpoints. Cada método espera a que el recurso esté listo y devuelve la(s) URL(s) final(es) — sin IDs de trabajo que consultar.

Python
pedra
Python 3.8+ · zero dependencies
Node.js
@pedra-ai/sdk
Node.js 18+ · zero dependencies

Instalación

Node.js

npm install @pedra-ai/sdk

Python

pip install pedra

Autenticación

Pasa tu clave al cliente o define la variable de entorno PEDRA_API_KEY. Obtén una clave registrándote en app.pedra.ai y abriendo Ajustes → API. Las claves son de larga duración — nunca las incluyas en código de cliente; llama desde tu backend. Mira Autenticación para más detalles.

from pedra import Pedra

# Reads PEDRA_API_KEY from the environment…
pedra = Pedra()

# …or pass the key explicitly
pedra = Pedra("YOUR_API_KEY")

Inicio rápido

Amuebla una habitación vacía. Todos los métodos de imagen devuelven la misma forma — usa url para el primer recurso o urls para todos.

from pedra import Pedra

pedra = Pedra()  # reads PEDRA_API_KEY

result = pedra.furnish(
    image_url="https://example.com/empty-living-room.jpg",
    room_type="Living room",
    style="Minimalist",
)

print(result.url)   # the staged image URL
print(result.urls)  # all generated URLs

Qué puedes llamar

Ambos SDKs cubren todos los endpoints de Pedra con los mismos nombres de método en cada lenguaje:

  • furnish, empty, renovation, editViaPrompt, remove — mira Home staging virtual.
  • enhance, enhanceAndCorrectPerspective, sky, blur — mira Mejora de imágenes.
  • createVideo, updateVideo, generateVoiceScript, generateVoice, musicLibrary, además de credits y feedback — mira Vídeo y Créditos.
  • listProperties, listPropertyImages, createProperty, addImagesToProperty — mira Propiedades.
  • createVirtualTour, waitForVirtualTour, getVirtualTour, listVirtualTours, updateVirtualTour, addVirtualTourScenes, deleteVirtualTour, createUploadLink, addLocalPanoramas — mira Tours virtuales.

Python usa snake_case (edit_via_prompt, create_video, update_video, generate_voice, music_library, wait_for_virtual_tour, request_access, wait_for_access); los parámetros y el comportamiento son idénticos.

Tours virtuales

Los tours son el único flujo asíncrono: createVirtualTour vuelve enseguida con status: "processing", y waitForVirtualTour consulta hasta que el tour está listo (unos 10 segundos por habitación). Si la construcción falla, se devuelve, no se lanza — comprueba status.

from pedra import Pedra

pedra = Pedra()

tour = pedra.create_virtual_tour(
    image_urls=[  # 360° photos, in walking order
        "https://example.com/360/entrance.jpg",
        "https://example.com/360/living-room.jpg",
        "https://example.com/360/kitchen.jpg",
    ],
    name="Calle Mayor 12",
)
tour = pedra.wait_for_virtual_tour(tour.tour_id)

if tour.status == "ready":
    print(tour.tour_url)    # shareable tour page
    print(tour.embed_code)  # <iframe> for a listing page

¿Aún no tienes clave API?

Un agente o un script puede conseguir una para la persona para la que trabaja — y crearle la cuenta de Pedra si hace falta. requestAccess le envía un enlace de confirmación por email (sin clave); waitForAccess consulta hasta que lo aprueba y devuelve la apiKey. Ambos son también métodos estáticos de Pedra. Mira Cuentas para agentes de IA.

from pedra import Pedra, request_access, wait_for_access

req = request_access("maria@example.com", agent_name="My listing assistant")
print("Check your email and click the link from Pedra.")

res = wait_for_access(req.request_id)  # polls every 5 s, up to 30 min
if res.approved:
    if res.note:
        print(res.note)  # only when there are no credits left
    pedra = Pedra(res.api_key)  # store the key; it doesn't expire

Manejo de errores

Ambos SDKs lanzan PedraApiError para fallos de la API (con status y body) y PedraError para errores de cliente o red. Mira Errores y límites para la lista completa de fallos.

Servidor MCP

¿Prefieres usar Pedra desde un asistente de IA? El servidor MCP oficial de Pedra expone las mismas operaciones a Claude, ChatGPT y Cursor, para que puedas hacer staging y editar fotos de anuncios directamente desde un chat.

Código y soporte

Ambos SDKs tienen licencia MIT y se desarrollan en abierto. Dale una estrella o abre issues en GitHub, y escribe a felix@pedra.ai para ayuda con la integración, mayores cuotas o condiciones enterprise.

Preguntas frecuentes

¿Pedra tiene SDK?

Sí. Pedra tiene SDKs oficiales y de código abierto para Python (pip install pedra) y Node.js/TypeScript (npm install @pedra-ai/sdk). Ambos no tienen dependencias en tiempo de ejecución y envuelven todos los endpoints de la API.

¿Pedra tiene un SDK de Python?

Sí. Instálalo con pip install pedra (paquete de PyPI pedra), Python 3.8+, y luego impórtalo con: from pedra import Pedra. Cubre todos los endpoints.

¿Pedra tiene un SDK de Node.js o JavaScript?

Sí. Instálalo con npm install @pedra-ai/sdk, Node 18+, con tipos de TypeScript incluidos: import Pedra from @pedra-ai/sdk.

¿Cómo me autentico con el SDK de Pedra?

Pasa tu clave al constructor del cliente o define la variable de entorno PEDRA_API_KEY. Consigue una clave en app.pedra.ai en Ajustes → API y llama desde tu backend.

¿Los SDKs de Pedra son gratuitos y de código abierto?

Sí. Ambos SDKs tienen licencia MIT y son de código abierto en GitHub (pedra-ai/pedra-python y pedra-ai/pedra-node). Solo pagas por el uso de la API.

¿Los SDKs de Pedra requieren polling?

No. Cada método espera hasta que el recurso está listo y devuelve la(s) URL(s) final(es), así que no hay IDs de trabajo que consultar.