API Reference

Authentication

Request an access token

To access the API, you must request an access token first. To request an access token, make a POST call to the Auth0 token URL. You will receive your client_id and client_secret from the DevMatch team.

curl --request POST \
  --url 'https://devmatch.us.auth0.com/oauth/token' \
  --header 'content-type: application/json' \
  --data grant_type=client_credentials \
  --data client_id=YOUR_CLIENT_ID \
  --data client_secret=YOUR_CLIENT_SECRET \
  --data audience=api.devmatch.io

You receive an HTTP 200 response with a payload containing access_token, token_type, and expires_in values:

{
  "access_token":"eyJz93a...k4laUWw",
  "token_type":"Bearer",
  "expires_in":86400
}

Use the token to call an API

Access tokens are used in token-based authentication to allow an application to access the API. Once an application has received an access token, it will include that token as a credential when making API requests. To do so, it should transmit the access token to the API as a Bearer credential in an HTTP Authorization header.

Use the token you just requested to call the Get Problems API.

curl --location 'https://94s1zv81nb.execute-api.us-west-2.amazonaws.com/api/problems' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJS...'

You will receive a list of problems:

[
    {
        "id": 1,
        "title": "Puppy save and rescue",
        "description": "Problem description",
        "time_limit": 100,
        "skills": "python",
        "public": 1,
        "owner_id": "createProbAuthor-001",
        "difficulty": "easy",
        "date_created": "2023-07-19 18:15:38",
        "open": 0,
        "like_count": 1,
        "open_count": 0,
        "view_count": 2,
        "opened": false,
        "solved": false,
        "open_events": [],
        "submissions": [],
        "_public": true,
        "is_current_user_admin": false,
        "liked_by_current_user": false,
        "viewed_by_current_user": false
    }
  ]

If you do get this list, then you have successfully called the API.