Skip to Content
docsVersioning

Last Updated: 3/11/2026


API Versioning Strategy

Overview

Box introduced API versioning in 2025 to provide a more predictable and stable experience for developers. This document explains how versioning works in the Box OpenAPI specification.

Why Versioning?

API versioning allows Box to:

  • Introduce breaking changes without disrupting existing integrations
  • Evolve the API to support new features and improvements
  • Provide stability with clear deprecation timelines
  • Maintain backward compatibility for older versions

Version Format

Box uses calendar versioning with the format YYYY.N:

  • YYYY: The year the version was released (e.g., 2025)
  • N: The sequential release number within that year (e.g., 0, 1, 2)

Examples

  • 2025.0 - First version released in 2025
  • 2025.1 - Second version released in 2025
  • 2026.0 - First version released in 2026

Specification Files

Versioned specifications are stored in the openapi directory:

openapi/ ├── openapi.json # Pre-versioning API (legacy) ├── openapi-v2025.0.json # Version 2025.0 ├── openapi-v2025.1.json # Version 2025.1 (future) └── openapi-v2026.0.json # Version 2026.0 (future)

Legacy Specification

The openapi.json file in the root directory contains the API specification from before versioning was introduced. This file is maintained for backward compatibility but is no longer actively updated with new features.

Using Versioned APIs

Specifying a Version

To use a specific API version, include the Box-Version header in your requests:

GET /files/12345 HTTP/1.1 Host: api.box.com Authorization: Bearer YOUR_ACCESS_TOKEN Box-Version: 2025.0

Default Version

If you don’t specify a version header, Box will use the latest stable version. However, we strongly recommend always specifying a version to ensure consistent behavior.

Version in Client SDKs

When generating client SDKs, use the appropriate versioned specification:

# Generate SDK for version 2025.0 openapi-generator-cli generate \ -i https://raw.githubusercontent.com/box/box-openapi/main/openapi/openapi-v2025.0.json \ -g python \ -o ./box-python-sdk-v2025.0

Version Lifecycle

1. Development

  • New features and breaking changes are developed
  • Specification is updated in a development branch
  • Changes are reviewed and tested

2. Release

  • New version is published to the main branch
  • Specification file is added to the openapi directory
  • Release notes and migration guide are published
  • Developer documentation is updated

3. Active Support

  • Bug fixes and security updates are applied
  • Minor, non-breaking improvements may be added
  • Version is fully supported and recommended for production use

4. Deprecation Notice

  • At least 6 months before end-of-life
  • Deprecation notice is published
  • Migration guide to newer version is provided
  • Developers are encouraged to upgrade

5. End-of-Life

  • Version is no longer supported
  • No bug fixes or security updates
  • API may continue to work but is not guaranteed
  • Minimum 12 months of support from release

Breaking vs. Non-Breaking Changes

Breaking Changes (Require New Version)

  • Removing an endpoint
  • Removing a request parameter
  • Removing a response field
  • Changing a parameter from optional to required
  • Changing the data type of a field
  • Changing authentication requirements
  • Changing error response format

Non-Breaking Changes (Can Be Added to Existing Version)

  • Adding a new endpoint
  • Adding an optional parameter
  • Adding a new response field
  • Adding a new error code
  • Deprecating a field (with continued support)
  • Improving documentation

Migration Guide

Preparing for a New Version

  1. Review the changelog

    • Read the release notes for the new version
    • Identify breaking changes that affect your integration
  2. Download the new specification

    curl -O https://raw.githubusercontent.com/box/box-openapi/main/openapi/openapi-v2025.1.json
  3. Compare specifications

    # Use a diff tool to compare versions diff openapi-v2025.0.json openapi-v2025.1.json
  4. Update your code

    • Regenerate client SDKs if using code generation
    • Update API calls to match new schemas
    • Handle new error codes
    • Update tests
  5. Test thoroughly

    • Test all API integrations
    • Validate request and response schemas
    • Test error handling
  6. Deploy with version header

    # Python example headers = { 'Authorization': f'Bearer {access_token}', 'Box-Version': '2025.1' } response = requests.get('https://api.box.com/2.0/files/12345', headers=headers)

Gradual Migration

You can migrate gradually by:

  1. Testing in development with the new version
  2. Running parallel versions in staging
  3. Migrating one service at a time in production
  4. Monitoring for issues after each migration step

Version Support Timeline

VersionRelease DateDeprecation NoticeEnd-of-Life
2025.0Jan 2025Jan 2026 (est.)Jul 2026 (est.)
2025.1Jun 2025 (est.)Jun 2026 (est.)Dec 2026 (est.)

Timeline is subject to change. Official dates will be announced in release notes.

Changelog

Version 2025.0 (January 2025)

New Features:

  • Initial versioned release
  • All pre-2025 API endpoints included
  • Standardized error responses
  • Enhanced metadata support

Breaking Changes:

  • None (first versioned release)

Deprecations:

  • Legacy unversioned API (see openapi.json in root)

Best Practices

For Developers

  1. Always specify the version header in production code
  2. Pin to a specific version rather than using “latest”
  3. Monitor deprecation notices by watching this repository
  4. Plan migrations early when deprecation is announced
  5. Test new versions in development before upgrading
  6. Keep dependencies updated (SDKs, tools)

For CI/CD Pipelines

  1. Validate against the correct specification version

    # Example: validate API responses newman run postman_collection.json \ --environment production.json \ --global-var "box_version=2025.0"
  2. Run tests against multiple versions during migration

  3. Use version-specific test fixtures

  4. Monitor API version in logs and metrics

Getting Help

Questions About Versioning

Reporting Issues

Additional Resources