# endpoint.js > Turns GitHub REST API endpoints into generic request options [![@latest](https://img.shields.io/npm/v/@octokit/endpoint.svg)](https://www.npmjs.com/package/@octokit/endpoint) ![Build Status](https://github.com/octokit/endpoint.js/workflows/Test/badge.svg) `@octokit/endpoint` combines [GitHub REST API routes](https://developer.github.com/v3/) with your parameters and turns them into generic request options that can be used in any request library. - [Usage](#usage) - [API](#api) - [`endpoint(route, options)` or `endpoint(options)`](#endpointroute-options-or-endpointoptions) - [`endpoint.defaults()`](#endpointdefaults) - [`endpoint.DEFAULTS`](#endpointdefaults) - [`endpoint.merge(route, options)` or `endpoint.merge(options)`](#endpointmergeroute-options-or-endpointmergeoptions) - [`endpoint.parse()`](#endpointparse) - [Special cases](#special-cases) - [The `data` parameter – set request body directly](#the-data-parameter-%E2%80%93-set-request-body-directly) - [Set parameters for both the URL/query and the request body](#set-parameters-for-both-the-urlquery-and-the-request-body) - [LICENSE](#license) ## Usage
Browsers |
Load @octokit/endpoint directly from cdn.skypack.dev
```html
```
|
---|---|
Node |
Install with npm install @octokit/endpoint
```js
const { endpoint } = require("@octokit/endpoint");
// or: import { endpoint } from "@octokit/endpoint";
```
|
name | type | description |
---|---|---|
route
|
String |
If set, it has to be a string consisting of URL and the request method, e.g., GET /orgs/{org} . If it’s set to a URL, only the method defaults to GET .
|
options.method
|
String |
Required unless route is set. Any supported http verb. Defaults to GET .
|
options.url
|
String |
Required unless route is set. A path or full URL which may contain :variable or {variable} placeholders,
e.g., /orgs/{org}/repos . The url is parsed using url-template.
|
options.baseUrl
|
String |
Defaults to https://api.github.com .
|
options.headers
|
Object |
Custom headers. Passed headers are merged with defaults:headers['user-agent'] defaults to octokit-endpoint.js/1.2.3 (where 1.2.3 is the released version).headers['accept'] defaults to application/vnd.github.v3+json . |
options.mediaType.format
|
String |
Media type param, such as raw , diff , or text+json . See Media Types. Setting options.mediaType.format will amend the headers.accept value.
|
options.mediaType.previews
|
Array of Strings |
Name of previews, such as mercy , symmetra , or scarlet-witch . See API Previews. If options.mediaType.previews was set as default, the new previews will be merged into the default ones. Setting options.mediaType.previews will amend the headers.accept value. options.mediaType.previews will be merged with an existing array set using .defaults() .
|
options.data
|
Any |
Set request body directly instead of setting it to JSON based on additional parameters. See "The data parameter" below.
|
options.request
|
Object |
Pass custom meta information for the request. The request object will be returned as is.
|
key | type | description |
---|---|---|
method |
String | The http method. Always lowercase. |
url |
String | The url with placeholders replaced with passed parameters. |
headers |
Object | All header names are lowercased. |
body |
Any | The request body if one is present. Only for PATCH , POST , PUT , DELETE requests. |
request |
Object | Request meta option, it will be returned as it was passed into endpoint() |