Core HTTP client functionality providing all standard HTTP methods with Promise-based responses and extensive configuration options.
The main axios export is a pre-configured instance ready for immediate use with sensible defaults.
/**
* Make HTTP request using configuration object
* @param config - Complete request configuration
* @returns Promise resolving to response data
*/
axios(config: AxiosRequestConfig): Promise<AxiosResponse>;
/**
* Make HTTP request using URL and optional configuration
* @param url - Request URL
* @param config - Optional request configuration
* @returns Promise resolving to response data
*/
axios(url: string, config?: AxiosRequestConfig): Promise<AxiosResponse>;Usage Examples:
import axios from "axios";
// Configuration object approach
const response = await axios({
method: "post",
url: "https://api.example.com/users",
data: { name: "John", email: "john@example.com" },
headers: { "Content-Type": "application/json" }
});
// URL with config approach
const users = await axios("https://api.example.com/users", {
method: "get",
timeout: 5000
});Retrieve data from a server using GET method.
/**
* Make GET request to specified URL
* @param url - Request URL
* @param config - Optional request configuration
* @returns Promise resolving to response data
*/
axios.get<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;Usage Examples:
// Simple GET request
const users = await axios.get("https://api.example.com/users");
console.log(users.data);
// GET with query parameters
const filteredUsers = await axios.get("https://api.example.com/users", {
params: { role: "admin", active: true }
});
// GET with custom headers
const profile = await axios.get("https://api.example.com/profile", {
headers: { "Authorization": "Bearer token123" }
});Send data to a server using POST method.
/**
* Make POST request to specified URL
* @param url - Request URL
* @param data - Data to send in request body
* @param config - Optional request configuration
* @returns Promise resolving to response data
*/
axios.post<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;Usage Examples:
// POST with JSON data
const newUser = await axios.post("https://api.example.com/users", {
name: "Alice Smith",
email: "alice@example.com",
role: "user"
});
// POST with form data
const formData = new FormData();
formData.append("file", fileInput.files[0]);
formData.append("description", "Profile image");
const uploadResult = await axios.post("https://api.example.com/upload", formData, {
headers: { "Content-Type": "multipart/form-data" }
});Update existing resources using PUT method.
/**
* Make PUT request to specified URL
* @param url - Request URL
* @param data - Data to send in request body
* @param config - Optional request configuration
* @returns Promise resolving to response data
*/
axios.put<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;Partially update existing resources using PATCH method.
/**
* Make PATCH request to specified URL
* @param url - Request URL
* @param data - Data to send in request body
* @param config - Optional request configuration
* @returns Promise resolving to response data
*/
axios.patch<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;Remove resources using DELETE method.
/**
* Make DELETE request to specified URL
* @param url - Request URL
* @param config - Optional request configuration
* @returns Promise resolving to response data
*/
axios.delete<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;Retrieve headers only using HEAD method.
/**
* Make HEAD request to specified URL
* @param url - Request URL
* @param config - Optional request configuration
* @returns Promise resolving to response with no body
*/
axios.head<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;Retrieve available methods and headers using OPTIONS method.
/**
* Make OPTIONS request to specified URL
* @param url - Request URL
* @param config - Optional request configuration
* @returns Promise resolving to response data
*/
axios.options<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;Specialized methods for sending form data with automatic Content-Type header setting.
/**
* Make POST request with multipart/form-data content type
* @param url - Request URL
* @param data - Form data to send
* @param config - Optional request configuration
* @returns Promise resolving to response data
*/
axios.postForm<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;
/**
* Make PUT request with multipart/form-data content type
* @param url - Request URL
* @param data - Form data to send
* @param config - Optional request configuration
* @returns Promise resolving to response data
*/
axios.putForm<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;
/**
* Make PATCH request with multipart/form-data content type
* @param url - Request URL
* @param data - Form data to send
* @param config - Optional request configuration
* @returns Promise resolving to response data
*/
axios.patchForm<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;Usage Examples:
// Automatic form data handling
const uploadData = {
file: fileInput.files[0],
title: "My Document",
tags: ["important", "draft"]
};
const result = await axios.postForm("https://api.example.com/documents", uploadData);All HTTP methods return a Promise that resolves to an AxiosResponse object.
interface AxiosResponse<T = any, D = any> {
/** Response data parsed according to responseType */
data: T;
/** HTTP status code */
status: number;
/** HTTP status message */
statusText: string;
/** Response headers */
headers: RawAxiosResponseHeaders | AxiosResponseHeaders;
/** Request configuration used for this request */
config: InternalAxiosRequestConfig<D>;
/** Native request object (XMLHttpRequest, http.IncomingMessage, etc.) */
request?: any;
}Usage Examples:
const response = await axios.get("https://api.example.com/users");
console.log("Status:", response.status); // 200
console.log("Data:", response.data); // [{ id: 1, name: "John" }, ...]
console.log("Headers:", response.headers); // { "content-type": "application/json", ... }
console.log("Status Text:", response.statusText); // "OK"Access and modify default configuration for all requests.
interface AxiosDefaults {
baseURL?: string;
timeout: number;
headers: HeadersDefaults;
transformRequest: AxiosRequestTransformer[];
transformResponse: AxiosResponseTransformer[];
// ... other default configurations
}
// Modify defaults
axios.defaults.baseURL = "https://api.example.com";
axios.defaults.timeout = 10000;
axios.defaults.headers.common["Authorization"] = "Bearer token123";// Library version string
axios.VERSION: string; // "1.11.0"