# Modeling Introduction 

![Modeling Preview](https://github.com/stoplightio/docs/blob/develop/assets/images/modeling-intro.png?raw=true)

## What is API Design? 

Designing (also known as Modeling) your API involves describing all of the inputs and outputs across the footprint of your entire service. Your API design will answer questions like: 

- What are the different resources and operations available in your API?
- How does your API authenticate requests? 
- What are the different data models associated with your service? 
- How does your API handle errors? 

## How does it fit into Stoplight? 

The Stoplight design module is where you and your team will maintain the single source of truth that describes the inputs and outputs of your API. 

Once you have your API described in the Stoplight design module, you can: 

- Publish all or part of your API with Hubs 
- Create API tests from your designs 
- Send requests to your API to debug it 
- Create a mock API based on your design
- ...and much more 

## Getting Started 

There are a few ways to get started designing your API with the Stoplight design module:

- Create an API from scratch [Using the CRUD Builder](/modeling/modeling-with-openapi/using-the-crud-builder)
- [Reference another API Spec](/modeling/modeling-with-openapi/referencing-another-api-spec)
- [Send HTTP Requests](/modeling/modeling-with-openapi/sending-http-requests) to an existing API Spec 
- [Validate your API Spec](/modeling/modeling-with-openapi/validating-your-api-spec)
