VetFlash API · v1

Veterinary intelligence,
one API call away.

Put VetFlash AI inside your practice software. Clinical chat on our fine-tuned model, consultations turned into clinical notes, and shareable patient chats. Same models and same credits as the app.

  • OAuth 2.0 + PKCE
  • OpenAI-compatible
  • Free test keys
live
$ 
0 message credits charged logged to your dashboard

Base URL

9
endpoints
2
AI models
60/min
rate limit
6
scopes
What you can build

The whole VetFlash brain, as endpoints.

Everything is JSON over HTTPS, authenticated with a bearer token, and priced in the credits you already have.

POST /chat/completions

Clinical chat

VetFlash M2 drafts with medicines-database and web lookups, then a senior clinical reviewer corrects it. Stream the reasoning live, or wait for the reviewed answer.

Differentials for acute vomiting in a 3yo Labrador?
Top differentials: dietary indiscretion, foreign body, gastroenteritis, pancreatitis…
vetflash 10 crvetflow 30 cr
POST /scribe/notes

Scribe notes

Send a transcript or the audio itself. Get back a structured clinical note in Markdown or plain text.

POST /ask/sessions

Ask sessions

A patient-aware chat link for owners or colleagues, with an expiry and a hard credit cap.

GET /credits · /me

Balances & identity

Check spend before you call, and know exactly whose account a token belongs to.

OAuth 2.0

Connect with VetFlash

Build for other practices. Vets approve your app once and it works with their account.

Drop in. Ship today.

From zero to first answer in three steps.

  1. 1

    Create a key

    Start with a free test key in the API dashboard. Pick only the scopes you need.

  2. 2

    Make a request

    Plain HTTPS from any language, or the OpenAI SDK you already use with a different base URL.

  3. 3

    Watch it live

    Every call lands in your dashboard with status, latency, credits and a request ID.

curl -X POST https://vetflash.io/api/v1/chat/completions \
  -H "Authorization: Bearer $VETFLASH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "vetflash",
    "messages": [
      {
        "role": "user",
        "content": "Maintenance fluid rate for a 12 kg dog?"
      }
    ],
    "max_credits": 20
  }'
Authentication

API keys for your servers. OAuth for everyone else's.

API keys

For your own backend and scripts.

  • vf_live_ and free vf_test_ keys
  • Scoped, with optional expiry
  • Roll or revoke instantly
Authorization: Bearer vf_live_...

OAuth 2.0 + PKCE

For apps other vets connect to.

  • Authorization code with S256 PKCE
  • 1-hour access tokens, rotating refresh tokens
  • Vets disconnect from their dashboard
Authorization: Bearer vfat_...

Connect with VetFlash

Your app sends the vet to our consent screen with a PKCE challenge.

Vet approves scopes

They see exactly what your app can do, and that it may spend credits.

Exchange the code

Your server swaps the one-time code and verifier for tokens.

Call the API

Act on their behalf. Tokens refresh and rotate; vets can disconnect anytime.

profile:readcredits:readchat:writescribe:writeask:readask:write
Pricing

Same credits. No surprise invoices.

The API spends the credits on your VetFlash plan at exactly the in-app rate. No separate contract, no metered bill at the end of the month.

  • Test keys are free. Build and run CI without spending anything.
  • max_credits guard. A request that would cost more is rejected before it runs.
  • Refunds on failure. Credits return automatically if generation fails.
Chat · VetFlash M2/chat/completions · vetflash
10message credits
Chat · VetFlow/chat/completions · vetflow
30message credits
Scribe notes/scribe/notes
1scribe credit / 20 min
Transcription/audio/transcriptions
1scribe credit / 20 min
Ask sessions/ask/sessions
Freeto create · messages billed
Credits · Me/credits
Freealways
See plans and credit allowances
Built to be trusted

Security that doesn't get in your way.

Hashed at rest

Keys, secrets, codes and tokens are stored only as SHA-256 hashes. We can't read them back, and neither can anyone else.

PKCE on every flow

S256 is mandatory, codes are single-use, and a replayed refresh token revokes the whole grant.

Least-privilege scopes

Keys and tokens carry only the scopes you grant. A missing scope is a clean 403, never a surprise.

Fair rate limits

60 requests a minute per key or connection, with Retry-After on every 429.

Every call logged

Status, latency, credits and a request ID for each call, searchable in your dashboard.

Automatic refunds

If a model call fails, the credits go straight back. You only pay for answers you get.

FAQ

Questions developers ask.

Do I need a paid plan?

No. Every VetFlash account can create API keys, and calls spend the credits already on your account. Endpoints tied to a feature, like Scribe, need a plan that includes it.

How is it billed?

Exactly like the app. A VetFlash M2 message is 10 message credits, and scribe is 1 scribe credit per started 20 minutes. Set max_credits on a request to cap what it can spend.

Is it compatible with the OpenAI SDKs?

Yes. Chat completions and audio transcriptions follow the OpenAI request and response shapes, including streaming. Point the SDK's base URL at the VetFlash API and use a VetFlash key.

How do test keys work?

Test keys (vf_test_...) exercise auth, scopes, validation and logging but return sample responses and never spend credits. Swap in a live key when you're ready.

Can I build a product other practices use?

That's what OAuth is for. Register an app, send vets through the consent screen, and your app works with their account and their credits. They can disconnect at any time.

What are Ask sessions?

Shareable, patient-aware chat links for colleagues or pet owners. You set the expiry and a credit cap, messages bill to you, and you can revoke a link instantly.

Build something vets will love.

Create a free test key and make your first call in under five minutes.