API Automation for the Modern Team

  • Accurate API Docs on Every Commit
  • All your team's APIs in One Place
  • Bespoke Client SDKs that Update Themselves
  • Optic is Open Source and MIT Licenced
Ready to automate away your team's API headaches?

Document Any API

Great Tests -> Great Docs

Optic uses your existing API Tests to learn the structure of the API. It takes 15 minutes to setup and works with any tech stack.
  • Accurate API Specs, always up to date
  • Never write another API Spec manually
  • Benefits of self-documenting frameworks, w/o migrating
When you run your tests through Optic all traffic is routed through a local proxy
The proxy accurately maps your API while the tests execute
me$ optic publish
Starting Optic Server...
Running API Tests... All Passed
Analysis Complete!
Documented 33 Endpoints in 6.3 seconds

API Inspector

  • Beautiful UI for viewing API Specs
  • Automatically generated API changelog
  • Subscribe to APIs, receive notifications when they change.
  • Export Spec to Swagger

An API Atlas for your Team

Every API Documented in a Single Place

Optic provides teams with a map of their APIs. This provides developers with a trusted reference for how to use any API in their organization.
  • API Reference that's never out of date. Once new Endpoints have been tested they'll appear on Optic
  • Fully indexed and searchable by functionality
  • Supports user permissions and project-level access (Team Edition)

Self Updating SDKs

Optic Handles the Dirty Work of Getting all your APIs Connected

Generate bespoke SDKs that connect to all the APIs your app requires. Whenever an API change is published, Optic will create a pull request to update the code that relies on it.
  • Gives your RESTful services a nice RPC-like interface
  • Easy to customize code output thanks to Optic's Cogent Engine
  • Turn key SDK Generation. Use Optic's build system to deploy SDKs and issue pull requests.
You can use one of our prebuilt SDK Generators or remix your own. Cogent provides a React-like interface making it easy to configure how your SDKs are generated.
   <File name={apiName+'.java'}>
    <APIController authentication={auth}>
     {endpoints.map(endpoint =>
      (<UnirestRequest target={endpoint} />))}