이 콘텐츠는 선택한 언어로 제공되지 않습니다.

Chapter 3. API syntax


You can review the basic syntax of API requests and JSON responses.

Important

Even though versions 1 and 2 of the Satellite 6 API are available, Red Hat only supports version 2.

3.1. API request composition

The built-in API reference shows the API route, or path, preceded by an HTTP method:

HTTP_METHOD API_ROUTE
Copy to Clipboard

To work with the API, construct a command by using the curl command syntax and the API route from the reference document:

$ curl \
--request HTTP_METHOD \                    
1

--insecure \                               
2

--user My_User_Name:My_Password \          
3

--data @My_Input_File.json \               
4

--header "Accept:application/json" \       
5

--header "Content-Type:application/json" \ 
6

--output My_Output_File                    
7

API_ROUTE \                                
8

| python3 -m json.tool                     
9
Copy to Clipboard
1
To use curl for the API call, specify an HTTP method with the --request option. For example, --request POST.
2
Add the --insecure option to skip SSL peer certificate verification check. Red Hat recommends you to configure SSL authentication and use secured calls. For more information, see Section 4.1, “SSL authentication overview”.
3
Provide Satellite user credentials with the --user option.
4
For POST and PUT requests, use the --data option to pass JSON-formatted data. For more information, see Section 5.1.1, “Passing JSON data to the API request”.
5 6
When passing the JSON data with the --data option, you must specify the following headers with the --header option. For more information, see Section 5.1.1, “Passing JSON data to the API request”.
7
When downloading content from Satellite Server, specify the output file with the --output option.
8
Use the API route in the following format: https://satellite.example.com/katello/api/activation_keys. In Satellite 6, version 2 of the API is the default. Therefore, it is not necessary to use v2 in the URL for API calls.
9
Redirect the output to the Python json.tool module to make the output easier to read.

3.1.1. Using the GET HTTP method

Use the GET HTTP method to get data from the API about an existing entry or resource. This example requests the number of registered hosts.

API request

$ curl \
--request GET \
--user My_User_Name:My_Password \
https://satellite.example.com/api/hosts \
| python3 -m json.tool
Copy to Clipboard

API response

{
  "total": 2,
  "subtotal": 2,
  "page": 1,
  "per_page": 20,
  "search": null,
  "sort": {
    "by": null,
    "order": null
  },
  "results":
    output truncated
}
Copy to Clipboard

The response from the API indicates that there are two results in total, this is the first page of the results, and the maximum results per page is set to 20. For more information, see Section 3.2, “JSON response format”.

3.1.2. Using the POST HTTP method

Use the POST HTTP verb to submit data to the API to create an entry or resource. You must submit the data in JSON format. For more information, see Section 5.1.1, “Passing JSON data to the API request”.

API procedure

  1. Create a test file, for example, activation-key.json, with the following content:

    {"organization_id":1, "name":"TestKey", "description":"Just for testing"}
    Copy to Clipboard
  2. Create an activation key by applying the data in the activation-key.json file:

    Example request:

    $ curl \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --request POST \
    --user My_User_Name:My_Password \
    --data @activation-key.json \
    https://satellite.example.com/katello/api/activation_keys \
    | python3 -m json.tool
    Copy to Clipboard

    Example response:

    {
        "id": 2,
        "name": "TestKey",
        "description": "Just for testing",
        "unlimited_hosts": true,
        "auto_attach": true,
        "content_view_id": null,
        "environment_id": null,
        "usage_count": 0,
        "user_id": 3,
        "max_hosts": null,
        "release_version": null,
        "service_level": null,
        "content_overrides": [
    
        ],
        "organization": {
            "name": "Default Organization",
            "label": "Default_Organization",
            "id": 1
        },
        "created_at": "2024-02-16 12:37:47 UTC",
        "updated_at": "2024-02-16 12:37:48 UTC",
        "content_view": null,
        "environment": null,
        "products": null,
        "host_collections": [
    
        ],
        "permissions": {
            "view_activation_keys": true,
            "edit_activation_keys": true,
            "destroy_activation_keys": true
        }
    }
    Copy to Clipboard

Verification

  • In the Satellite web UI, navigate to Content > Lifecycle > Activation Keys to view your activation keys.

3.1.3. Using the PUT HTTP method

Use the PUT HTTP method to change an existing value or append to an existing resource. You must submit the data in JSON format. For more information, see Section 5.1.1, “Passing JSON data to the API request”.

This example updates the TestKey activation key created in the previous example.

API procedure

  1. Edit the activation-key.json file created previously as follows:

    {"organization_id":1, "name":"TestKey", "description":"Just for testing","max_hosts":"10" }
    Copy to Clipboard
  2. Apply the changes in the JSON file:

    Example request:

    $ curl \
    --request PUT \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --user My_User_Name:My_Password \
    --data @activation-key.json \
    https://satellite.example.com/katello/api/activation_keys/2 \
    | python3 -m json.tool
    Copy to Clipboard

    Example response:

    {
        "id": 2,
        "name": "TestKey",
        "description": "Just for testing",
        "unlimited_hosts": false,
        "auto_attach": true,
        "content_view_id": null,
        "environment_id": null,
        "usage_count": 0,
        "user_id": 3,
        "max_hosts": 10,
        "release_version": null,
        "service_level": null,
        "content_overrides": [
    
        ],
        "organization": {
            "name": "Default Organization",
            "label": "Default_Organization",
            "id": 1
        },
        "created_at": "2024-02-16 12:37:47 UTC",
        "updated_at": "2024-02-16 12:46:17 UTC",
        "content_view": null,
        "environment": null,
        "products": null,
        "host_collections": [
    
        ],
        "permissions": {
            "view_activation_keys": true,
            "edit_activation_keys": true,
            "destroy_activation_keys": true
        }
    }
    Copy to Clipboard
  3. In the Satellite web UI, verify the changes by navigating to Content > Lifecycle > Activation Keys.

3.1.4. Using the DELETE HTTP method

To delete a resource, use the DELETE method with an API route that includes the ID of the resource you want to delete. This example deletes the TestKey activation key which ID is 2.

API request

$ curl \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--request DELETE \
--user My_User_Name:My_Password \
https://satellite.example.com/katello/api/activation_keys/2 \
| python3 -m json.tool
Copy to Clipboard

API response

output omitted
    "started_at": "2024-02-16 12:58:17 UTC",
    "ended_at": "2024-02-16 12:58:18 UTC",
    "state": "stopped",
    "result": "success",
    "progress": 1.0,
    "input": {
        "activation_key": {
            "id": 2,
            "name": "TestKey"
output truncated
Copy to Clipboard

3.2. JSON response format

Calls to the API return results in JSON format. The API call returns the result for a single-option response or for responses collections.

3.2.1. JSON response format for single objects

You can use single-object JSON responses to work with a single object. API requests to a single object require the unique identifier :id of the object.

This is an example of the format for a single-object request for the Satellite domain which ID is 23:

API request

$ curl \
--request GET \
--user My_User_Name:My_Password \
https://satellite.example.com/api/domains/23 \
| python3 -m json.tool
Copy to Clipboard

API response

{
    "id": 23,
    "name": "qa.lab.example.com",
    "fullname": "QA",
    "dns_id": 10,
    "created_at": "2024-08-13T09:02:31Z",
    "updated_at": "2024-08-13T09:02:31Z"
}
Copy to Clipboard

3.2.2. JSON response format for collections

Collections are a list of objects such as hosts and domains. The format for a collection JSON response consists of a metadata fields section and a results section.

This is an example of the format for a collection request for a list of Satellite domains:

API request

$ curl \
--request GET \
--user My_User_Name:My_Password \
https://satellite.example.com/api/domains \
| python3 -m json.tool
Copy to Clipboard

API response

{
    "total": 3,
    "subtotal": 3,
    "page": 1,
    "per_page": 20,
    "search": null,
    "sort": {
        "by": null,
        "order": null
    },
    "results": [
        {
            "id": 23,
            "name": "qa.lab.example.com",
            "fullname": "QA",
            "dns_id": 10,
            "created_at": "2024-08-13T09:02:31Z",
            "updated_at": "2024-08-13T09:02:31Z"
        },
        {
            "id": 25,
            "name": "dev.lab.example.com",
            "fullname": "DEVEL",
            "dns_id": 8,
            "created_at": "2024-08-13T08:32:48Z",
            "updated_at": "2024-08-14T07:04:03Z"
        },
        {
            "id": 32,
            "name": "hr.lab.example.com",
            "fullname": "HR",
            "dns_id": 8,
            "created_at": "2024-08-16T08:32:48Z",
            "updated_at": "2024-08-16T07:04:03Z"
        }
    ]
}
Copy to Clipboard

3.2.3. JSON response metadata

Satellite API responses contain the following metadata fields:

total
The total number of objects without any search parameters.
subtotal
The number of objects returned with the given search parameters. If there is no search, then subtotal is equal to total.
page
The page number.
per_page
The maximum number of objects returned per page.
limit
The specified number of objects to return in a collection response.
offset
The number of objects skipped before returning a collection.
search
The search string based on scoped_scoped syntax.
sort
  • by – Specifies by what field the API sorts the collection.
  • order – The sort order, either ASC for ascending or DESC for descending.
results
The collection of objects.

3.3. Relating API error messages to the API reference

The API uses a RAILs format to indicate an error:

Nested_Resource.Attribute_Name
Copy to Clipboard

This translates to the following format used in the API reference:

Resource[Nested_Resource_attributes][Attribute_Name_id]
Copy to Clipboard
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat