Capture a website in Power Automate.

Import one custom connector, keep the Bearer key in a Power Platform connection, and turn a public webpage into a PNG, JPEG, or PDF file object. The flow can then save the artifact to SharePoint, OneDrive, or another file-capable destination without operating Chromium.

Custom-connector preview · Three bounded actions · Public pages only

Start from the immutable preview package.

The archive contains the fixed-origin Swagger 2.0 definition, secure connection metadata, and the README used to review the contract. Its actions call only https://latchshot.fly.dev.

Power Platform connector v0.1.0-preview.1 · 7,247-byte ZIP
Download ZIP

SHA-256 b40550a449eee8cff5fcdc8d600d4d26981b8a2ede7cfbf02d089bac80adaf1d

  1. Download the ZIP from the immutable release asset above.
  2. Verify its SHA-256 before extraction. A matching checksum proves package integrity, not Power Platform acceptance.
  3. Extract the archive and keep apiDefinition.swagger.json and apiProperties.json together.
  4. Review the public connector source before importing it into a tenant.
Preview means owner-tested next.

The contract passes local schema checks, but it has not been exercised inside a live Power Platform tenant and is not a certified Microsoft connector, Marketplace listing, or Microsoft endorsement. The acceptance checks below are intentionally still open.

Import the OpenAPI definition.

  1. Open Custom connectors in the Power Automate or Power Apps environment where you are authorized to create one.
  2. Choose New custom connector → Import an OpenAPI file.
  3. Name it Latchshot and select apiDefinition.swagger.json.
  4. Before creating it, confirm the scheme is HTTPS, the host is latchshot.fly.dev, and exactly three actions are present.
  5. Create the connector, then create a new connection using the secret format in the next section.

Capture a screenshot

Simple query inputs for a PNG or JPEG.

Operation
CaptureScreenshot
Endpoint
GET /v1/screenshot

Render a page artifact

Screenshot or PDF with bounded readiness controls.

Operation
RenderPage
Endpoint
POST /v1/render

Get monthly usage

Read-only allowance and reset details.

Operation
GetUsage
Endpoint
GET /v1/usage

There is no key issuance, payment, upgrade, pilot, or plan-mutation action in the connector. Get monthly usage returns informational continuation links, but reading them takes no payment and changes no plan.

Keep the key in one connection.

Create the connection and enter the complete authorization value: the word Bearer, one space, then the token beginning with ls_live_.

Authorization connection fieldExact format
Bearer ls_live_replace_me

Power Platform stores this as a secure connection parameter and sends it in the Authorization header. Do not place the key in a flow input, URL, action body, Compose step, variable, source repository, issue, or run log.

Use an environment-owned secret.

Restrict the connection to the flows and makers that need it. A flow export should reference the connection, not contain the plaintext key.

Save the first screenshot outside the run.

Begin with a manually triggered flow and a fixed public URL. Add Latchshot → Capture a screenshot, use https://example.com, keep PNG and the 1440 × 900 viewport defaults, then pass the returned bytes to a file action.

Scroll the field map horizontally to see all three columns.

Create file fieldStarter valueReason
Folder pathAn environment-owned test folderKeeps the first artifact away from a production destination
File nameexample.pngMatches the PNG action output
File contentbase64ToBinary(body('Capture_a_screenshot')?['$content'])Decodes the connector file object's base64 bytes

The connector represents binary results as a file object with exactly $content-type and $content. If the flow designer exposes the file content directly as dynamic content, select it. Otherwise use the expression above and adjust the action's internal name if Power Automate generated a different one.

A successful flow run is not durable storage by itself. Retention, access control, naming, duplicate handling, and deletion remain the responsibility of the SharePoint, OneDrive, or other destination you choose.

Use the other two actions deliberately.

Render a PDF

Add Render a page artifact when the flow needs a document rather than an image. Set the public URL, choose pdf, use A4, and save the returned $content as example.pdf. The same action can also expose bounded readiness, delay, full-page, lazy-content, and cleanup controls.

Starter PDF inputsPower Automate action values
url:       https://example.com
kind:      pdf
format:    pdf
paper:     A4
landscape: false

Check allowance before a batch

Add Get monthly usage before an Apply to each loop. Require remaining to be greater than the planned batch size, or stop the flow with a clear message. This read-only action consumes no render quota.

Only successful renders consume the recurring monthly allowance. Failed direct renders do not. The Free plan starts with 100 successful renders each UTC calendar month, and automatic overages are disabled.

Run five checks before production data.

  1. Usage: confirm Get monthly usage returns a plan plus non-negative limit and remaining values without changing successful.
  2. PNG: capture https://example.com, create a non-empty file, and confirm its first bytes are the PNG signature 89 50 4E 47.
  3. PDF: render A4 PDF for https://example.com, create a non-empty file, and confirm it begins with %PDF-.
  4. Network rejection: request http://127.0.0.1, require the action to fail, and verify successful-render usage did not increase.
  5. Secret failure: use an invalid key, require HTTP 401, and inspect the flow definition and run output to confirm no secret was exposed.

Record the environment, connector revision, flow export, redacted run evidence, and result of all five checks. Passing them proves that tenant's controlled import and flow path; it does not make the connector Microsoft-certified.

The CLI gate is still owner-authenticated.

A local paconn validate attempt reached Microsoft's tooling but returned Access token invalid. Please login again. Tenant authentication, UI import, live flow runs, screenshots, Microsoft CLA acceptance, program terms, and any Certified Connector submission remain owner-run work.

Keep browser workflows with a browser.

Latchshot is a bounded public-page renderer, not a remote browser session. Keep a browser you control when a flow depends on any of the following:

  • private, loopback, link-local, internal, authenticated, or credential-bearing pages;
  • cookies, login sessions, arbitrary headers, scripts, selectors, clicks, typing, or multi-step actions;
  • CAPTCHA solving, proxy rotation, anti-bot bypass, or private-network access;
  • a permanent provider-hosted artifact URL instead of bytes stored by the flow owner;
  • unbounded page dimensions, wait times, scrolling, concurrency, or retries.

Cleanup controls are best-effort. They block bounded lists of known third-party hosts or hide common overlays without accepting consent, submitting forms, or setting customer state. The target page can observe a browser visit from Latchshot infrastructure.

Prove one flow with the Free plan.

The Free plan renews to 100 successful renders each UTC calendar month and needs no card. Launch is $19 for 2,500 successful renders, Build is $49 for 12,000, and Scale is $149 for 50,000. Automatic overages are disabled.

Start with one fixed URL and owned test folder. Add dynamic input, loops, schedules, and production destinations only after the file signature and network-rejection checks pass.

Create the connection for one test flow.

Use a recurring Free key, import the immutable preview, and keep the first PNG in an environment-owned test folder.

Get a free key