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.
SHA-256 b40550a449eee8cff5fcdc8d600d4d26981b8a2ede7cfbf02d089bac80adaf1d
- Download the ZIP from the immutable release asset above.
- Verify its SHA-256 before extraction. A matching checksum proves package integrity, not Power Platform acceptance.
- Extract the archive and keep
apiDefinition.swagger.jsonandapiProperties.jsontogether. - Review the public connector source before importing it into a tenant.
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.
- Open Custom connectors in the Power Automate or Power Apps environment where you are authorized to create one.
- Choose New custom connector → Import an OpenAPI file.
- Name it Latchshot and select
apiDefinition.swagger.json. - Before creating it, confirm the scheme is HTTPS, the host is
latchshot.fly.dev, and exactly three actions are present. - 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_.
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.
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 field | Starter value | Reason |
|---|---|---|
| Folder path | An environment-owned test folder | Keeps the first artifact away from a production destination |
| File name | example.png | Matches the PNG action output |
| File content | base64ToBinary(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.
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.
- Usage: confirm Get monthly usage returns a plan plus non-negative
limitandremainingvalues without changingsuccessful. - PNG: capture
https://example.com, create a non-empty file, and confirm its first bytes are the PNG signature89 50 4E 47. - PDF: render A4 PDF for
https://example.com, create a non-empty file, and confirm it begins with%PDF-. - Network rejection: request
http://127.0.0.1, require the action to fail, and verify successful-render usage did not increase. - 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.
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.