openapi: 3.2.0 info: description: The One API. Universal API integration platform for AI agents and applications. license: name: '' title: One Billing API version: 5.35.0 tags: - name: Billing paths: /v1/billings/ai-agent-seats/trial: get: description: 'Reports where you stand with the one free agent-seat trial: the number of free days on offer while you are still eligible, or when a trial you are already on ends. Both fields are null once you have bought or trialed seats before. POST this same path to start the trial; buying seats never starts one.' operationId: get_ai_agent_seat_trial responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiAgentSeatTrialOffer' description: The trial on offer, or the one already running '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Invalid request '402': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Quota exceeded — upgrade plan '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Insufficient permissions '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Resource not found '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Internal server error security: - Session: [] summary: Get the agent-seat free trial tags: - Billing post: description: 'Opens a Stripe checkout for the one free agent-seat trial: a single seat, free for the period the seat price carries, charged from then on. Deliberately separate from buying seats, which always charges from day one - only the caller knows which they meant. Answers 409 when the account has already bought or trialed a seat, since the trial is once only.' operationId: start_ai_agent_seat_trial requestBody: content: application/json: schema: $ref: '#/components/schemas/StartAiAgentSeatTrialParams' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/CheckoutSessionResponse' description: Checkout session for the trial seat '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Invalid request '402': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Quota exceeded — upgrade plan '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Insufficient permissions '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Resource not found '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Internal server error security: - Session: [] summary: Start the agent-seat free trial tags: - Billing components: schemas: CheckoutSessionResponse: properties: checkoutUrl: type: string required: - checkoutUrl type: object ErrorResponse: properties: correlationId: example: 550e8400-e29b-41d4-a716-446655440000 type: string key: example: http_error type: string message: example: Authentication required type: string status: example: 401 format: int32 minimum: 0 type: integer type: example: http_error type: string required: - correlationId - key - message - type - status type: object StartAiAgentSeatTrialParams: description: 'A trial is always a single seat, so this carries only where Stripe should send the caller back.' properties: cancelUrl: type: string successUrl: type: string required: - successUrl - cancelUrl type: object AiAgentSeatTrialOffer: description: 'Where the caller stands with the free seat trial: `trialPeriodDays` when one is on offer, `expiresAt` when one is running, neither once they have transacted. An account with no billing record yet gets neither, which is an ordinary pre-onboarding state rather than an error.' properties: expiresAt: description: When a trial already running ends. format: date-time type: - string - 'null' trialPeriodDays: description: Free days a checkout would attach, when the caller is still eligible. format: int32 minimum: 0 type: - integer - 'null' type: object securitySchemes: Bearer: scheme: bearer type: http OAuth2: flows: authorizationCode: authorizationUrl: https://api.withone.ai/oauth/authorize scopes: org:ai_skills:read: Read organization AI skills org:ai_skills:write: Create, update, and delete organization AI skills org:authkit:read: Read organization AuthKit resources org:authkit:write: Create, update, and delete organization AuthKit resources org:connections:read: Read organization connections org:connections:write: Create, update, and delete organization connections org:projects:read: Read organization projects org:projects:write: Create, update, and delete organization projects org:secrets:read: Read organization secrets org:secrets:write: Create, update, and delete organization secrets org:workflows:executions:read: Read organization workflow executions org:workflows:executions:write: Create, update, and delete organization workflow executions org:workflows:read: Read organization workflows org:workflows:write: Create, update, and delete organization workflows project:ai_skills:read: Read project AI skills project:ai_skills:write: Create, update, and delete project AI skills project:authkit:read: Read project AuthKit resources project:authkit:write: Create, update, and delete project AuthKit resources project:connections:read: Read project connections project:connections:write: Create, update, and delete project connections project:secrets:read: Read project secrets project:secrets:write: Create, update, and delete project secrets project:workflows:executions:read: Read project workflow executions project:workflows:executions:write: Create, update, and delete project workflow executions project:workflows:read: Read project workflows project:workflows:write: Create, update, and delete project workflows user:ai_skills:read: Read your personal AI skills user:ai_skills:write: Create, update, and delete your personal AI skills user:authkit:read: Read your personal AuthKit resources user:authkit:write: Create, update, and delete your personal AuthKit resources user:connections:read: Read your personal connections user:connections:write: Create, update, and delete your personal connections user:secrets:read: Read your personal secrets user:secrets:write: Create, update, and delete your personal secrets user:workflows:executions:read: Read your personal workflow executions user:workflows:executions:write: Create, update, and delete your personal workflow executions user:workflows:read: Read your personal workflows user:workflows:write: Create, update, and delete your personal workflows tokenUrl: https://api.withone.ai/oauth/token type: oauth2 Session: in: cookie name: withone type: apiKey X-One-Connection-Key: in: header name: X-One-Connection-Key type: apiKey X-One-Secret: in: header name: X-One-Secret type: apiKey X-Pica-Connection-Key: in: header name: X-One-Connection-Key type: apiKey X-Pica-Secret: in: header name: X-One-Secret type: apiKey