One timeline. Every client and backend event, in order.
Log
The whole story on a single timeline.
No credit card required
Ask your logs. In plain language.
Connect Claude, Cursor, Antigravity, or any MCP client to pinqloq.
"Where are users dropping off in the signup funnel?"
This week 1,204 people visited, 820 opened signup, 540 submitted the form, but only 210 verified their email. The biggest drop is at email verification. Most users never open the link, so the email is probably not arriving or is going to spam. Check email delivery first.
"Did the Stripe payment webhook actually reach us?"
The payment.succeeded webhook arrived at 14:32 and was logged, but the order was never marked as paid. The handler received the event and stopped before it updated the order.
"Something broke in the mobile app after the last release. What do you see?"
On app version 3.2.0 the checkout_started client event almost never fires, but 3.1.0 still logs it normally. Users on the new version stop before checkout, so look at what changed on that screen.
Open the panel and look yourself
Full detail. Open any log to see its request, response, and metadata.
Share a view. Export a filter so a teammate sees the exact same logs.
Export the logs. Drop them into a CSV, or hand them to your AI.
Up and running in minutes
Install the package, add two lines of code. That's it.
dotnet add package pinqloq
npm install pinqloq
go get github.com/pinqponq/pinqloq-go-sdk/v2
gem install pinqloq
builder.Services.AddPinqloq(options =>
{
options.SecretKey = builder.Configuration["Pinqloq:SecretKey"]!;
// Required: every log needs one, and a log that sets none falls back to this.
options.DeviceIdentifier = "orders-api";
});
import { createPinqloq } from "pinqloq";
export const pinqloqClient = createPinqloq({
secretKey: process.env.PINQLOQ_SECRET_KEY,
// Required: every log needs one, and a log that sets none falls back to this.
deviceIdentifier: "orders-api"
});
pinqloqClient, err := pinqloq.New(pinqloq.Options{
SecretKey: os.Getenv("PINQLOQ_SECRET_KEY"),
// Required: every log needs one, and a log that sets none falls back to this.
DeviceIdentifier: "orders-api",
})
if err != nil {
panic(err)
}
defer pinqloqClient.Shutdown(context.Background())
require "pinqloq"
PINQLOQ = Pinqloq.create(
secret_key: ENV.fetch("PINQLOQ_SECRET_KEY"),
# Required: every log needs one, and a log that sets none falls back to this.
device_identifier: "orders-api"
)
Don't need to customize? Log every request and response with a single line.
var app = builder.Build();
app.UsePinqloqRequestLogging();
app.use(express.json());
app.use(pinqloqClient.requestLogging());
middleware := pinqloqClient.RequestLogging(pinqloq.RequestLoggingOptions{})
http.ListenAndServe(":8080", middleware(mux))
use Pinqloq::Rack::RequestLogging,
logger: PINQLOQ.logger,
pinqloq_options: PINQLOQ.options
Common questions.
What is pinqloq?
pinqloq is a logging dashboard that collects your application's services, HTTP requests, client events, webhooks, and errors into one real-time panel. You add a pinqloq SDK to your backend — .NET, Node.js, Go, or Ruby — and start sending logs in minutes.
Which platforms does pinqloq support?
There are SDKs for .NET, Node.js (Express), Go (net/http), and Ruby (Rack), all shipping today and speaking the same wire protocol. Events from mobile and web clients are forwarded through your own backend to pinqloq, whichever SDK it runs.
Can I log HTTP requests automatically?
Yes. Add one line of request-logging middleware — UsePinqloqRequestLogging() in .NET, pinqloqClient.requestLogging() in Node, pinqloqClient.RequestLogging(...) in Go, Pinqloq::Rack::RequestLogging in Ruby — and every request is logged with its method, path, status code, and duration. Exclude paths you don't want logged.
Can I log mobile and web client events?
Yes. The client sends the event to your own backend, and your backend forwards it to pinqloq using whichever pinqloq SDK it runs. The secret key never lives on the client.
What does the free plan include?
2 collections in total are free, and every collection keeps 3 days of logs at no charge. You can create as many projects as you need. Extra collections and longer retention are paid.
How do I get logs into my AI tool?
The fastest way is the MCP server. Connect Claude, Cursor, Antigravity, or any MCP client with a key, then ask about your logs in plain language. There is nothing to export. You can also work with files. Filter the logs in the panel, export them as CSV, and drop the file into your AI chat. Or export the filter as JSON to share the exact same view with a teammate.
Which tools can my AI assistant call over MCP?
The MCP server exposes get_logs to fetch logs filtered by collection, level, device, app version, or time range; search_logs to search by text across the device identifier, metadata, and detail fields; get_collections to list the collections your key can reach; and get_error_summary to group errors in a time range and rank the ones that happen most.