Utvecklare plattform · REST · webhooks · SDKs

Gör din plattform AI-operativ.

OpsIQexponerar en ren RESTAPIHMAC-signerade webhooks, ett handlingskontraktsregister och färdiga SDKs. Definiera vilka händelser som eldar från ditt system, vilka åtgärder AI får köra, och vilka data är säkra att läsa.OpsIQhanterar signaturer, retries, revisionsloggar och bekräftelseflöden för dig.

HMAC-SHA256 båda sättenPHP · Nod · Python SDKsOpenAPI 3.0.3_ kontrakt100% revisionsbevakning
Signerad begäran i
Signerad webhook out → 200 OK
Livet Live curl → OpsIQ_______ signerad webhook POST /v1/actions/run X-OpsIQ-Signatur { "action": "Refund_invoice" "bekräftad": Sant VERIFI · RUN · AUDIT signatur ✓ roll + omfattning ✓ Revisionsrad skriftlig @opsiq/sdkwidget ("Action. executed") verifiera HMAC → hantera 200 OK
3officiella SDK: PHP, Node, Python
HMACSHA-256 signerad på varje förfrågan
40+universella händelser att prenumerera
100%revisionslogg täckning om åtgärder
Förfrågan livscykel

Begär in. Signerad webhook out.

Du ställer tillOpsIQ APImed din omfattning Bearer-nyckel.OpsIQkontroller omfattning och roll, kör den kontrakterade åtgärden, skriver en revision rad - sedan skjuter en HMAC-signerad webhook tillbaka till din slutpunkt. Varje hopp är autentiserad, idempotent och hämtas på misslyckande.

HMAC-SHA256-webhooks - Inkommande och utgående webhook nyttolaster är signerade över den råa kroppen; API samtal autentisera med en omfattad bärare nyckel.
Automatiska retries - misslyckade leveranser tillbaka och retry, med ett leverans-ID kan du spåra.
Idempotensnycklar - replay-safe by design, så en återvunnen leverans aldrig dubbel-akter.
Din app POST /v1/actions/run X-OpsIQ-Signatur X-OpsIQ-Tidsstämpel VERIFI - RUN - AUDIT Din endpoint POST /webhooks verifiera HMAC 200 OK signatur verifierad omfattning + rollkontrollerad Kontrakterade åtgärder löper Revisionsrad skriftlig SIGNED WEBBOK PAYLOAD { "Event""Action. executed" (på engelska) "Delivery_id""Dlv_8f2a9" idempotency_key"idem_31c7" "signatur""Sha256="9c4e0a7b..." } levererad
01 undertecknad begäran 02 verifiera HMAC 03 löpa kontrakt 04 Skriv revision rad 05 signerad webhook
Snabbstart

Från noll till en live-integration fyra steg.

Skapa en nyckel, skjut din första händelse, prenumerera en webhook, registrera en åtgärd. Du kan köra hela slingan mot sandlådan innan du rör produktionsdata.

Sandbox konsolAnsluten
DEVELOPER CONSOLE · Sandbox 1____ Generera nyckeln opq_live_xxx · en omfattad Bärarnyckel 2_____ Brand en händelse POST /v1/events/fire__"order. shipped" 3____ Prenumerera en webhook → https://api.you.com/webhooks 4_ Registrera en åtgärd Saas. refund_invoice · reviderad
FrämjaSandbox → produktion, samma kod
01

Få en nyckel

Registrera dig och skapa en omfångad Bearer API-nyckel (opq_…) i utvecklarinställningar och ge varje integration endast de ytor den behöver.

02

Fire & prenumerera

POST en signerad events/fire (eller använda enSDK), sedan peka någonURLvid varje tillfälle, undertecknad, med ett leverans-ID och back-off retries.

03

Registrera en åtgärd

Deklarera ett undertecknat åtgärdsavtal så att AI säkert kan köra verksamhet, med rollkontroller, bekräftelsepolicy och en fullständig revisionsled.

Hur det passar ihop

Ett kontaktmönster. Fem rena primitiva.

Allt plattformsspecifikt lever i en kontakt.OpsIQKärnan förblir generisk, AI förblir förutsägbar, och din integration förblir revisionsbar.

01
Utlösare

Berätta OpsIQ vad som just hände.

Brand universella händelser från din plattform - eller dina egna evenemangsnamn. Varje abonnent reagerar i realtid, i prioriterad ordning.

Event referens
invoice.paid Evenemang. fire() AI hjärnaLive-kontext Reglerprioritet 20_ SpeglingSkriv först Webhookundertecknat
Universal + anpassade händelserinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up eller din egen. Fan-out abonnenterAI-hjärnan, automationsreglerna, spegelkontakterna och din webhook slutpunkter alla reagerar. Prioriterad orderDeterministisk avsändning så speglar skriver innan varningar brand.
02/ Åtgärdsavtal

Berätta OpsIQ vad AI är tillåtet att göra.

Ett handlingsavtal är en undertecknad JSON deklaration: vad åtgärden gör, vilka roller som kan köra den, vilka parametrar den accepterar, oavsett om bekräftelse krävs och slutpunkten att ringa.

Åtgärdsschema
AI kan inte uppfinna åtgärderDet kan bara be att köra de du har registrerat. BekräftelsepolicyRisky-handlingar utlöser ett förhandsgranskningskort innan någon bieffekt. Role + ytbeläggningVarje handling förklarar roller och ytor som tillåts att köra den.
Åtgärdskontrakt - JSON_
{
  "key": "saas.refund_invoice",
  "label": "Refund a paid invoice",
  "surface": ["admin"],
  "roles": ["owner", "billing_admin"],
  "requires_confirmation": true,
  "params": {
    "invoice_id": { "type": "int", "required": true },
    "reason": { "type": "string", "max": 500 }
  },
  "endpoint": "https://api.you.com/refund",
  "audit": true
}
03____ signerade webhooks

Tryck på händelser till din stack - med kryptografiska bevis.

Prenumerera någon URL till alla händelser. OpsIQ POSTs den JSON nyttolast som undertecknats med HMAC-SHA256 över den råa kroppen - verifiera den i några rader.

Replay skyddSpårbar leverans IDÅterförsök vid back-off
Webhook referens
Verifiera webhook - php
$raw = file_get_contents('php://input');
$sig = $_SERVER['HTTP_X_OPSIQ_SIGNATURE'] ?? '';
$expected = hash_hmac('sha256', $raw, $secret); // hex digest, no prefix
if (!hash_equals($expected, $sig)) http_response_code(401);
$event = json_decode($raw, true);
04 / SDK:er

Drop-in klienter för det språk du redan använder.

Tre officiella SDK hanterar autentisering, signering, retries, idempotency-nycklar och skrivna svar. Eller stanna ramfria - varjeSDKär en tunn wrapper runt samma REST-yta.

Kundexempel
import { OpsIQ } from "@opsiq/sdk";
const ops = new OpsIQ({ apiKey: process.env.OPSIQ_KEY });

await ops.events.fire("order.shipped", {
  customer_id: 421,
  order_ref: "NB-9182",
  carrier: "DHL"
});

const result = await ops.actions.run("saas.send_kb_link", {
  ticket_id: 5519,
  article: "how-to-reset-password"
});
use OpsIQ\Client;

$ops = new Client([
  'api_key' => getenv('OPSIQ_KEY'),
]);

$ops->events->fire('order.shipped', [
  'customer_id' => 421,
  'order_ref' => 'NB-9182',
]);

$result = $ops->actions->run('saas.send_kb_link', [
  'ticket_id' => 5519,
  'article' => 'how-to-reset-password',
]);
from opsiq import OpsIQ

ops = OpsIQ(
    api_key=os.environ["OPSIQ_KEY"],
)

ops.events.fire("order.shipped", {
    "customer_id": 421,
    "order_ref": "NB-9182",
})

result = ops.actions.run("saas.send_kb_link", {
    "ticket_id": 5519,
    "article": "how-to-reset-password",
})
PHP8.4+Node.js18+Python3.10+REST · OpenAPI3.0.3
05___/ Anslutningsmönstret

Bygg en gång. Anslut till allt.

En kontakt är en mapp med en PHP-klass. OpsIQ upptäcker det, registret trådar händelserna och din plattformsspecifika kod förblir rent separerad från kärnan.

Guide för kontaktdon
Fem krokaridentityProviders(), contextProviders(), registerActions(), subscribers(), handleWebhook(). Manifestdrivenactions.json och settings.json deklarera avtal och konfig. AutoupptäcktSläpp mappen i, signera den, aktivera den i admin.
Från avsikt till säker åtgärd

Smärta engelska i. Auditerad operation ute.

OpsIQ uppfinner aldrig rätt samtal. Det går genom de registrerade kontrakten, förbereder nyttolast, ber om bekräftelse när åtgärden kräver det och producerar en fullständig revisionsrad när den utför, så ett AI som kan Handling Aldrig blir ett AI du inte kan lita på.

Kontraktsbunden. AI föreslår bara åtgärder du har registrerat.
Bekräfta före biverkningar. Risky-handlingar visar ett förhandsgranskningskort först.
Total återkallelse. Varje snabb, svar och handling resulterar i AI History.
4 stegAvsikt → revision
HMACundertecknad innan avrättning
Återbetalar Adams sista faktura Steg 1_ · Avsiktsupplösning matchad: saas. refund_invoice Yt: admin · roll: ägaren · Steg 2 validera Steg 3 · Bekräfta och signera Förhandsgranskningskort · faktura #8421 Bekräftelse Steg 4 · Revisionsrad Skådespelare · snabb · resultat · 412ms_ Endast ägaren - exporterbar som CSV_
Inga uppfunna samtalKontraktsregistret endast
Bekräftelse-GatedFörhandsgranskning före biverkningar
100% granskadPrompt + svar + resultat
Hänvisning

API__ yta vid en blick.

Varje kärnpunkt, dess autentiska, idempotens och per-nyckeltalsgräns. Det fulla maskinläsbara kontraktet lever i OpenAPI 3.0.3 referens.

OpenAPI 3.0.3 referens
SlutpunktAutentiseringIdempotentHastighetsgräns
SkrivSignerade sidoeffektytor
POST /v1/events/fireHMACJa1000_/min
POST /v1/actions/runHMACJa200_/min
POST /v1/webhooks/testHMACJa60_/min
Läs merKontext, biljetter och kontaktinventering
GET /v1/customers/{id}HMACJa2000_/min
GET /v1/ticketsHMACJa2000_/min
GET /v1/connectorsHMACJa2000_/min

Betygsgränser är per nyckel och returneras på varje svar som X-OpsIQ-RateLimit-Remainingöverstiga en gränsavkastning 429 med en Retry-After rubrik. Det fullständiga maskinläsbara kontraktet (varje ändpunkt, schema och fel) lever i OpenAPI 3.0.3 referens.

Bygg en kontakt

Fartyga en kontakt i 5 steg.

En kontakt är en självinnehållen mapp.OpsIQupptäcker det, registret trådar händelserna, och din plattformsspecifika kod läcker aldrig in i kärnan.

1ställningar en mapp med connector.php Utvidga AbstractConnector.
2Förklara actions.json och settings.json manifesterar sig.
3Genomföra identitet, sammanhang och webhook-leverantörer.
4Prenumerera på de händelser du bryr dig om.
5Logga in den, släpp den i, aktivera den i admin.
Testa innan du skickar

En sandbox-nyckel och en webhook-testare.

Varje arbetsyta exponerar en sandlåda: en separat räckvidd nyckel som träffar samma API yta utan att röra produktionsdata. POST /v1/webhooks/test För att avfyra en signerad provleverans vid din slutpunkt och bekräfta din signaturverifiering innan du går live. Självvärderade installationer kör den identiska kodbanan, utan beteendemässig drift mellan moln och on-prem.

Sandbox-nycklar Webhook- testare Cron-driven jobb Moln- & självhostad paritet
connector. php · php
klassklass klass AcmeConnector Förlängningar AbstractConnector { Offentlig funktion nyckel(): Sträng { returnera "Acme"; } // Lös vem skådespelaren är Offentlig funktion Identitetsförmedlare(): array { returnera [ny AcmeIdentityProvider()]; } // Feed live data in i AI-prompten Offentlig funktion sammanhangProviders(): array { returnera [ny AcmeContextProvider()]; } // Reagera på OpsIQ händelser Offentlig funktion abonnenter(): array { returnera ["Faktura. betald" => [ny BillingMirror()]]; } // Få inkommande webhooks från Acme Offentlig funktion hanteraWebhook(array $body): ogiltig { /* … */ } }
Hur det jämför

OpsIQvs a Gör det själv-integration.

Vilken kontraktsbunden, undertecknad, granskad plattform ger dig som rullar dina egna webhooks och AI-action VVS aldrig kommer att.

FörmågaRulla din egenOpsIQ
HMAC-signed requests & webhooks (both ways) Hand-rolled
Idempotency keys + replay protection DIY
Automatic back-off retries with delivery IDs DIY queue
Action-contract registry (AI can't invent calls)
Confirmation policy before side-effects
100% audit-log coverage on actions Manual logging
Official PHP / Node / Python SDKs Write your own
OpenAPI 3.0.3 machine-readable contract Maybe
Sandbox keys + webhook tester Build a staging rig
Cloud & self-hosted parity (same code path) Varierar
Connector pattern: platform code stays isolated
Vanliga frågor och svar

Utveckla frågor, Svarat.

Auth, signaturer, SDKs, sandboxning och kontaktmodellen: allt du kommer att fråga innan den första förfrågan.

API kallar autentiseras med en enda omfattning av Bearer-nyckeln: skicka Authorization: Bearer opq_…. OpsIQkontrollerar nyckelns räckvidd och skådespelarens roll innan något körs. Webhooks är separata: varje webhookOpsIQSkickar bär en X-OpsIQ-Signature (en hex HMAC-SHA256 av råkroppen) och en X-OpsIQ-Timestamp för att spela skydd, så att du kan verifiera oss i gengäld, och inkommande webhooks du skickar verifieras på samma sätt.
Nej. AI kan bara föreslå åtgärder som finns i ditt registret för aktionskontrakt. Det kan inte uppfinna ett samtal. Varje kontrakt förklarar ytorna, rollerna och parametrarna tillåtna, och alla åtgärder markerade. requires_confirmation Yttar ett förhandsgranskningskort till en människa innan sidoeffekten körs.
Rekommenderas hash_hmac('sha256', $rawBody, $secret) (en hex smälta utan prefix) och jämför den med X-OpsIQ-Signature rubrik med en konstant kontroll (hash_equalsVarje leverans bär också en tidsstämpel, en idempotensnyckel och ett leverans-ID som du kan spåra. PHP-nippet på denna sida är hela verifieringen.
Leveranser som inte returnerar en200hämtas med exponentiell back-off, var och en bär samma idempotensnyckel så att en hämtad leverans aldrig dubbel-akter. Du kan spåra varje försök genom leverans ID i admin eller dina loggar.
Officiella SDK för PHP8.4Node.js18+ och Python3.10+ hantera signing, retries, idempotency-nycklar och skrivna svar. De är tunna omslag runt REST-ytan, så du kan också generera din egen klient från den publicerade OpenAPI3.0.3avtal eller ringaAPIdirekt.
Ja. Varje arbetsyta exponerar en sandlåda med sin egen räckvidd nyckel som träffar sammaAPIyta utan att röra produktionsdata, plus POST /v1/webhooks/test att avfyra en signerad provleverans vid din slutpunkt och bekräfta din verifiering innan du går live.
Ja. Självvärderade installationer kör den identiska kodbanan (samma signering, samma kontaktregister, samma OpenAPI-kontrakt) så det finns ingen beteendemässig drift mellan moln och on-prem.
En kontakt är en självinnehållen mapp med en PHP-klass som sträcker sig AbstractConnector, plus actions.json och settings.json manifesterar. Du genomför identityProviders(), contextProviders(), registerActions(), subscribers() och handleWebhook(). OpsIQ_ automatiskt upptäcker det, trådar händelserna och håller din plattformsspecifika kod ren separerad från kärnan.