# API Reference

The Redux API surface is tiny. Redux defines a set of contracts for you to implement (such as [reducers](https://redux-ru.js.org/glossary#reducer)) and provides a few helper functions to tie these contracts together.

This section documents the complete Redux API. Keep in mind that Redux is only concerned with managing the state. In a real app, you'll also want to use UI bindings like [react-redux](https://github.com/gaearon/react-redux).

## Top-Level Exports

* [createStore(reducer, \[preloadedState\], \[enhancer\])](https://redux-ru.js.org/api-reference/createstore)
* [combineReducers(reducers)](https://redux-ru.js.org/api-reference/combinereducers)
* [applyMiddleware(...middlewares)](https://redux-ru.js.org/api-reference/applymiddleware)
* [bindActionCreators(actionCreators, dispatch)](https://redux-ru.js.org/api-reference/bindactioncreators)
* [compose(...functions)](https://redux-ru.js.org/api-reference/compose)

## Store API

* [Store](https://redux-ru.js.org/api-reference/store)
  * [getState()](https://redux-ru.js.org/store#getState)
  * [dispatch(action)](https://redux-ru.js.org/store#dispatch)
  * [subscribe(listener)](https://redux-ru.js.org/store#subscribe)
  * [replaceReducer(nextReducer)](https://redux-ru.js.org/store#replaceReducer)

## Importing

Every function described above is a top-level export. You can import any of them like this:

### ES6

```javascript
import { createStore } from 'redux'
```

### ES5 (CommonJS)

```javascript
var createStore = require('redux').createStore
```

### ES5 (UMD build)

```javascript
var createStore = Redux.createStore
```
