{"openapi":"3.1.0","info":{"title":"Vekto Field API","version":"2026-07-01","description":"Public API preview for Vekto Field. The production product already supports field pins, quotes, scheduling, SMS, review requests, and AI field workflows; this contract is the agent/developer discovery surface that will graduate into scoped public keys.","contact":{"name":"Vekto","email":"support@getvekto.com"}},"servers":[{"url":"https://getvekto.com","description":"Production"}],"tags":[{"name":"Field","description":"Door-to-door field operations."},{"name":"Customers","description":"Customers, leads, and homeowner context."},{"name":"AI Command","description":"Native AI field-operator workflows."},{"name":"Migrations","description":"Switcher imports, migration plans, and data-quality reports."}],"security":[{"bearerAuth":[]}],"paths":{"/v2026-07-01/field/pins":{"post":{"operationId":"createFieldPin","summary":"Create a door pin","tags":["Field"],"x-required-scope":"field:pins:write","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/v2026-07-01/field/customers":{"post":{"operationId":"createFieldCustomer","summary":"Create a field customer","tags":["Customers"],"x-required-scope":"field:customers:write","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/v2026-07-01/field/quotes":{"post":{"operationId":"createFieldQuote","summary":"Create a quote and signature packet","tags":["Field"],"x-required-scope":"field:quotes:write","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/v2026-07-01/field/followups/draft":{"post":{"operationId":"draftFieldFollowups","summary":"Draft follow-up texts for stale quotes","tags":["AI Command"],"x-required-scope":"field:ai:write","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/v2026-07-01/field/territories/score":{"post":{"operationId":"scoreTerritory","summary":"Score a territory for the next field push","tags":["AI Command"],"x-required-scope":"field:ai:read","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/v2026-07-01/field/command":{"get":{"operationId":"getDailyFieldCommand","summary":"Get the AI daily field command","tags":["AI Command"],"x-required-scope":"field:command:read","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/v2026-07-01/field/migrations/flyra/plan":{"post":{"operationId":"createFlyraMigrationPlan","summary":"Create a Flyra-to-Vekto migration plan","description":"Public API contract for the production workspace endpoint `/api/workspace/migrations/flyra/plan`. The workspace endpoint is live behind authenticated manager/admin access.","tags":["Migrations"],"x-required-scope":"field:migrations:write","x-vekto-workspace-endpoint":"/api/workspace/migrations/flyra/plan","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/v2026-07-01/field/migrations/flyra/customers/apply":{"post":{"operationId":"applyFlyraCustomerImport","summary":"Apply an approved Flyra customer import","description":"Public API contract for the production workspace endpoint `/api/workspace/migrations/flyra/apply`. The workspace endpoint is live behind authenticated manager/admin access.","tags":["Migrations"],"x-required-scope":"field:migrations:write","x-vekto-workspace-endpoint":"/api/workspace/migrations/flyra/apply","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"vko_live_...","description":"Vekto developer key. Scoped key management is tracked in the Flyra parity command board."}},"responses":{"Unauthorized":{"description":"Missing, invalid, expired, or revoked API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Forbidden":{"description":"The key does not grant the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"required_scope":{"type":"string"}}}}}}