Par

Par Connect for developers

Version 1 · October 16, 2026

Par Connect lets Par users ask about your app from their Par assistant: "What's new in Acme CRM?", "Find the Northwind deal". You add two read-only HTTPS endpoints; users connect with a key you give them. Requests come from the user's phone, not from our servers.

How it works

  1. You implement GET /par/v1/info and GET /par/v1/items on your service.
  2. Your user creates an API key in your app (scoped to what they can see).
  3. In Par: Apps → Add custom app, enter your base URL and the key, tap Test connection.
  4. Par lists matching items with links to your app, and can summarize them with the AI on the user's phone. Par never writes to your app.

Endpoints

Full contract: OpenAPI 3.1 spec (par-connect.yaml).

GET /par/v1/info

Used by "Test connection". Returns your app's name.

{ "name": "Acme CRM", "description": "Leads and deals", "version": "1" }

GET /par/v1/items?q=&since=&limit=

Items the key's owner can see, newest first. q holds words from the user's question (empty for "what's new?"); since is an ISO 8601 time; limit is 1–25 (default 10).

{
  "items": [
    {
      "id": "deal-981",
      "title": "Northwind renewal",
      "summary": "Renewal quote sent; waiting for signature.",
      "status": "Waiting",
      "author": "Ana Cruz",
      "updated_at": "2026-10-16T08:30:00Z",
      "url": "https://crm.example.com/deals/981"
    }
  ]
}

Requirements

Example (Laravel)

Route::middleware('auth:sanctum')->prefix('par/v1')->group(function () {
    Route::get('info', fn () => ['name' => 'Acme CRM', 'version' => '1']);

    Route::get('items', function (Request $request) {
        $deals = $request->user()->deals()
            ->when($request->q, fn ($q, $text) => $q->where('title', 'like', "%{$text}%"))
            ->when($request->since, fn ($q, $since) => $q->where('updated_at', '>=', $since))
            ->latest('updated_at')
            ->limit(min((int) ($request->limit ?? 10), 25))
            ->get();

        return ['items' => $deals->map(fn ($d) => [
            'id' => (string) $d->id,
            'title' => $d->title,
            'summary' => $d->notes,
            'status' => $d->stage,
            'updated_at' => $d->updated_at->toIso8601String(),
            'url' => route('deals.show', $d),
        ])];
    });
});

Testing checklist

Support

Questions or a listing in Par's Apps catalog: [email protected]. Please include your base URL and what you expected; never send API keys.