Portal API

Your bot suggests. You file.

A portal key lets a server-side agent read unfiled trips and propose Personal or Business. Suggestions wait in the app. This API never talks to the car, and it does not file a trip unless you call file.

Base URL

Production

Call from a server. Do not put a portal key in a browser. CORS is open so you can fetch the spec; the key still belongs on the server.

https://drivemanifest.com/api/v1

Human docs: https://drivemanifest.com/docs · Machine spec: https://drivemanifest.com/api/v1/openapi.json

Auth

Portal key

Issue a key in Settings. It starts with mf_live_ and is shown once. Send it on every request.

Authorization: Bearer mf_live_…
  • 401Missing, unknown, or revoked key.
  • 403Trip is already filed. Suggest only works on open trips.
  • Revoke keys in Settings.

Endpoints

  • GET

    /api/v1/me

    Mileage rate, vehicle and trip counts, and whether you classify with a bot or Remember last.

  • GET

    /api/v1/trips?status=open

    Unfiled trips waiting for a Personal or Business label. status=open (default), filed, or all. Up to 200.

  • GET

    /api/v1/trips/:id

    Start, end, miles, current label, and any pending suggestion. Does not change the trip.

  • POST

    /api/v1/trips/:id/suggest

    Propose Personal or Business. It waits in the app for you to review. Does not write the mileage log.

  • POST

    /api/v1/trips/:id/file

    Writes Personal or Business on the mileage log. Only call this if the bot should file without a person reviewing.

  • GET

    /api/v1/places

    Home, Work, and places Manifest has learned. Destinations only — not a live car location.

  • GET

    /api/v1/vehicles

    Cars on the account. VIN last four only. Does not wake or query the car.

Read

Open trips

Start here. Pull unfiled trips, then POST /suggest with Personal or Business.

curl https://drivemanifest.com/api/v1/trips?status=open \
  -H "Authorization: Bearer mf_live_…"
{
  "trips": [{
    "id": 42,
    "start": { "label": "Home" },
    "end": { "label": "Work" },
    "miles": 36.2,
    "category": null,
    "suggestion": null
  }]
}

Suggest

Does not file

A suggestion sits in the app until a person accepts it. POST /file writes the mileage log. Prefer suggest.

curl -X POST https://drivemanifest.com/api/v1/trips/42/suggest \
  -H "Authorization: Bearer mf_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "business",
    "reason": "Client site on Broadway.",
    "confidence": 0.91
  }'

Rules

  1. 01

    No vendor keys

    Don't send an xAI or OpenAI secret. Manifest will not store it.

  2. 02

    Suggest ≠ file

    POST /suggest proposes a label. POST /file writes it. Prefer suggest.

  3. 03

    Never talks to the car

    Reads destinations Manifest already logged. Never wakes a Tesla.